沉浸式状态虽然不是什么新的技术,在Android4.4.4加入的,但是,在实际开发中还是有很多的问题,首先,要想沉浸需要在OnCreate()中加入
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
2.需要让自己的页面适配沉浸式:1.可以在应用的layout的顶xml里面添加一个属性:
android:fitsSystemWindow="true";
但是,这个属性却又很多限制:
只有将statusbar设为透明,或者界面设为全屏显示(设置View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN flag)时,fitsSystemWindows才会起作用。不然statusbar的空间轮不到用户处理,这时会由ContentView的父控件处理,如果用HierarchyView 工具查看,将会看到,ContentView的父控件的paddingTop将会被设置。
2.可以在onCreat()方法的里面判断下sdk版本做下判断:
Build.VERSION.SDK_INT>=19{
}
获取下电池条的高度:
int result = 0;
int resourceId = Resources.getSystem().getIdentifier(“status_bar_height”, "dimen", "android");
if (resourceId > 0) {
result = Resources.getSystem().getDimensionPixelSize(resourceId);
}
return result;
我是给View添加padding属性:
view.setPadding(0,height,0,0);