android toolbar 自定义布局变色,设置toolbar与状态栏颜色一致-沉浸式状态栏
设置沉浸式状态栏很简单,但在这里要重视下,这里有一个坑。就是包裹着toolbar的最外层布局不能设置android:fitsSystemWindows="true",如果设置了,就会无效果。还有直接给layout_height设置?actionBarSize。toolbar内的布局会网上移动,覆盖手机的状态栏上。设置可分为三部分一、去掉应用的ActionBar,可为activity设置theme为
设置沉浸式状态栏很简单,但在这里要重视下,这里有一个坑。就是包裹着toolbar的最外层布局不能设置android:fitsSystemWindows="true",如果设置了,就会无效果。
还有直接给layout_height设置?actionBarSize。toolbar内的布局会网上移动,覆盖手机的状态栏上。
设置可分为三部分
一、去掉应用的ActionBar,可为activity设置theme为
也可以添加:false
true
二、在toolbar布局中添加:android:minHeight="?actionBarSize"和android:fitsSystemWindows="true"。其中layout_height设置为wrap_content
fitsSystemWindows是ToolBar实现沉浸式状态栏的关键,其大概情况是,如果设为true,就会调整这个view去留一些空间给系统窗口,如果不设置或设为false,ToolBar就会和状态栏重叠在一起
三、在activity内也重新设置下,因为有些版本可能识别不了xml设置的android:fitsSystemWindows="true"
//手机顶部状态栏与toolbar颜色一致
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
WindowManager.LayoutParams barLayoutParams=getWindow().getAttributes();
barLayoutParams.flags=(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS|barLayoutParams.flags);
}
这就是我简单设置沉浸式状态栏的方法,和遇到的问题
还有一个坑,就是键盘弹出,toolbar被拉伸的问题;
更多推荐
所有评论(0)