为了使应用显示风格保持一致,需要更改状态栏的颜色,不是单一的黑色,android版本4.4之后可以进行修改。
首先,可以在style.xml文件下允许状态栏和导航栏,
<style name="AppTheme" parent="AppBaseTheme">
<!-- Status Bar -->
<item name="android:windowTranslucentStatus">true</item>
<!-- Navigation Bar -->
<item name="android:windowTranslucentNavigation">true</item>
</style>
也可以在代码中设置
//透明状态栏
getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//透明导航栏
getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
在AndroidManifest中的minSdkVersion要设置为19及以上,之后设置属性,需要导入SystemBarTintManager类
// 创建状态栏的管理实例
SystemBarTintManager tintManager = new SystemBarTintManager(getActivity());
// 激活状态栏设置
tintManager.setStatusBarTintEnabled(true);
// 激活导航栏设置
tintManager.setNavigationBarTintEnabled(true);
// 设置一个颜色给系统栏
tintManager.setStatusBarTintResource(R.color.status_color);
在布局文件的父控件中添加属性,android:fitsSystemWindows="true",作用是布局内容从状态栏下面开始,
但我使用之后会出现一条很宽的白色的条形,我就没有设置这个属性,让内容是从顶部开始的,然后加大标题的长度。
(我的标题栏是隐藏了的,自己设置的一个标题栏。)