Utilizar windowTranslucentStatus con la barra de herramientas oculta
Estoy intentando incorporar windowTranslucentStatus
y AppBarLayout
con la Toolbar
marcada con la app:layout_scrollFlags="scroll|enterAlways"
Pruebas simultáneas en las API 18, 19 y 22 (desde la izquierda).
- Android - Problemn al establecer la visibilidad en CoordinatorLayout
- ViewPager dentro de CoordinatorLayout cubre otras vistas en API> = 21
- CoordinatorLayout + AppBarLayout + NavigationDrawer
- Cambiar la visibilidad Las vistas de AppBarLayout causan problemas de espaciado para Fragments cargados
- Cómo implementar el ajuste en CollapsingToolbarLayout?
El problema está en la API más alta, donde la barra de herramientas es parcialmente visible bajo la barra de estado. He intentado muchas muchas combinaciones de estilos, pero este es el más cercano que conseguí.
En los estilos que uso:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:colorPrimary" tools:targetApi="lollipop">@color/primary</item> <item name="android:colorPrimaryDark" tools:targetApi="lollipop">@color/primary_dark</item> <item name="colorPrimary">@color/primary</item> <item name="colorPrimaryDark">@color/primary_dark</item> <item name="colorAccent">@color/primary</item> <item name="android:colorAccent" tools:targetApi="lollipop">@color/primary</item> <item name="android:windowTranslucentStatus" tools:targetApi="kitkat">true</item> <item name="android:windowBackground">@color/background</item> <item name="android:windowActionBarOverlay">true</item> <item name="android:windowContentOverlay">@null</item> </style>
Aquí está mi diseño xml:
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/coordinator_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:background="?attr/colorPrimary" android:fitsSystemWindows="true"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" 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:minHeight="?attr/actionBarSize" app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.AppBarLayout> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/background" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> <android.support.design.widget.FloatingActionButton android:id="@+id/add_button" android:layout_width="wrap_content" android:layout_height="wrap_content" app:backgroundTint="@color/green" app:layout_anchor="@id/recycler_view" app:layout_anchorGravity="bottom|right|end" />
Creé una aplicación de ejemplo, que está disponible en github
¿Hay algo que falta en este rompecabezas?
- ¿Es posible tener ScrollingViewBehavior combinado con el comportamiento de Snackbar?
- Cómo utilizar el diseño del coordinador con el fragmento como "vista de desplazamiento"
- Problema de barra de estado de diseño de barra de herramientas de despliegue
- El rollo no funciona correctamente para RecyclerView dentro de CoordinatorLayout
- Establecer layout_anchor en tiempo de ejecución en FloatingActionButton
- El desplazamiento no funciona con CoordinatorLayout + imagen de paralaje + BottomSheetLayout
- Android NestedScrollView alinear el contenido en la parte superior
- Personalización de la hoja inferior persistente STATE_EXPANDED altura o desplazamiento
Arreglado. Puede que no sea la solución más hermosa, pero wokrs (probado en 19 y 22). Añadí un margen negativo al diseño del coordinador y un margen positivo a la barra de herramientas (25dp ya que es la altura de la barra de estado).
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/coordinator_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:background="?attr/colorPrimary" android:fitsSystemWindows="true" android:layout_marginTop="-25dp"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" 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:minHeight="?attr/actionBarSize" app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" android:layout_marginTop="25dp"/> </android.support.design.widget.AppBarLayout> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/background" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> <android.support.design.widget.FloatingActionButton android:id="@+id/add_button" android:layout_width="wrap_content" android:layout_height="wrap_content" app:backgroundTint="@color/green" app:layout_anchor="@id/recycler_view" app:layout_anchorGravity="bottom|right|end" /> </android.support.design.widget.CoordinatorLayout>
Lo arreglé con el ajuste
android:fitsSystemWindows="false" on CoordinatorLayout.
¡Esperanza que le ayuda también!
¿Ha intentado poner lo siguiente en el RecyclerView
?
app:layout_behavior="@string/appbar_scrolling_view_behavior"
Creo que es necesario para que funcione con CoordinatorLayout
. También compruebe que su versión de com.android.support:recyclerview-v7
esté actualizada.
- Android Studio: Gradle Sync falla con soporte-v4-24.1.1.jar
- Weinre no funciona, tratando de depurar?