Android开发 之 动态显示和隐藏状态栏和导航栏

动态显示和隐藏状态栏和导航栏

方法一:在主题中添加一个属性

[java] view plain copy

  1. true  

 

方法二:在setcontentview之前设置flag

[java] view plain copy

  1. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);  

 

方法三:在任何位置都可以添加和移除一个flag

[java] view plain copy

  1. getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) //隐藏状态栏   
  2. getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) //显示状态栏  


方法四:通过view设置setsystemUiVisibility,参数有一下几种,可单独设置也可多个设置

[java] view plain copy

  1. View.SYSTEM_UI_FLAG_VISIBLE:显示状态栏,Activity不全屏显示(恢复到有状态的正常情况)。  
  2. View.INVISIBLE:隐藏状态栏,同时Activity会伸展全屏显示。  
  3. View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏显示,且状态栏被隐藏覆盖掉。  
  4. View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,Activity顶端布局部分会被状态遮住。  
  5. View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN  
  6. View.SYSTEM_UI_LAYOUT_FLAGS:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN  
  7. View.SYSTEM_UI_FLAG_HIDE_NAVIGATION:隐藏虚拟按键(导航栏)。有些手机会用虚拟按键来代替物理按键。  
  8. View.SYSTEM_UI_FLAG_LOW_PROFILE:状态栏显示处于低能显示状态(low profile模式),状态栏上一些图标显示会被隐藏。  

 

[java] view plain copy

  1. //        //布局填充状态栏,设置透明  
  2. //        if (Build.VERSION.SDK_INT >= 21) {  
  3. //            View decorView = getWindow().getDecorView();  
  4. //            int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN  
  5. //                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;  
  6. //            decorView.setSystemUiVisibility(option);  
  7. //            getWindow().setStatusBarColor(Color.TRANSPARENT);//透明状态栏  
  8. //        }  
  9.   
  10. //        //隐藏状态栏和导航栏,但是一点击就显示出来了  
  11. //        if (Build.VERSION.SDK_INT >= 21) {  
  12. //            View decorView = getWindow().getDecorView();  
  13. //            int option = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION  
  14. //                    | View.SYSTEM_UI_FLAG_FULLSCREEN;  
  15. //            decorView.setSystemUiVisibility(option);  
  16. //        }  
  17.   
  18. //        //布局填充状态栏,导航栏,设置全部透明  
  19. //        if (Build.VERSION.SDK_INT >= 21) {  
  20. //            View decorView = getWindow().getDecorView();  
  21. //            int option = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION  
  22. //                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN  
  23. //                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;  
  24. //            decorView.setSystemUiVisibility(option);  
  25. //            getWindow().setNavigationBarColor(Color.TRANSPARENT);  
  26. //            getWindow().setStatusBarColor(Color.TRANSPARENT);  
  27. //        }  
  28.   
  29.         //全屏显示,拉出状态栏和导航栏后一会后消失。  
  30.         if (Build.VERSION.SDK_INT >= 21) {  
  31.             View decorView = getWindow().getDecorView();  
  32.             decorView.setSystemUiVisibility(  
  33.                     View.SYSTEM_UI_FLAG_LAYOUT_STABLE  
  34.                             | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION  
  35.                             | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN  
  36.                             | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION  
  37.                             | View.SYSTEM_UI_FLAG_FULLSCREEN  
  38.                             | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);  
  39.         }  



应用场景:横竖屏切换的时候显示和隐藏状态栏

[java] view plain copy

  1.  @Override  
  2.     public void onConfigurationChanged(Configuration newConfig) {  
  3.         super.onConfigurationChanged(newConfig);  
  4.         if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {  
  5.             //竖屏  
  6. //            getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //显示状态栏  
  7.             View decorView = getWindow().getDecorView();  
  8.             decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);//全部显示出来。  
  9.         } else {  
  10.             //横屏  
  11. //            getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //隐藏状态栏  
  12.   
  13.             View decorView = getWindow().getDecorView();  
  14.             decorView.setSystemUiVisibility(  
  15.                     View.SYSTEM_UI_FLAG_LAYOUT_STABLE  
  16.                             | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION  
  17.                             | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN  
  18.                             | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION  
  19.                             | View.SYSTEM_UI_FLAG_FULLSCREEN  
  20.                             | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);  
  21.         }  
  22.     }  

你可能感兴趣的:(Flash,linux)