android - para - como poner iconos en la barra de tareas windows 10
¿Cómo mantener la barra de herramientas fija en la parte superior cuando la barra de aplicaciones se contrae/expande? (4)
Visión general
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 inicial de la barra de aplicaciones debe estar ubicada detrás del contenido. Al desplazarse hacia arriba, la barra de la aplicación debería desplazarse más rápido que el contenido, hasta que el contenido ya no se superponga. Una vez anclada en su lugar, la barra de la aplicación se levanta para permitir que el contenido se desplace por debajo.
Problema
Sin embargo, el problema es que el título en mi barra de aplicaciones se desplaza hacia abajo cuando se expande y se oculta debajo del contenido superpuesto.
Aquí, mi barra de herramientas está oculta debajo del CardView superpuesto.
Cuando la barra de aplicaciones se contrae, la barra de herramientas y, por lo tanto, el Título se desliza hacia arriba desde abajo.
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 los demás contenidos, que agregaré más adelante) permanezca en la parte superior, independientemente de que la barra de aplicaciones se expanda o se contraiga.
He leído las documentaciones, he leído muchas publicaciones y tutoriales, he visto muchos videos pero no he podido encontrar una solución que funcione o alguna otra solución relacionada.
Si alguien tiene alguna idea sobre cómo solucionar esto, sugiéralo. Gracias por ayudar.
En mi caso, necesitaba agregar app:titleEnabled="false"
a CollapsingToolbarLayout
AND app:layout_collapseMode="pin"
a android.support.v7.widget.Toolbar
Ahora la barra de herramientas permanece fija en la parte superior de la pantalla, independientemente de si el usuario se desplaza hacia arriba o hacia abajo.
He logrado esto agregando el código de abajo dentro de la etiqueta de la Toolbar
.
app:layout_collapseMode="pin"
Yo mismo estaba buscando una solución cuando encontré la respuesta en los comentarios sobre un informe de un problema similar.
Básicamente, usted llama a setTitleEnabled()
en su CollapsingToolbarLayout
esta manera:
CollapsingToolbarLayout.setTitleEnabled(false);
También puede hacer esto en xml, agregando esto a su CollapsingToolbarLayout
:
app:titleEnabled="false"
Al configurarlo en false
, obtendrás 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
.
Para mantener el título en la parte superior , simplemente coloque este atributo en su CollapsingToolbarLayout
:
app:expandedTitleGravity="top"