Android 系统升级遇到的问题
1. 状态栏高度
发现 Android 11 上 targetSdkVersion 是30时获取状态栏高度为0,低于30获取值正常。。。因此需要使用WindowMetrics适配一下,仅此记录,暂未发现异常
public static int getStatusBarHeight(Context context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
WindowMetrics windowMetrics = wm.getCurrentWindowMetrics();
WindowInsets windowInsets = windowMetrics.getWindowInsets();
Insets insets = windowInsets.getInsetsIgnoringVisibility(WindowInsets.Type.statusBars() | WindowInsets.Type.displayCutout());
return insets.top;
}
....
}
WindowMetrics 是 Android11 新增的类,用于获取窗口边界,同样可以用来获取导航栏高度。