为什么我们需要另一种方法来在 Android 中实现边缘到边缘,而 window.setFlags 到 FLAG_LAYOUT_NO_LIMITS 总是可以完成工作

问题描述 投票:0回答:1

为了确保我的应用程序具有现代外观,我希望使其边缘到边缘。 通过一些研究,我知道我们可以通过 3 个步骤来实现:

  1. 使App的布局遍布整个屏幕。 为了使用 API 29 执行此操作,我们在布局膨胀之前设置了 systemUiVisibility。 从 API 30 开始,我们必须使用 window.setDecorFitsSystemWindows(false)
  2. 使状态栏和导航栏透明 从API 29开始,我们必须将状态栏和导航栏的颜色设置为透明。
  3. 处理插图。

问题是,在我提出总结之前,我得到了一些使用的提示和技巧

window.setFlags(
            WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
            WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
        )

它一直有效!我认为即使使用较旧的 API 版本也是如此。我什至不必更改主题文件。在所有情况下,我什至不必更改半透明。 那么...为什么我们需要使用许多其他方法,而 FLAG_LAYOUT_NO_LIMITS 的 window.setFlags 却一直有效?

我尝试使用 Android API 版本 29 和 30 中提到的方法使我的应用程序全面运行。 我尝试了与 window.setFlags FLAG_LAYOUT_NO_LIMITS 相同的操作。

我希望有一个与Android官方网站文档一致的统一方法。

android edge-to-edge
1个回答
0
投票

如果有人仍在寻找此内容,请使用:

window.setFlags(
        WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
        WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
    )

导致在 Android 10 及更低版本上检测键盘时出现问题,这意味着系统无法检测到键盘打开,从而导致模态内容,例如打开时位于键盘下方,无论您做什么都不会修复此问题,直到删除窗口标志。

© www.soinside.com 2019 - 2024. All rights reserved.