在这篇末尾也提到过沉浸式状态,不过那时是借助了Design Support库,嵌套了好多布局,实在是太麻烦了。。。文章传送门
下面介绍一种更简单的方式。
....
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= 21){
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
getWindow().setStatusBarColor(Color.TRANSPARENT);
}
setContentView(....);
....
首先获取DecorView,DecorView是当前活动的顶级View。
接着通过setSystemUiVisibility方法设置系统UI的显示,其中这两个参数表示活动布局显示在状态栏上面。
然后就是把状态栏设置成透明。
anctivity中设置好了,当然不能忘记布局里的,相应的布局中添加android:fitsSystemWindows="true"属性即可。