做需求的时候遇到了个坑,记录一下。
我是一个FragmentActivity,activity中正常展示,使用的是沉浸式状态栏。
页面中有几个二级界面的浮层,使用的是fragment展示,这时候发现一个问题,就是fragment中有的时候布局是直接盖在状态栏上的,有的时候是在状态栏下面展示的。很怪异。
最后写了一个方法,判断一下状态栏是否展示。展示的话就给布局添加状态栏高度的padding,如果没有展示就不需要处理。
float y = getActivity().getWindow().getDecorView().findViewById(android.R.id.content).getY();
//y==0的时候,就代表content的布局直接顶到了屏幕顶部,就需要添加padding了。
if (y == 0) {
int statusBarHeight = DeviceUtil.getStatusBarHeight(getActivity());
view.setPadding(0, statusBarHeight, 0, 0);
}