android - 如何防止截图撤消隐藏状态栏?
问题描述
我正在使用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
但是,截取屏幕截图将取消隐藏状态栏。我可以使用哪种标志或方法来防止屏幕截图永久显示状态栏?
解决方案
我找到了部分修复。它并不完美,但我的解决方案是重新隐藏状态栏 onWindowFocusChanged()。
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
// <Insert code here to re-hide status bar>
}
但是,这会显示动画伪影,因为每当窗口焦点发生变化时,我们都会主动隐藏和取消隐藏状态栏。我尝试使用一些没有状态栏的计算器应用程序截屏,并且没有涉及动画。
但是,对于我的应用程序,您会在截屏并返回应用程序窗口时看到状态栏隐藏和取消隐藏。
推荐阅读
- python - 为什么 np.where 函数似乎也适用于值
- python - Django:过滤器返回空结果
- mysql - 如何创建一个触发器,在更新表中的列之前将整个旧行保存到新表中?
- azure - 用于修改 Azure Blob 存储中对象的 ContentType 的 Powershell 函数
- html - 将 css 添加到表格单元格 - HTML、CSS
- java - 通过派生类访问Java中定义的静态内部类
- ios - 错误:无法解析构建文件:XCBCore.BuildFile(namedReferencesCannotBeResolved)(在目标“CentralCasting”中)
- arduino-ide - 如何在 void 循环中使用 serial.available 两次?
- java - Eclipse maven 编译器不支持编译器插件 compilerArgs
- javascript - 用户滚动后如何防止 2 个视频同时播放