library - personalizar toolbar android studio
Cómo configurar la aplicación: layout_scrollFlags para Toolbar mediante programación (2)
Mi aplicación tiene un visor y 4 pestañas, cada pestaña tiene muchos fragmentos. Pero solo quiero que mi barra de herramientas se desplace hacia arriba / abajo mientras se desplaza la vista de reciclaje en 2 pestañas específicas. Pero no sé cómo bloquear el desplazamiento de la barra Google para otras pestañas. Intenté importar la barra de herramientas para cada fragmento, pero parece que no puedo hacerlo. ¿Alguien tiene idea para resolver este problema?
Recomiendo encarecidamente no cambiar los indicadores de desplazamiento en función de la pestaña seleccionada: hacer que la barra de herramientas regrese automáticamente (y el contenido se mueva hacia abajo) al desplazarse a una pestaña de vista no reciclable puede ser muy discordante y probablemente no sea un patrón de interacción que desee ( exasperado si sus dos pestañas
RecyclerView
están una al lado de la otra).
Sin embargo, si desea verlo en persona, puede usar setScrollFlags() para establecer las banderas de desplazamiento mediante programación:
Toolbar toolbar = ... // your toolbar within an AppBarLayout
AppBarLayout.LayoutParams params =
(AppBarLayout.LayoutParams) toolbar.getLayoutParams();
params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL
| AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS);
Para despejar banderas
params.setScrollFlags(0)
// Show toolbar when we are in maps mode
AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) mToolbar.getLayoutParams();
CoordinatorLayout.LayoutParams appBarLayoutParams = (CoordinatorLayout.LayoutParams) mAppBarLayout.getLayoutParams();
if(isMapIndex) {
params.setScrollFlags(0);
appBarLayoutParams.setBehavior(null);
mAppBarLayout.setLayoutParams(appBarLayoutParams);
} else {
params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS);
appBarLayoutParams.setBehavior(new AppBarLayout.Behavior());
mAppBarLayout.setLayoutParams(appBarLayoutParams);
}