安卓沉浸式状态栏
实现Activity嵌套fragment,不同fragment顶部实现不同的效果(图片沉浸状态栏,设置不同颜色的状态栏)
效果图
- 首先在Activity的onCreate(Bundle savedInstanceState)方法中setContentView(R.layout.xxx)下面设置动态显示隐藏状态栏
if (Build.VERSION. SDK_INT >= 21) {
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(option);
getWindow().setStatusBarColor(Color.TRANSPARENT);//状态栏透明
}
/* setSystemUiVisibility(int visibility) 动态显示隐藏状态栏
* View.SYSTEM_UI_FLAG_FULLSCREEN 全屏显示并隐藏状态栏
* View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 全屏显示布局不占用状态栏空间,状态栏正常显示,activity顶部布局被状态栏遮住
* */
2.上面设置会导致顶部布局被状态栏遮挡住,所以我们需要写一个View,高度等于状态栏的高度,将布局标题显示出来
在具体xml中加入下面代码
<!--android:background="@color/colorAccent"根据具体自己需要的标题栏颜色去进行设置,
若顶部是图片则不需要加背景-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/ll_title"
android:background="@color/colorAccent"
>
<