[英]Android. How to correctly hide status bar programatically on device with display cutout
我的应用程序中有一个viewPager,包含2个片段。 当你刷到其中一个我想隐藏状态栏。 这是这段代码:
val hideFlag: Int =
View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
View.SYSTEM_UI_FLAG_FULLSCREEN or
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
activity?.window?.decorView?.systemUiVisibility = hideFlag
在普通设备上一切都运行良好,但在带有显示屏切口的设备上存在一些问题。
1)当状态栏显示或隐藏时,整个UI会进行一些重新布局和跳转
2)如果状态栏被隐藏,你从屏幕顶部滑动,你的应用程序将崩溃,没有日志,没有关于错误的对话框。
有什么想法吗? 谢谢
我设法解决了问题#2。 这是来自Activity.onTochEvent的代码:
public boolean onTouchEvent(MotionEvent event) {
if (mWindow.shouldCloseOnTouch(this, event)) {
finish();
return true;
}
return false;
}
因此窗口决定完成当前活动。 我不知道为什么这个代码甚至存在,但我在我的基本活动中覆盖了这个方法,所以它总是返回false,一切似乎都没问题。
但问题#1仍有问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.