gpt4 book ai didi

android - 你能在 Fragment.onCreateView 中检测到应用程序是否处于沉浸模式吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:52:03 25 4
gpt4 key购买 nike

在一个 fragment 中,我实现了一个 GestureDetector.SimpleOnGestureListener,这样我就可以在检测到 onSingleTapUp 时进入/退出沉浸式模式。

FragmentStatePagerAdapter 用于在向左/向右滑动时在这些 fragment 之间移动。如果您进入沉浸式模式,然后滑动到新 fragment ,UI 将保持沉浸式模式。

但是,在新 fragment 的 onCreateView 方法中,我需要在创建监听器时检测 UI 是否处于沉浸模式。

我已尝试在新 View 上调用 getSystemUiVisibility(),但这会返回 SYSTEM_UI_FLAG_VISIBLE

是否有一种方法可以从任何 View 或 fragment 检测应用程序是否处于沉浸式模式,而不管它是否启动了到沉浸式模式的转换?

最佳答案

如果有人正在寻找更深入的答案。要检查窗口是沉浸式还是非沉浸式,您可以使用以下方法:

(getWindow().getDecorView().getSystemUiVisibility() & View.SYSTEM_UI_FLAG_IMMERSIVE) == View.SYSTEM_UI_FLAG_IMMERSIVE

在沉浸式和正常之间切换的用法示例:

private void toggleImmersive() {
if ((getWindow().getDecorView().getSystemUiVisibility() & View.SYSTEM_UI_FLAG_IMMERSIVE) == View.SYSTEM_UI_FLAG_IMMERSIVE) {
getWindow().getDecorView().setSystemUiVisibility( // Go fullscreen
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
} else {
getWindow().getDecorView().setSystemUiVisibility( // Go immersive
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE);
}
}

关于android - 你能在 Fragment.onCreateView 中检测到应用程序是否处于沉浸模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22210112/

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