android状态栏需求总结
2018-03-13 本文已影响20人
CS17
Android View层次关系
PhoneWindow-成员DecorView(FrameLayout)包含:LinearLayout View(StatusBar)
LinearLayout包含:ActionBar(FrameLayout) ContentView(FrameLayout :android.R.id.content)
一 、全屏,不保留状态栏文字(Splash页面,欢迎页面)
首先在style.xml中设置为noActionBar的主题,这是必须的

有三种方式设置全屏

二、全屏保留状态栏文字(页面上部有Banner图)
现在项目,大部分向下支持到19,所以先不考虑太低版本的情况

三、标题栏与状态栏颜色一致 xml中配置

android版本高于19可以通过以上就实现效果,但是对19版本无效,需要加入代码如下:


四、不同Fragment中对StatusBar的处理不一样
用toolbar替换actionbar

隐藏系统的statusbar,添加自己设置的view作为statusbar

通过这些操作,我们相当于把系统的StatusBar,ActionBar,都干掉了,那么接下来,我们就可以模拟创建出StatusBaruserContent.addView(mStatusBarView, 0);那么现在我们就可以自己控制statusBar和ActionBar,显示什么颜色?消失还是隐藏?
ToolBar显示的Fragment

ToolBar隐藏的Fragment

五、设置状态栏文字的颜色
设置状态栏文字颜色方法

除此国内厂商小米、魅族也开放了修改状态栏字体的方式:
小米 MIUI6
https://dev.mi.com/doc/p=4769/index.html
魅族 Flyme
http://open-wiki.flyme.cn/index.php?title=状态栏变色