Android appbarlayout 高程出现在状态栏中

Posted

技术标签:

【中文标题】Android appbarlayout 高程出现在状态栏中【英文标题】:Android appbarlayout elevation appears in status bar 【发布时间】:2016-02-17 00:23:50 【问题描述】:

如何摆脱状态栏中的高度?如果我在 AppbarLayout 中将 app:elevation 设置为 0dp,则高度不会再出现在状态栏中,但也不会出现在 AppbarLayout 下方。

如何获取 AppbarLayout 下的海拔?

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

谢谢!

【问题讨论】:

你能发布你的活动主题吗? 你有绘制状态栏标志吗? 我不确定你的意思@NikolaDespotoski 惊讶于这么少的人注意到这个明显的错误! 【参考方案1】:

我们担心当状态栏透明时AppBarLayout 的阴影可见。拥有一个不透明的状态栏并不总是可行的。这仅在 Lollipop 及更高版本上发生,因为动态阴影渲染。在棉花糖上,错误的阴影看起来更糟。

最佳解决方案

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

现在将AppBarLayout 包裹在另一个具有android:fitsSystemWindows="false"CoordinatorLayout 中。这将防止阴影溢出到状态栏


其他解决方法(不推荐)

在您的样式中删除 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",但这也会消除底部的阴影。

【讨论】:

非常感谢!它有效。这是一个供其他人参考的示例:gist.github.com/sahilshekhawat/00d24fb217f74f06fca27d133cb10d1a

以上是关于Android appbarlayout 高程出现在状态栏中的主要内容,如果未能解决你的问题,请参考以下文章

android 新控件 AppBarLayout 使用

android CoornatorLayout中AppBarLayout的scrollFlags效果

Android CoordinatorLayout + AppbarLayout + Viewpager 总是滚动

37Android去除AppBarLayout阴影

如何将高程(阴影)添加到我的 BottomNavigationView。默认情况下不会出现

Android基础知识 - AppbarLayout