问题
- 设置状态栏透明之后(状态栏浮于应用之上体验较好),导航栏会对底部Tab进行遮挡,原因在于fitSystemWindow属性:
- 当设置状态栏透明时
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
getActivity().getWindow().addFlags(
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getActivity().getWindow().setStatusBarColor(Color.TRANSPARENT);
}
1. 在xml父布局中设置android:fitSystemWindow="true"
会将状态栏位置的状态栏高度空出来,即设置了padding
2. 在xml父布局中设置android:fitSystemWindow="false" 或者不设置
状态栏浮于应用之上,体验较好
3. 不论是否设置fitSystemWindow属性,底部导航栏滑出被都不会遮盖布局
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
getActivity().getWindow().addFlags(
WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
getActivity().getWindow().setStatusBarColor(Color.TRANSPARENT);
}
1. 在xml父布局中设置android:fitSystemWindow="true"
会将状态栏位置的状态栏高度空出来,即设置了paddingTop(状态栏高度)。但是滑出导航栏对布局会产生遮挡
2. 在xml父布局中设置android:fitSystemWindow="false" 或者不设置
状态栏浮于应用之上,体验较好。但是导航栏的滑出会对布局进行遮挡