android全屏模式(ICS),首先触摸显示导航栏

时间:2013-02-27 02:51:45

标签: android

在我的视频播放应用中,我使用此标志:SYSTEM_UI_FLAG_HIDE_NAVIGATION使导航栏消失,但当我触摸屏幕时,导航栏出现,在第一次触摸后,我的触摸事件和其他事件工作细

我的问题是如何才能接管第一次接触?

2 个答案:

答案 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