沉浸式状态栏(TranslucentBars)
关键点:
1、在API19(Android4.4)及之后的Androd版本中设置开启沉浸式状态栏的代码
一般只需要这样写
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WindowManager.LayoutParams localLayoutParams = getWindow().getAttributes();
localLayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);
}
如果使用DrawerLayout+NavigationView则需要这样写:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WindowManager.LayoutParams localLayoutParams = getWindow().getAttributes();
localLayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP){
//将侧边栏顶部延伸至status bar
mDrawerLayout.setFitsSystemWindows(true);
//将主页面顶部延伸至status bar;虽默认为false,但经测试,DrawerLayout需显示设置
mDrawerLayout.setClipToPadding(false);
}
}
2、在API19(Android4.4)及之后的Androd版本的布局文件中为根布局里最顶部的view设置paddingTop=25dp(25dp即statusbar的高度)
1、在根布局里最顶部的view里设置
android:paddingTop="@dimen/toolbar_padding_top"
2、新建value-v19文件夹,用来适配API19之后的属性
在value的dimens.xml加入
<dimen name="toolbar_padding_top">0dp</dimen>
在value-v19的dimens.xml加入
<dimen name="toolbar_padding_top">25dp</dimen>