Android appbarlayout 高程出现在状态栏中

标签 android appbar android-appbarlayout android-elevation

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

如何获取 AppbarLayout 下的海拔?

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

谢谢!

最佳答案

我们关心的是当状态栏透明时 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",但这也会消除底部的阴影。

关于Android appbarlayout 高程出现在状态栏中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33726318/

相关文章:

android - 为什么 Android 服务会被 Android 操作系统停止?

java - 从通知更改选项卡的 Intent

android - AppCompat 工具栏不显示

java - 如何为每个不同的 fragment 设置操作栏

android - 向下滚动到达 RecyclerView 顶部时如何扩展 AppBarLayout

android - TabLayout 中的选项卡不显示

java - 选取文件后未找到文件

java - Android API 2.2.1 是否过时而无法使用?

c# - AppBar 焦点问题

android - 为什么 AppBar 会在我的应用栏背景中添加方 block