淡化系统状态栏

设置系统状态栏为透明,隐藏actionbar,内容不会冲到状态栏之下。
     
  1. name="Theme.MainActivity" parent="AppTheme.NoActionBar">
  2. name="windowActionBar">false
  3. name="windowNoTitle">true
  4. name="android:windowTranslucentStatus">true
这时,系统状态栏下的颜色是由应用主题的主色中的colorPrimaryDark决定
     
  1. name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
  2. name="colorPrimary">@color/colorPrimary
  3. name="colorPrimaryDark">@color/colorPrimaryDark
  4. name="colorAccent">@color/colorAccent

隐藏系统状态栏

针对Android4.1(API Level 16)之下的版本:
     
  1. //隐藏系统状态栏
  2. // If the Android version is lower than Jellybean, use this call to hide
  3. // the status bar.
  4. if (Build.VERSION.SDK_INT < 16) {
  5. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
  6. WindowManager.LayoutParams.FLAG_FULLSCREEN);
  7. }
针对Android4.1(Api Level16)及之上版本:
     
  1. //在Android 4.1(API level 16)以及以上的版本中,你可以使用setSystemUiVisibility())来进行动态隐藏
  2. View decorView = getWindow().getDecorView();
  3. // Hide the status bar.
  4. int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
  5. decorView.setSystemUiVisibility(uiOptions);
  6. // Remember that you should never show the action bar if the
  7. // status bar is hidden, so hide that too if necessary.
官方建议同时隐藏掉ActionBar,如果不隐藏ActionBar将突兀的出现在状态栏之下内容之上。 注:跳转到另一个Activity、按下Home键会导致设置的系统UI的标签被清除,系统状态栏会重现显示。点击了ActionBar的menu菜单,状态栏也会重新出现。如果想要避免这种状况,就不要在onCreate() 方法中设置UI标签,而应该在onResume()与onWindowFocusChaned()里设定UI标签。

全屏显示内容:

设置Activity的主题
     
  1. <item name="android:windowFullscreen">trueitem>
代码设置的方式:在onCreate()的setContentView()之前调用
     
  1. /*全屏*/
  2.        requestWindowFeature(Window.FEATURE_NO_TITLE);//取消标题栏
  3. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
使用非粘性沉浸模式:
     
  1. /**
  2. * 非粘性沉浸模式,在不改变内容区域大小的情况下,隐藏与显示状态栏和导航栏。但是状态栏占得位置还在
  3. */
  4. private void unStickyModeFullScreen() {
  5. /*非粘性沉浸模式,在不改变内容区域大小的情况下,隐藏与显示状态栏和导航栏。和上面的效果基本相同,但是同时隐藏了ActionBar*/
  6. View mDecorView = getWindow().getDecorView();
  7. mDecorView.setSystemUiVisibility(
  8. View.SYSTEM_UI_FLAG_LAYOUT_STABLE
  9. | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
  10. | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
  11. | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
  12. | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
  13. | View.SYSTEM_UI_FLAG_IMMERSIVE);
  14. }

指定statusBar的颜色:

在主题中添加,首先设置其颜色不跟随ToolBar(ActionBar),android:windowTranslucentStatus位false时,内容不会冲到statusBar的下面,为true时会占据statusbar的位置。
     
  1. <item name="android:windowTranslucentStatus">falseitem>
  2. <item name="android:statusBarColor">@color/black_272a33item>

更多相关文章

  1. Android使用include标签无法设置具体位置的解决
  2. Android获取验证码倒计时实现代码
  3. 【android】 Android(安卓)动画cancle后 view隐藏
  4. ANDROID 设置状态栏与标题背景颜色一致
  5. Android自动打开和关闭软键盘
  6. Android学习之RecyclerView学习(实现瀑布流式布局)
  7. android 语言切换-横竖屏切换时异常
  8. Android-->Android(安卓)原生支持圆角图片,圆角ImageView
  9. android Notification (2)

随机推荐

  1. 使用MediaPlayer播放音乐文件
  2. InputFilter方法filter 解释
  3. 35十包宽高
  4. Android(安卓)加速器(accelerometer) 使
  5. java.lang.IllegalStateException: No ho
  6. Google cardBoard Android(安卓)API (八)
  7. 【Android】软键盘弹出button与edittext
  8. android之datepicker控件的用法
  9. Android虚拟导航键的显示隐藏实例
  10. Android快速开发(2)