使用下面的代码是做隐藏导航
getWindow().getDecorView()
.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
的一种方式,但上述问题只要用户触摸屏幕,它就会变得可见。
在Android Kitkat中有一项名为IMMERSIVE
的功能,它隐藏了通知栏和导航。即使用户与屏幕交互,它也不会显示。但是,用户可以通过从屏幕顶部向下滑动来使其可见。下面是代码来实现它
//Initializew this in onCreate()
View mDecorView = getWindow().getDecorView();
//Then call this function
private void hideSystemUI() {
mDecorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LOW_PROFILE
| View.SYSTEM_UI_FLAG_IMMERSIVE);
}
但是在我的情况下,我从来没有想过的导航和通知栏是即使用户从屏幕底部的顶部刷卡可见。我试了一下,我能够部分实现它。我所做的是我实施了一个CountDownTimer
,每秒钟拨打hideSystemUI()
。我知道这不是做这件事的最好方式。但我没有得到任何其他解决方案来做到这一点。
如果有人获得任何那么请让我知道如何永久隐藏导航和通知栏:)希望这个答案可以帮助一些一在未来:)
观看视频this更好地了解有关此功能。
可能重复?这是一个内部设备,我正在管理导航](http://stackoverflow.com/questions/5109988/is-there-a-way-to-hide-the-system-bar-in-android-3-0-它的内部设备an) - Honeycomb的答案仍然适用于ICS – WarrenFaith 2012-03-29 13:54:31
看起来Honeycomb和ICS WRT System Bar之间存在显着差异。请参阅http://android.serverbox.ch/?p=306,特别是2011年12月29日17:20 – user316117 2012-04-10 16:44:47
的回复他指出4.0及以上。 Google的虚拟现实技术已经导致了一种新的模式,存在于4.4 请参阅下面关于沉浸模式的评论。 https://developer.android.com/training/system-ui/immersive.html – 2015-02-03 02:09:12