Chcę mieć pasek narzędzi appcompat v21 w mojej aktywności. Ale pasek narzędzi, który implementuję, nakłada się poniżej paska stanu. Jak mogę to naprawić?
Oto plik XML układu aktywności:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
<FrameLayout
android:id="@+id/container"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
Widok paska narzędzi:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary" />
Styl motywu:
<style name="AppTheme" parent="MaterialNavigationDrawerTheme.Light.DarkActionBar">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
</style>
android
xml
android-layout
emen
źródło
źródło
Theme
? opublikuj je.CoordinatorLayout
możesz spróbować: stackoverflow.com/a/47906087/2201814Odpowiedzi:
Użyj
android:fitsSystemWindows="true"
w widoku głównym układu (w twoim przypadku LinearLayout). Iandroid:fitsSystemWindows
jestźródło
<item name="android:fitsSystemWindows">true</item>
Po prostu ustaw to na plik v21 / styles.xml
i bądź pewien
źródło
U mnie problem polegał na tym, że skopiowałem coś z przykładu i użyłem
samo usunięcie tego rozwiązało mój problem.
źródło
Żadna z odpowiedzi nie zadziałała dla mnie, ale to, co ostatecznie zadziałało po ustawieniu
android:fitSystemWindows
widoku głównego (ustawiłem je w stylach v21):Upewnij się, że nie masz następującego wiersza, ponieważ AS umieszcza go domyślnie:
źródło
Żadna z odpowiedzi nie działała dla mnie, ale to, co ostatecznie zadziałało po ustawieniu:
W pliku układu aktywności rodzica nie jest to sugerowane w wielu miejscach, ale działa dla mnie i oszczędza mój dzień
źródło
androidx.coordinatorlayout.widget.CoordinatorLayout
typem.Usunąłem wszystkie wymienione poniżej linie z /res/values-v21/styles.xml i teraz działa dobrze.
źródło
Zgodnie z dokumentacją Google, nie powinniśmy używać atrybutu fitSystemWindows w motywie aplikacji, jest on przeznaczony do użycia w plikach układu. Używanie w motywach może powodować problemy w wyskakujących wiadomościach.
Sprawdź Problem tutaj i przykład problemu, który spowodował tutaj
Przykład użycia prawidłowego sposobu, który działa również dobrze z windowTranslucentStatus .
źródło
Usuń poniższe linie ze stylu lub stylu (21)
źródło