Панель инструментов перекрывается ниже строки состояния
Я хочу иметь панель инструментов appcompat v21 в моей деятельности. Но панель инструментов, которую я реализую, перекрывается ниже строки состояния. Как я могу это исправить?

вот макет активности xml:
<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>
панель инструментов вид:
<?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" />
стиль:
<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>
8 ответов:
использовать
android:fitsSystemWindows="true"в корневом представлении вашего макета (LinearLayout в вашем случае). Иandroid:fitsSystemWindowsэтовнутренний атрибут для настройки макета вида на основе системных окон, таких как строка состояния. Если true, то настраивает отступ этого представления, чтобы оставить место для системных окон. Будет работать, только если эта точка зрения не интегрированная деятельность.
должно быть логическое значение, либо "true" или "false".
Это также может быть ссылка к ресурсу (в виде "@[package:]type:name") или атрибут темы (в форме "?[package:] [type:] name"), содержащий значение этого типа.
это соответствует символу ресурса глобального атрибута fitsSystemWindows.
просто установите это в v21 / styles.xml-файл
<item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">@color/colorPrimaryDark</item>и обязательно
<item name="android:windowTranslucentStatus">false</item>
ни один из ответов не работал для меня, но это то, что, наконец, сработало после того, как я установил
android:fitSystemWindowsв корневом представлении (я установил их в стилях v21):<item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:windowTranslucentStatus">false</item>убедитесь, что вы не есть следующая строка, как ставит его по умолчанию:
<item name="android:statusBarColor">@android:color/transparent</item>
для меня проблема заключалась в том, что я скопировал что-то из примера и использовал
<item name="android:windowTranslucentStatus">true</item>просто удаление этого исправлена моя проблема.
Я удалил все строки, указанные ниже, с / res / values-v21 / styles.xml и теперь он работает нормально.
<item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">@android:color/transparent</item> <item name="windowActionBar">false</item> <item name="android:windowDisablePreview">true</item> <item name="windowNoTitle">true</item> <item name="android:fitsSystemWindows">true</item>
ни один из ответов не работал для меня, но это то, что, наконец, сработало после того, как я установил android: fitsSystemWindows= "false"
в файле макета родительской активности это не предлагается во многих местах, но это работа для меня и сохранить мой день
согласно Google docs, мы не должны использовать атрибут fitsSystemWindows в теме приложения, он предназначен для использования в файлах макета. Использование в темах может вызвать проблемы в тостовых сообщениях .
Проверка Проблема здесь & пример проблемы, вызванной здесь
<item name="android:fitsSystemWindows">true</item>пример использования правильного способа и который отлично работает с windowTranslucentStatus как хорошо.
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:fitsSystemWindows="true" android:layout_width="match_parent" android:layout_height="match_parent" > <include layout="@layout/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content"> </include> <android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" android:fitsSystemWindows="true" android:background="@color/white" android:animateLayoutChanges="true" app:headerLayout="@layout/navigation_drawer_header" app:menu="@menu/navigation_drawer_menu" /> </android.support.v4.widget.DrawerLayout>
удалить нижние строки из стиля или стиля (21)
<item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">@color/colorPrimaryDark</item> <item name="android:windowTranslucentStatus">false</item>
Comments