Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo mantener la barra de herramientas fija en la parte superior cuando AppBar colapsa / se expande?

Visión de conjunto

Estoy tratando de implementar una de las técnicas de desplazamiento , espacio flexible con contenido superpuesto , descrito en Diseño de materiales.

Espacio flexible con contenido superpuesto

El contenido puede superponerse a la barra de aplicaciones.

Comportamiento:

La posición de inicio de la barra de aplicaciones debe ubicarse detrás del contenido. Al desplazarse hacia arriba, la barra de aplicaciones debe desplazarse más rápido que el contenido, hasta que el contenido ya no se superponga. Una vez anclado en su lugar, la barra de aplicaciones se eleva para permitir que el contenido se desplace por debajo.

Https://www.google.co.in/design/spec/patterns/scrolling-techniques.html#scrolling-techniques-scrolling


Problema

Sin embargo, el problema es que el título en mi AppBar se desplaza hacia abajo cuando se amplía y se esconde debajo del contenido superpuesto.

Aquí, mi barra de herramientas se oculta debajo del CardView superpuesto. Cuando appbar expandió

Cuando la appbar se contrae, la barra de herramientas y por lo tanto el título se desliza hacia arriba desde abajo. Cuando se derrumbó

Código

Aquí está mi código:

Activity-main.xml

<android.support.design.widget.CoordinatorLayout ... android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="200dp" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout ... android:layout_width="match_parent" android:layout_height="match_parent" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:layout_gravity="top" android:background="?attr/colorPrimary" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" ... 

También he añadido estos en la función onCreate de mi MainActivity

  setSupportActionBar(toolbar); collapsingToolbarLayout.setTitle("App Name"); 

Quiero que la barra de herramientas (con el mosaico y el otro contenido, que añadiré más adelante) se mantenga en la parte superior independientemente de que la barra de aplicaciones esté expandida o contraída.

He leído las documentaciones, he pasado por muchos posts y tutoriales, he visto muchos videos pero no he encontrado una solución de trabajo o cualquier otra solución relacionada.

Si alguien tiene alguna idea sobre cómo arreglar esto, por favor sugiera. Gracias por ayudar.

2 Solutions collect form web for “¿Cómo mantener la barra de herramientas fija en la parte superior cuando AppBar colapsa / se expande?”

Yo estaba buscando una solución a mí mismo cuando encontré la respuesta en los comentarios sobre un informe de problema similar.

Básicamente, usted llama a setTitleEnabled() en su CollapsingToolbarLayout así:

 CollapsingToolbarLayout.setTitleEnabled(false); 

Usted puede hacer esto en xml también, agregando esto a su CollapsingToolbarLayout :

 app:titleEnabled="false" 

Al establecerla en false , obtendrá el comportamiento deseado. El título permanece fijo en la parte superior de la pantalla.

La Toolbar sí ya estaba en la parte superior, pero esto hace que el título permanezca allí también, en lugar de traducir entre la parte inferior de CollapsingToolbarLayout y la Toolbar .

He conseguido esto mediante la adición de código debajo de la etiqueta de la Toolbar .

 app:layout_collapseMode="pin" 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.