Android 动态隐藏显示导航栏,状态栏

逆水行舟用力撑,一篙松劲退千寻。这篇文章主要讲述Android 动态隐藏显示导航栏,状态栏相关的知识,希望能为你提供帮助。
Talk is cheap, show me the code.
--Linus  Torvalds


【Android 动态隐藏显示导航栏,状态栏】Okay, here:
一、导航栏:

[java]  view plain  copy

  1. private  void  hideNavigationBar()  {   
  2.         View  decorView  =  getWindow().getDecorView();    
  3.         int  uiOptions  =  View.SYSTEM_UI_FLAG_HIDE_NAVIGATION   
  4.                         |  View.SYSTEM_UI_FLAG_FULLSCREEN;    
  5.         decorView.setSystemUiVisibility(uiOptions);    
  6. }   
  7.    
  8. private  void  showNavigationBar()  {   
  9.         View  decorView  =  getWindow().getDecorView();    
  10.         int  uiOptions  =  View.SYSTEM_UI_FLAG_VISIBLE;    
  11.         decorView.setSystemUiVisibility(uiOptions);    
  12. }   

相关:
SYSTEM_UI_FLAG_VISIBLE——显示状态栏和导航栏

SYSTEM_UI_FLAG_LOW_PROFILE——此模式下,状态栏的图标可能是暗的

SYSTEM_UI_FLAG_HIDE_NAVIGATION——隐藏导航栏

SYSTEM_UI_FLAG_FULLSCREEN——全屏,隐藏状态栏和导航栏

SYSTEM_UI_FLAG_LAYOUT_STABLE

SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN——全屏,隐藏导航栏,状态栏浮在布局上。

SYSTEM_UI_FLAG_IMMERSIVE——沉浸式:半透明的状态栏和导航栏

SYSTEM_UI_FLAG_IMMERSIVE_STICKY——粘性沉浸式



二、状态栏:

[java]  view plain  copy
  1. private  void  setStatusBarVisible(boolean  show)  {   
  2.         if  (show)  {   
  3.                 int  uiFlags  =  View.SYSTEM_UI_FLAG_LAYOUT_STABLE;    
  4.                 uiFlags  |=  0x00001000;    
  5.                 getWindow().getDecorView().setSystemUiVisibility(uiFlags);    
  6.         }  else  {   
  7.                 int  uiFlags  =  View.SYSTEM_UI_FLAG_LAYOUT_STABLE   
  8.                                 |  View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN   
  9.                                 |  View.SYSTEM_UI_FLAG_FULLSCREEN;    
  10.                 uiFlags  |=  0x00001000;    
  11.                 getWindow().getDecorView().setSystemUiVisibility(uiFlags);    
  12.         }   
  13. }   

三、导航栏和状态栏

[java]  view plain  copy
  1. private  void  setSystemUIVisible(boolean  show)  {   
  2.         if  (show)  {   
  3.                 int  uiFlags  =  View.SYSTEM_UI_FLAG_LAYOUT_STABLE;    
  4.                 uiFlags  |=  0x00001000;    
  5.                 getWindow().getDecorView().setSystemUiVisibility(uiFlags);    
  6.         }  else  {   
  7.                 int  uiFlags  =  View.SYSTEM_UI_FLAG_LAYOUT_STABLE   
  8.                                 |  View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION   
  9.                                 |  View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN   
  10.                                 |  View.SYSTEM_UI_FLAG_HIDE_NAVIGATION   
  11.                                 |  View.SYSTEM_UI_FLAG_FULLSCREEN;    
  12.                 uiFlags  |=  0x00001000;    
  13.                 getWindow().getDecorView().setSystemUiVisibility(uiFlags);    
  14.         }   
  15. }   














    推荐阅读