如何防止屏幕截图撤消隐藏的状态栏?



我正在使用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

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

我找到了部分修复。它并不完美,但我的解决方案是重新隐藏窗口焦点更改((的状态栏。

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

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

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

最新更新