适配刘海屏就是调整控件的位置使其位于安全区域
各种机型适配:一个个型号适配,麻烦,不靠谱
Android P自带的API:还有很多旧版本钉子户呢,不靠谱
那么,有没有一种方法,可以不用判断是否是刘海屏呢?
思路:
创建一个工具类用于获得与储存StatusBar高度
在Activity创建的时候得到系统的当前StatusBar高度
在Fragment初始化控件的时候,让需要适配的控件paddingTop相应的高度
或者自己加一个自定义的StatusBarView,设置高度为系统的StatusBar高
public static int statusbarHeight = 0;
public static void getStatusBarHeight(Context context) {
Resources resources = context.getResources();
int resourceId = resources.getIdentifier("status_bar_height", "dimen", "android");
statusbarHeight = resources.getDimensionPixelSize(resourceId);
}
在Activity创建的时候调用getStatusBarHeight(),再在Fragment中对需要设置的控件进行高度设置
statusBarView.layoutParams.height = StatusBarUtil.statusbarHeight
如此一来,所指定的控件就到了刘海之外的安全区域