所以最后一件事是的,它确实有效,这是唯一一个不会留下状态栏阴影的代码...不知道为什么,但是是的,这对我来说是解决方案...我将背景设置为红色...在所有屏幕(布局)上,我从边到边添加了所有布局...所以我的背景现在是这个布局...而真实背景仅用于状态栏...
像 TranslucentStatus 这样的解决方案和我的颜色的小布局确实在状态栏后面留下了阴影,所以我永远无法得到我需要的颜色......而像 statusbarcolor 或 primarydarkcolor 这样的解决方案以编程方式或样式从来没有工作......所以如果你有这个问题你可以做这个丑陋的解决方案......但它绝对有效......
非常感谢@Muhammad Muzammil Sharif,没有他,我永远不会达到这一点......(我公司的 3 个人试图整周都这样做)
这是最终版本...现在我想隐藏一些系统通知...但我做不到这可能...再次感谢大家
所以在你所有的 java 活动中你都需要这个:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
您需要在您的styles.xml 中设置背景颜色(此颜色将是您的状态栏颜色):
<style name="AppCompat" parent="Theme.AppCompat">
<item name="android:colorBackground">@color/YOUR_STATUS_BAR_COLOR</item>
</style>
在所有布局中,您都需要添加作为背景的布局:
<LinearLayout
android:background="@color/YOUR_BACKGROUND_COLOR"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="bottom"
/>
当然,如果您想使用 @color/just name... 您需要在 colors.xml 中进行设置:
<color name="YOUR_STATUS_BAR_COLOR">#cf031c</color>
<color name="YOUR_BACKGROUND_COLOR">#383838</color>