在我的视频播放应用中,我使用此标志:SYSTEM_UI_FLAG_HIDE_NAVIGATION
使导航栏消失,但当我触摸屏幕时,导航栏出现,在第一次触摸后,我的触摸事件和其他事件工作细
我的问题是如何才能接管第一次接触?
答案 0 :(得分:7)
你无法真正接管第一场比赛。您可以实施View.OnSystemUiVisibilityChangeListener并在再次显示或隐藏导航栏时收到通知,然后根据其当前状态在第一次触摸时执行您想要的操作(如果可能)。
但是,正如SYSTEM_UI_FLAG_HIDE_NAVIGATION的文档中所述,您无法完全接管第一次触摸:
存在一个限制:因为导航控件非常重要,所以用户交互最少会导致它们立即重新出现。发生这种情况时,此标志和SYSTEM_UI_FLAG_FULLSCREEN都将自动清除,以便两个元素同时重新出现。
答案 1 :(得分:1)
对于遇到这篇文章的任何人,如果您打算隐藏导航/状态栏而在您触摸屏幕时不显示它,请查看此处所述的不同“沉浸式”配置:{{ 3}}
例如:
currentActivity?.window?.decorView?.systemUiVisibility = View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or
View.SYSTEM_UI_FLAG_FULLSCREEN or
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
这将有效地将您的屏幕置于“全屏”模式,无论用户与屏幕进行任何互动
要再次显示导航/状态栏,只需将其更改回:
currentActivity?.window?.decorView?.systemUiVisibility = View.SYSTEM_UI_FLAG_VISIBLE