我知道如何在 Android 平板电脑上调暗状态栏。我使用该代码执行此操作:
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
它工作正常,但只有一次。当我触摸状态栏时,它会激活,然后当我回到应用程序的活动中时,状态栏仍然被激活(使用图标而不是点)。我试图登录 onResume 调用,但它没有被调用,所以我再次搜索并找到了另一个解决方案 - 使用处理程序更改状态栏的可见性:
getWindow().getDecorView().setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
}
});
它有时会起作用,但经过几次尝试后它就会崩溃。
我需要这个用于游戏 - 理论上我可以尝试在每次触摸后或每次在主循环中调用它,但这似乎是个坏主意(另外它必须从特定线程调用 -只有创建视图层次结构的原始线程才能触摸它的观点。)。
我的问题是:实现状态栏自动变暗的最佳方法是什么?或者,在我的情况下,任何方式。