2014-07-22 44 views
0

我已经按照这个线程隐藏导航条:在活动开始时隐藏导航栏永久

Hide ICS back home task switcher buttons

工作正常,但每当我在任何地方按屏幕上的导航栏再次出现。我试过这个空的活动,没有任何“视图”,除了内容视图。

如何在整个活动期间隐藏它,而不必添加某种定时器或线程来每隔一毫秒隐藏一次?

这将是很好的获得一些额外的屏幕尺寸或能够在我的应用程序自定义我自己的导航栏。

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) 
    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 
else if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) 
    getWindow().getDecorView().setSystemUiVisibility(View.STATUS_BAR_HIDDEN); 

回答

0

这是排在很长一段时间,当我们需要全屏幕显示土壤有机质含量的问题,碰到的困难能够隐藏的Android某些版本的状态栏:

最后谷歌最新的Android OS,KitKat引入了一个体面的用户友好型工具,让我们拥有最后一个屏幕的所有权。

使用沉浸式全屏模式看多:https://developer.android.com/training/system-ui/immersive.html

// This snippet hides the system bars. 
private void hideSystemUI() { 
    // Set the IMMERSIVE flag. 
    // Set the content to appear under the system bars so that the content 
    // doesn't resize when the system bars hide and show. 
    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 // hide nav bar 
      | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar 
      | View.SYSTEM_UI_FLAG_IMMERSIVE); 
} 

// This snippet shows the system bars. It does this by removing all the flags 
// except for the ones that make the content appear under the system bars. 
private void showSystemUI() { 
    mDecorView.setSystemUiVisibility(
      View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
      | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
      | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); 
} 

下面是这是如何一直处于刺:http://blog.grio.com/2014/02/androids-hiding-of-the-system-bar-fixed.html

+0

试过和导航栏有一个空的相互作用后仍出现活动。我只能看到的解决方案是每改变一次它就会改变一次。此外,很多设备还没有将KitKat作为标准。 – Deukalion

+1

JB&ICS的任何解决方案? – jayatubi