layout_collapsemode example coordinatorlayout collapsing collapsible bar appbarlayout appbar_scrolling_view_behavior android android-layout scroll material-design flags

example - expandable toolbar android



DiseƱo de materiales layout_scrollFlags significados (1)

Descubrí que podemos usar indicadores geniales que desplazan tanto la barra de herramientas como el contenido usando layout_scrollFlags . En mi caso, tengo un diseño como este:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:layout_scrollFlags="snap" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMode="fixed" app:tabGravity="fill" /> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </android.support.design.widget.CoordinatorLayout>

una de mis pestañas es un fragment y su diseño tiene una Recycle View con un texto de edittext debajo de la Vista de reciclaje. En primer lugar, quiero saber lo que significa esta bandera

google dice:

  • SCROLL_FLAG_ENTER_ALWAYS
    Al ingresar (desplazamiento en pantalla), la vista se desplazará en cualquier evento de desplazamiento hacia abajo, independientemente de si la vista de desplazamiento también se está desplazando.
  • SCROLL_FLAG_ENTER_ALWAYS_COLLAPSED
    Un indicador adicional para ''enterAlways'' que modifica la vista de retorno para que solo se desplace inicialmente hacia atrás hasta su altura plegada.
  • SCROLL_FLAG_EXIT_UNTIL_COLLAPSED
    Al salir (desplazarse fuera de la pantalla), la vista se desplazará hasta que se "contraiga".
  • SCROLL_FLAG_SCROLL
    La vista se desplazará en relación directa a los eventos de desplazamiento.
  • SCROLL_FLAG_SNAP
    Al finalizar el desplazamiento, si la vista solo es parcialmente visible, se ajustará y desplazará hasta el borde más cercano.

Cambié esta marca al azar y, en algunos casos, mi texto de edición desapareció hasta que desplacé la barra de herramientas hacia arriba y luego apareció la edición. Leo documentos de google pero no pude entenderlo bien. Quiero entenderlo en términos simples.


No sé si mi respuesta seguirá siendo relevante, pero sin embargo. En realidad, los documentos son suficientes para entender las cosas, solo necesitas jugar un poco.
La bandera de desplazamiento utilizada en la app:layout_scrollFlags atributo app:layout_scrollFlags debe estar habilitada para que los efectos de desplazamiento tengan efecto. Este indicador se debe habilitar junto con enterAlways , enterAlwaysCollapsed , exitUntilCollapsed o snap :

  • enterAlways : la vista se hará visible cuando se desplace hacia arriba. Este indicador es útil en los casos en los que se desplaza desde la parte inferior de una lista y se desea exponer la Barra de herramientas tan pronto como se realiza el desplazamiento hacia arriba.
  • enterAlwaysCollapsed : normalmente, cuando solo se usa enterAlways, la barra de herramientas continuará expandiéndose a medida que se desplaza hacia abajo. Asumiendo que enterAlways está declarado y que ha especificado un minHeight, también puede especificar enterAlwaysCollaed. Cuando se utiliza esta configuración, su vista solo aparecerá en esta altura mínima. Solo cuando el desplazamiento llega a la parte superior, la vista se ampliará a su altura máxima
  • exitUntilCollapsed : cuando se establece el indicador de desplazamiento, el desplazamiento hacia abajo normalmente hará que se mueva todo el contenido. Al especificar minHeight y exitUntilCollapsed, se alcanzará la altura mínima de la barra de herramientas antes de que el resto del contenido comience a desplazarse y salga de la pantalla
  • snap : el uso de esta opción determinará qué hacer cuando una vista solo se ha reducido parcialmente. Si el desplazamiento finaliza y el tamaño de la vista se ha reducido a menos del 50% de su original, entonces esta vista volverá a su tamaño original. Si el tamaño es mayor al 50% de su tamaño, desaparecerá por completo.

Por favor, eche un vistazo a este blog , debería ser realmente útil.