总结在项目中加入沉浸式状态栏 时总结的问题:
这个效果是Android 4.4以后的系统才支持,所以在设置的时候需要判断系统版本,代码如下
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
tintManager = new SystemBarTintManager(this);
tintManager.setStatusBarTintColor(getResources().getColor(R.color.login_top_color));
tintManager.setStatusBarTintEnabled(true);
}
tintManager.setStatusBarTintColor属性设置的颜色值就是状态栏的颜色值;
Activity的styles属性里需要设置fitsSystemWindows状态栏颜色才会生效
<item name="android:fitsSystemWindows">true</item>
styles属性里不设置clipToPadding属性会导致顶部栏和界面之间有重叠部分,设置了引发了Toast文字位置偏离中心的问题,这儿暂时是用自定义
的Toast来替换,
<item name="android:clipToPadding">true</item>