弄清楚“colorPrimaryDark”是状态栏颜色,就可以通过动态改变“colorPrimaryDark”来实现沉浸式状态栏。
1、首先不再使用ActionBar,“styles.xml”中对主题应该进行修改。
@color/colorPrimary
@color/colorPrimaryDark
@color/colorAccent
true
false
2、每个Activity继承BaseActivity重写getStatusBarColor
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
| WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(getStatusBarColor());
}
}
protected abstract int getStatusBarColor();
}
通过这种方式实现沉浸式状态栏是否可行?期待各位路过的朋友发表发表看法。