工具栏重叠在状态栏下方
我想在我的活动中有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>
在你的布局的根视图(LinearLayout)中使用android:fitsSystemWindows="true"
。 和android:fitsSystemWindows
是一个
内部属性根据系统窗口(如状态栏)调整视图布局。 如果为true,则调整此视图的填充以为系统窗口留出空间。 只有当此视图处于非embedded式活动状态时才会生效。
必须是一个布尔值,“true”或“false”。
这也可以是对资源的引用(forms为“@ [package:] type:name”)或主题属性(forms为“?[package:] [type:] name”),包含这种types的值。
这对应于全局属性资源符号fitsSystemWindows。
只需将其设置为v21 / styles.xml文件
<item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">@color/colorPrimaryDark</item>
并确定
<item name="android:windowTranslucentStatus">false</item>
对我来说,问题是我从一个例子中复制了一些东西,然后使用
<item name="android:windowTranslucentStatus">true</item>
只是取消这个固定我的问题。
没有答案为我工作,但是这是什么终于工作后,我在根视图(我设置这些样式v21)上设置android:fitSystemWindows
:
<item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:windowTranslucentStatus">false</item>
确保你没有下面的行,因为默认情况下,
<item name="android:statusBarColor">@android:color/transparent</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>