沉浸式状态栏,博客简洁之道
适用范围4.4 kitkat
1 兼容到5.0方案:
1.1 设置statusbar颜色
getWindow().setStatusBarColor(color);
//注意getWindow.set操作,需要放在setContentView()之前
1.2 padding出statusBar空间
// 根部局
android:fitsSystemWindows="true"
2 兼容到4.4方案:
2.1 将状态栏变成透明的
//注意getWindow.set操作,需要放在setContentView()之前
//透明状态栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// 透明导航栏 navigationBar
getWindow().addFlags( WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
//此时,透过statusBar可以看到contentView
2.2 padding出statusBar空间
// 根部局
android:fitsSystemWindows="true"
2.3 通过设置布局背景,来体现statusBar的背景
// 根部局
android:background="@color/xxx"
思考:我们只是想要设置statusBar这部分,这样却设置了全部,会出现过度绘制问题
2. 4 解决过度绘制思路
在ContentView里动态添加一个View,高度为statusBar的高度,即可与statusBar重叠,我们只需要设置这个view背景即可。
形象阐述原理,消除记忆困难。