我在 android 中制作了一个画廊应用程序,其中的图像是全屏的。 所以它用在下面一行
window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
现在这工作正常,我的意思是图像现在是全屏但是当图像背景是白色时出现问题因为状态栏图标颜色是白色所以它看起来没有状态栏。
为了解决这个问题,我尝试像这样设置状态栏颜色。
window.setStatusBarColor(Color.TRANSPARENT)
但这也行不通。 我试过设置其他值,例如。
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
但这也行不通!你能帮我在设置
时如何使状态栏颜色透明
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
提前致谢
最佳答案
将flag设置为FLAG_LAYOUT_NO_LIMITS会使状态栏完全透明并且不能有任何颜色,移除这些flag然后改变颜色。
编辑:我如何实现您想要的(即状态栏位于应用程序内部并具有某种颜色和一定透明度的图层):
private fun changeStatusBarToOpaque() {
with(window) {
clearFlags(FLAG_LAYOUT_NO_LIMITS)
clearFlags(TRANSLUCENT_STATUS)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
statusBarColor = getCompatColor(R.color.opacityWhite)
addFlags(FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
}
}
}
你的主题应该有这两个标签
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
关于android - WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS 不改变状态栏颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57975056/