首页 > 解决方案 > 如何防止截图撤消隐藏状态栏?

问题描述

我正在使用Android 文档中的方法

View decorView = getWindow().getDecorView();
// Hide the status bar.
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);

当用户向下滑动状态栏时,我还使用此标志重新隐藏状态栏。如果没有此标志,一次滑动将取消隐藏状态栏。

View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY

但是,截取屏幕截图将取消隐藏状态栏。我可以使用哪种标志或方法来防止屏幕截图永久显示状态栏?

标签: androiduser-interfacefullscreenstatusbar

解决方案


我找到了部分修复。它并不完美,但我的解决方案是重新隐藏状态栏 onWindowFocusChanged()。

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    // <Insert code here to re-hide status bar>
}

但是,这会显示动画伪影,因为每当窗口焦点发生变化时,我们都会主动隐藏和取消隐藏状态栏。我尝试使用一些没有状态栏的计算器应用程序截屏,并且没有涉及动画。

但是,对于我的应用程序,您会在截屏并返回应用程序窗口时看到状态栏隐藏和取消隐藏。


推荐阅读