fragment中处理沉浸式状态栏总结

效果图如下

fragment中处理沉浸式状态栏总结_第1张图片

背景

  1. 在项目中需要实现这样的功能:轮播图的内容与融合到状态栏中。这个需求在Activity中实现起很简单,但是在项目中使用viewpager+fragment的组合界面,处理不同的fragment中显示不同的状态栏还是有点难度。

处理思路

1.将状态栏颜色设为透明, 利用系统提供的这个android:fitsSystemWindows="true",添加该属性到View中;该属性网上有很多人都写过了。不懂的同学可以自行百度。
2.在设置了该属性的View的高度需要写死,大概在60-70dp左右(我在项目中将状态栏固定为20dp,剩下尺寸就是你自己的控件了)
3.调整View的相对位置

具体实现代码

  1. 将状态栏透明

window.setFlags(
WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

  1. 需要注意的事情:千万不要在MainActivity中添加android:fitsSystemWindows属性,否则会出现空白一块的情况,需要在fragment的布局文件中添加该属性
fragment中处理沉浸式状态栏总结_第2张图片
  1. 自定义的top_bar,固定宽高和计入属性
fragment中处理沉浸式状态栏总结_第3张图片
  1. 最终效果
fragment中处理沉浸式状态栏总结_第4张图片

你可能感兴趣的:(fragment中处理沉浸式状态栏总结)