Android StatusBar / NavigationBar
@Author: Luzhuo (http://luzhuo.me/blog)
优质的用户体验, 状态栏和导航栏的展示方式起到画龙点睛的作用.
前提样式:
使用系统的默认样式
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
隐藏与显示
方式 | StatusBar | NavigationBar | 自动隐藏 | Description |
---|---|---|---|---|
FLAG_FULLSCREEN | √ | × | √ | 状态栏全屏(叠加), 自动隐藏 |
√ | × | × | 减少状态栏元素, 不隐藏 | |
SYSTEM_UI_FLAG_LOW_PROFILE | √ | × | × | 减少状态栏元素, 不隐藏 |
SYSTEM_UI_FLAG_HIDE_NAVIGATION | × | √ | × | 隐藏导航栏, 任意位置触发, 不隐藏 |
SYSTEM_UI_FLAG_FULLSCREEN | √ | × | × | 状态栏全屏(不叠加), 不隐藏 |
SYSTEM_UI_FLAG_IMMERSIVE_STICKY + … | √ | √ | √ | 解决不能自动隐藏的问题 |
SYSTEM_UI_FLAG_IMMERSIVE + … | × | √ | × | 解决任意位置触发的问题, 不隐藏 |
1. 全屏
全屏, 从Android 3.0 及 更早 开始支持隐藏StatusBar的方式
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);