Android appbarlayout提升会显示在状态栏中

时间:2015-11-15 23:22:28

标签: android appbar android-appbarlayout android-elevation

如何摆脱状态栏中的高程?如果我在AppbarLayout中设置应用程序:提升到0dp,状态栏中不再出现提升,也不会低于AppbarLayout。

如何在AppbarLayout下获得高程?

以下是我的意思截图:puush link,注意状态栏中的阴影:(

谢谢!

1 个答案:

答案 0 :(得分:24)

我们关注的是当状态栏透明时AppBarLayout的阴影。拥有不透明的状态栏在任何时候都不可行。这发生在Lollipop&上面只是因为动态阴影渲染。在棉花糖上,错误的阴影看起来更糟。

最佳解决方案

您的根布局应始终android:fitsSystemWindows="true",否则您的UI不会在状态栏后面绘制。

现在将AppBarLayout包含在另一个CoordinatorLayoutandroid:fitsSystemWindows="false"。这样可以防止阴影溢出到状态栏

其他解决方法(不推荐)

在你的Style中删除statusBarColor:

<item name="android:statusBarColor">@android:color/transparent</item> 

所以你的主题是:

<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
</style>

你也可以在appbarlayout上简单地制作app:elevation =“0dp”,但这也会删除底部的阴影。