lmw
2025-04-24 718f31c92e2029d05260810435a2c70cef6e6ce5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.sinata.xqmuse.utils;
 
import android.util.Log;
 
import com.google.android.material.appbar.AppBarLayout;
 
/**
 * ZhongTian
 * Created by hds with AndroidStudio
 * Contact me by SCKJ Co.,Ltd
 * 2020-01-06 14:56 Monday
 * Description:AppBarStateChangeListener
 */
public abstract class AppBarStateChangeListener implements AppBarLayout.OnOffsetChangedListener {
 
    public enum State {
        EXPANDED,
        COLLAPSED,
        IDLE
    }
 
 
    @Override
    public final void onOffsetChanged(AppBarLayout appBarLayout, int i) {
        int totalScrollRange = appBarLayout.getTotalScrollRange();
        Log.e("mmp","总位移:"+totalScrollRange+",当前位移:"+i);
        double ratio = Math.abs(((double)i) / totalScrollRange);
        if (ratio > 0.6) {
            onStateChanged(appBarLayout, State.COLLAPSED,ratio);
        } else {
            onStateChanged(appBarLayout, State.EXPANDED,ratio);
        }
    }
 
    public abstract void onStateChanged(AppBarLayout appBarLayout, State state,double ratio);
}