gpt4 book ai didi

Android 11 - window.setDecorFitsSystemWindow 不在状态和导航栏后面显示屏幕

转载 作者:行者123 更新时间:2023-12-04 00:53:57 25 4
gpt4 key购买 nike

我正在尝试将我的应用程序更新到 Android 11。我的应用程序的许多屏幕都是在状态栏后面使用应用程序内容设计的。我将我的 gradle 更新到 Android 11 并开始更新 Window 代码以获取 Android 11 设备的无限制行为。
我在我的 Activity onCreate 方法中使用以下代码为预 Android 11 设备实现了我想要的结果:

Window w = getWindow();
w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
我尝试使用 w.setDecorFitsSystemWindows(false); 为 Android 11 获得相同的无限制行为
我尝试使用它而不是使用标志,将它与标志一起使用并传递真假,在设置标志之前和之后设置它,但我总是看到一个白色的状态和系统导航栏,而不是它们后面的我的应用程序内容。
我尝试了什么:
Window window = getWindow();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
window.setDecorFitsSystemWindows(false); //also tried with true
} else {
window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}

//or
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
window.setDecorFitsSystemWindows(false); //also tried with true
}
window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

//or
window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
window.setDecorFitsSystemWindows(false); //also tried with true
}
我的应用程序仍在 Java 代码中,我尝试了 window?.setDecorFitsSystemWindows(false)在另一个使用 Kotlin 代码的应用程序中,它可以正常工作。
有谁知道我在这里错过了什么或做错了什么?

最佳答案

My App still is in Java Code, i tried window?.setDecorFitsSystemWindows(false) in another app which uses Kotlin code and it worked without any troubles.


Kotlin 在内部使用 Java,因此就嵌入 API 而言,您是使用 Java 还是 Kotlin 编写代码并不重要。
可能,您在 View 层次结构中使用的 View 组之一会消耗插图并且不会将它们传播到 subview 。这是我的情况 - 我的应用程序正在使用 DebugDrawerwindow.setDecorFitsSystemWindows(false);在我的情况下对布局没有任何影响。甚至还有 solution对于那种情况。如果您有类似的问题,也许您也可以使用它。在 Android Studio 的新布局检查器中检查 View 层次结构可能会有所帮助。注意具有 fitsSystemWindows = true 属性的 View .另外, answer可能会有所帮助。

关于Android 11 - window.setDecorFitsSystemWindow 不在状态和导航栏后面显示屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64153785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com