Android设置状态栏的颜色的方法在学习ToolBar的时候已经学会了:
见以下链接
结合Toolbar设置状态栏颜色
下面是自己在项目中设置状态栏颜色的时候出现的问题
- 1.android4.4设置colorPrimaryDark无效
解决方法:
状态栏颜色是在Android5.0加入的,不过从API19之后可以设置状态栏透明色
在style中添加如下item
<item name="android:windowTranslucentStatus">true</item>
注意 :
android:fitSystemWindow="true"
如果在父布局中填写了在ToolBar里面填写,也是无效的
- 2.添加上述属性之后发现下面的界面"侵占"了状态栏
问题
API19添加上述属性之后,其实是设置了状态栏透明色并且将界面设置为全屏的,故出现了"侵占"状态栏的现象
解决方法
在ToolBar里面添加属性:
android:fitSystemWindow="true"
并且要将其他地方的这个属性去掉,不然不会达到预想的效果 - 3.添加上述属性之后,可能会出现的BUG
问题:
如果你的toolbar没有在Activity里面设置
setSupportActionBar(Toolbar)
那么它只是一个空间而已,不会更好的适配系统窗口,只是简单的把里面的内容弄的不会跟状态栏发生冲突了而已
解决方法
Activity继承AppCompatActivity
使用setSupportActionBar(Toolbar)方法 - 4.一个不是问题的问题,
问题
我在Toolbar的标签里面加了一个ImageButton设置点击事件等,希望这个ImageView在Toolbar的最左边(正常情况下应该是在Menu里面设置MenuItem,设置MenuItem的itemID和在Activity里面onCreateOptionMenu(),和在onOptionMenuItemSelect里面设置事件)
然后Toolbar.setTitle(XXX)之后发现这个图片的位置不在最左边 最左边是Title
解决方法
1.不用Title,在Activity里面添加代码getSupportActionBar().setDisplayShowTitleEnabled(false)
这样就不会显示Title了
2.或者不在Toolbar的xml里面添加,而是把它添加到Menu里面,
3.setNavigationIcon:即设定up Button的图标