Android StatusBar相关设置

版权声明:随意了,开心就好。反正是给大家分享的笔记 https://blog.csdn.net/u011486491/article/details/81869780

Android StatusBar设置

自 4.4 版本(API 19)以后,Android 系统开始支持状态栏的定制,并被纳入 Android 设计规范当中。

statusBar的颜色设置

通过theme实质对应的颜色:

<!-- 设置status的颜色 -->
<item name="android:statusBarColor">@android:color/transparent</item>
<!-- true: status栏的图标和文字为黑色;false: sstatus栏的图标和文字为白色 -->
<item name="android:windowLightStatusBar">true</item>
​
 <!-- true: status栏会有一层阴影;false: status栏没有阴影;当该项为true时,则name="android:windowLightStatusBar"设置无效,永远为白色 -->
<item name="android:windowTranslucentStatus">false</item>

通过代码设置statusBar颜色

// 设置颜色
getWindow().setStatusBarColor(Color.TRANSPARENT);
// 设置文字是否黑色
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
decorView.setSystemUiVisibility(option);

statusBar的显示与隐藏

View decorView = getWindow().getDecorView(); 
int option = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(option);

其他

decorView.setSystemUiVisibility(option)涉及到的设置:

  • SYSTEM_UI_FLAG_LOW_PROFILE

    设置状态栏和导航栏中的图标变小,变模糊或者弱化其效果。这个标志一般用于游戏,电子书,视频,或者不需要去分散用户注意力的应用软件。

  • SYSTEM_UI_FLAG_HIDE_NAVIGATION

    隐藏导航栏,点击屏幕任意区域,导航栏将重新出现,并且不会自动消失。

  • SYSTEM_UI_FLAG_FULLSCREEN

    隐藏状态栏,点击屏幕区域不会出现,需要从状态栏位置下拉才会出现。

  • SYSTEM_UI_FLAG_LAYOUT_STABLE

    稳定布局,主要是在全屏和非全屏切换时,布局不要有大的变化。一般和View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN、View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION搭配使用。同时,android:fitsSystemWindows要设置为true

  • SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

    将布局内容拓展到导航栏的后面。

  • SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

    将布局内容拓展到状态的后面。

  • SYSTEM_UI_FLAG_IMMERSIVE

    使状态栏和导航栏真正的进入沉浸模式,即全屏模式,如果没有设置这个标志,设置全屏时,我们点击屏幕的任意位置,就会恢复为正常模式。所以,View.SYSTEM_UI_FLAG_IMMERSIVE都是配合View.SYSTEM_UI_FLAG_FULLSCREENView.SYSTEM_UI_FLAG_HIDE_NAVIGATION一起使用的。

  • SYSTEM_UI_FLAG_IMMERSIVE_STICKY

    它的效果跟View.SYSTEM_UI_FLAG_IMMERSIVE一样。但是,它在全屏模式下,用户上下拉状态栏或者导航栏时,这些系统栏只是以半透明的状态显示出来,并且在一定时间后会自动消息。

猜你喜欢

转载自blog.csdn.net/u011486491/article/details/81869780
今日推荐