vertical sirve que para horizontal funcion estado desplazamiento barras barra android toolbar android-support-design

android - sirve - funcion de la barra de estado



Cómo habilitar/deshabilitar la barra de herramientas de desplazamiento mediante programación cuando se utiliza la biblioteca de soporte de diseño (2)

Elimine la app:layout_scrollFlags="scroll|enterAlways" donde quiera que desee deshabilitar el desplazamiento de la barra de tareas.

Uso la biblioteca de diseño de soporte para mostrar / ocultar la barra de herramientas al desplazar un RecyclerView dentro de un fragmento, como se menciona aquí https://github.com/codepath/android_guides/wiki/Handling-Scrolls-with-CoordinatorLayout

<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:openDrawer="start"> <android.support.design.widget.CoordinatorLayout android:id="@+id/coordinatorLayout" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <android.support.design.widget.AppBarLayout android:id="@+id/appBarLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" app:layout_scrollFlags="scroll|enterAlways"/> </android.support.design.widget.AppBarLayout> <FrameLayout android:id="@+id/flContent" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" android:src="@android:drawable/ic_dialog_email" /> </android.support.design.widget.CoordinatorLayout> <android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header_main" app:menu="@menu/activity_main_drawer" /> </android.support.v4.widget.DrawerLayout>

Funciona de maravilla, ahora quiero habilitar / deshabilitar la barra de herramientas de desplazamiento programáticamente porque uso fragmentos y necesito detener esta función para algunos fragmentos.


La Toolbar , al ser un elemento secundario de AppBarLayout , obtiene sus LayoutParams desde AppBarLayout . Estos parámetros de diseño tienen las banderas de desplazamiento que se establecen en el XML.

Entonces, obtienes el AppBarLayout.LayoutParams de la Toolbar , y llamas a setScrollFlags() para cambiar los indicadores al valor que deseas.

Toolbar toolbar = findViewById(R.id.toolbar); // or however you need to do it for your code AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) toolbar.getLayoutParams(); params.setScrollFlags(0); // clear all scroll flags