studio personalizar library example error ejemplo coordinatorlayout collapsing android android-fragments android-toolbar android-coordinatorlayout

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); }