gpt4 book ai didi

更改 Activity 时 Android 沉浸式模式重置

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

我在使用沉浸模式时遇到问题。这是我放在所有 Activity 上的代码:

 @Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
getWindow().getDecorView().setSystemUiVisibility(
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_STICKY
);
}
}

navigationBarstatusBar 是不可见的,这很好。

问题是每次我去另一个 Activity 时,navigationBar 都会出现,然后消失。我希望 navigationBar 不会那样出现。

最佳答案

最简单的工作方式是创建如下所示的基本 Activity 类:

public abstract class BaseActivity extends AppCompatActivity {

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

enableImmersiveMode();
}

@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);

if(hasFocus) {
enableImmersiveMode();
}
}

protected void enableImmersiveMode() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
getWindow().getDecorView().setSystemUiVisibility(
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_STICKY
);
}
}
}

并且所有应该在沉浸式模式下工作的 Activity 都应该从上面的基类继承。

我刚刚测试过了。它可以防止屏幕菜单在更改 Activity 时隐藏和显示。

关于更改 Activity 时 Android 沉浸式模式重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29186081/

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