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