ObservableScrollView
Снова я. Реши проблему, вообще кучу проблем решил))) Но. Не могу привязать кнопку вот к такому кастомному ScrollView. Может можешь посоветовать что то?
package com.manuelpeinado.fadingactionbar.view; import android.content.Context; import android.os.Build; import android.util.AttributeSet; import android.widget.ScrollView; /**
-
@author Cyril Mottier with modifications from Manuel Peinado */ public class ObservableScrollView extends ScrollView implements ObservableScrollable { // Edge-effects don't mix well with the translucent action bar in Android 2.X private boolean mDisableEdgeEffects = true;
private OnScrollChangedCallback mOnScrollChangedListener;
public ObservableScrollView(Context context) { super(context); }
public ObservableScrollView(Context context, AttributeSet attrs) { super(context, attrs); }
public ObservableScrollView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); }
@Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); if (mOnScrollChangedListener != null) { mOnScrollChangedListener.onScroll(l, t); } }
@Override protected float getTopFadingEdgeStrength() { // http://stackoverflow.com/a/6894270/244576 if (mDisableEdgeEffects && Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) { return 0.0f; } return super.getTopFadingEdgeStrength(); }
@Override protected float getBottomFadingEdgeStrength() { // http://stackoverflow.com/a/6894270/244576 if (mDisableEdgeEffects && Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) { return 0.0f; } return super.getBottomFadingEdgeStrength(); }
@Override public void setOnScrollChangedCallback(OnScrollChangedCallback callback) { mOnScrollChangedListener = callback; }
}
+1
You can try this library : https://github.com/ksoichiro/Android-ObservableScrollView/
And handle showing & hiding in :
@Override
public void onUpOrCancelMotionEvent(ScrollState scrollState) {
if (scrollState == ScrollState.UP) {
if (fab.isShowing()) {
fab.hide();
}
} else if (scrollState == ScrollState.DOWN) {
if (!fab.isShowing()) {
fab.show();
}
}
}
The above method comes with the library.