support custom android android-design-library android-snackbar

android - custom - snackbar angular



SnackBar y se ajustaSystemWindow (3)

Bueno, la respuesta correcta es agregar android:paddingbottom="50dp" a su CoordinatorLayout aunque no estoy seguro de que el tamaño de todas las barras de navegación sea de 50 dp

Tengo una aplicación que utiliza fitsSystemWindows para poder dibujar un fondo detrás de la barra de navegación y estado. Desafortunadamente, SnackBar parece ignorar el fitSystemWindows = true del contenedor. He reducido el problema a esta aplicación mínima:

el estilo:

<resources> <style name="AppTheme" parent="Theme.AppCompat.Light"> <item name="android:windowBackground">@color/accent_material_dark</item> <item name="android:fitsSystemWindows">false</item> <item name="android:windowTranslucentStatus">true</item> <item name="android:windowTranslucentNavigation">true</item> </style> </resources>

el diseño:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context=".MainActivity"> <Button android:id="@+id/button" android:text="@string/hello_world" android:layout_width="match_parent" android:layout_height="match_parent"/> </RelativeLayout>

la actividad:

public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(final View v) { Snackbar.make(v,"This Snackbar should fitSystemWindows",Snackbar.LENGTH_INDEFINITE).show(); } }); } }

¿Alguien sabe alguna solución?

Publiqué la aplicación mínima para mostrar el problema aquí: https://github.com/ligi/SnackBarFitsSystemWindowProblem


También puede utilizar la siguiente línea en lugar de cualquier CoordinatorLayout en la declaración Snackbar con findViewById (android.support.design.R.id.design_navigation_view) .


Snackbar siempre buscará un CoordinatorLayout para anclarse a sí mismo: cuando no tienes uno, usa la vista de contenido completo (que en tu caso, incluye el área debajo de la barra de estado), agregando un CoordinatorLayout que tiene fitsSystemWindows=true debería hazlo