Deshabilitar desplazamiento vertical en CollapsingToolbarLayout / AppBarLayout

Quisiera que el desplazamiento vertical en el CollapsingToolbarLayout / AppBarLayout SOLAMENTE cuando el acontecimiento del desplazamiento / tacto ocurra en el nestedscrollview (esto está trabajando), pero si el usuario intenta desplazar el CollapsingToolbarLayout / AppBarLayout directamente no debe trabajar. Necesito esto porque los eventos de desplazamiento / toque están jugando con mis eventos de desplazamiento de recyclerview.

Tengo esta estructura:

CoordinatorLayout -- AppBarLayout ---- CollapsingToolbarLayout (scrollflags: scroll, exitUntilCollapsed, snap) ------ Toolbar (CollapseMode: pin) ------ RecyclerView (Horizontal, CollapseMode: pin) ----- /CollapsingToolbarLayout -- /AppBarLayout -- NestedScrollView (Behaviour: appbar_scrolling_view_behavior) -- /NestedScrollView / CoordinatorLayout 

Intenté sobreescribir onTouch () y onInterceptTouchEvent () tanto para CollapsingToolbarLayout / AppBarLayout, pero sigue interceptando el evento táctil / scroll.

Ok, me enteré de la solución para esto.

Sólo tiene que anular el método onDrag () en el comportamiento AppBarLayout y la desplazamiento no se activará si el toque se produce en la parte superior de la vista AppBarLayout.

 CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams(); AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) params.getBehavior(); behavior.setDragCallback(new AppBarLayout.Behavior.DragCallback() { @Override public boolean canDrag(@NonNull AppBarLayout appBarLayout) { return false; } }); 

Solución de aquí: ¿Cómo desactivar el desplazamiento de AppBarLayout en CoordinatorLayout?

Si se ejecuta en NullPointerException debido a un comportamiento null, debe asignar uno primero:

 CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) mAppbar.getLayoutParams(); params.setBehavior(new AppBarLayout.Behavior()); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.