Как скрывать и показывать FloatingActionButton в зависимости от Scroll?

У меня есть круговая плавающая кнопка FloatingActionButton в виде с одним recyclerview, я нуждаюсь в том, чтобы координировать scroll recyclerview с видимостью FloatingActionButton:

  • Скройтесь, когда он делается scroll вниз
  • Появитесь, когда он делается scroll вверх

Изображение образца

introducir la descripción de la imagen aquí

3
задан 14.03.2017, 23:39
1 ответ

Нужно включать в CoordinatorLayout примере иерархии:

CoordinatorLayout
   AppBarLayout
      Toolbar
   RecyclerView
   FloatingActionButton

, Чтобы перехватывать scroll

public class FabScrollBehavior extends FloatingActionButton.Behavior {

    public FabScrollBehavior(Context context, AttributeSet attributeSet) {
        super();
    }

    @Override
    public void onNestedScroll(CoordinatorLayout coordinatorLayout, FloatingActionButton child, View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) {

        super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed);
        if (dyConsumed > 0 && child.getVisibility() == View.VISIBLE) {
            child.hide();
        } else if (dyConsumed < 0 && child.getVisibility() == View.GONE) {
            child.show();
        }
    }

    @Override
    public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, FloatingActionButton child, View directTargetChild, View target, int nestedScrollAxes) {
        return nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL;
    }
}

и в FloatingActionButton, где мы хотим перехватить, что он был сделан scroll в recycleview

...
app:layout_behavior="tu.pcakage.android.FabScrollBehavior"
...

Руководитель Hide the FloatingActionButton when scrolling в RecyclerView

2
ответ дан 24.11.2019, 14:19

Теги

Похожие вопросы