5.0的标题栏颜色只能通过在style中设定吗?能不能代码动态设置?
除了StatusBarTintManager
5.0的标题栏颜色只能通过在style中设定吗?能不能代码动态设置?
除了StatusBarTintManager
弄清楚“colorPrimaryDark”是状态栏颜色,就可以通过动态改变“colorPrimaryDark”来实现沉浸式状态栏。
1、首先不再使用ActionBar,“styles.xml”中对主题应该进行修改。
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>
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();
}
通过这种方式实现沉浸式状态栏是否可行?期待各位路过的朋友发表发表看法。
1 回答621 阅读✓ 已解决
1 回答1.5k 阅读
1 回答1.3k 阅读
1 回答1.2k 阅读
1 回答984 阅读
1 回答645 阅读
1 回答705 阅读
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {