android - WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS 不改变状态栏颜色

标签 android

我在 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/

相关文章:

Android Facebook对话框立即消失

android - 在 Android 模拟器中为相机图片模拟 SD 卡

android - 如何从 Android 中的另一个类操作 View ?

java - Android MediaPlayer 在安装时需要文件

android - Eclipse w/ADT 崩溃,编辑器中出现 "import android."语句

android - 一段时间后文件观察器停止工作

android - EditText OnFocusChangeListener() 不隐藏光标和 View

java - 从 XML 字符串获取值

android应用内计费安全验证方法总是返回false

java - Android:将外部项目包名称添加到布局xml中?