QMUI_Android
QMUI_Android copied to clipboard
QMUIStatusBarHelper对状态栏高度大于25dp时的特殊处理
运行环境
- [x] 设备型号:如:
HUAWEI MatePad Pro
- [x] 设备系统版本:如
HarmonyOS 2.0.0
- [x] Gradle 版本:如
4.2.0
- [x] QMUI Android 版本:
1.4.3
具体问题描述
使用 QMUIStatusBarHelper
类的 getStatusbarHeight
方法获取到的状态栏高度为0,而用 QMUIDisplayHelper
的 getStatusBarHeight
方法获取到状态栏高度是正确的,查看了前者的实现,发现有这样一行针对大于25dp状态栏高度的处理:
if (QMUIDeviceHelper.isTablet(context)
&& sStatusbarHeight > QMUIDisplayHelper.dp2px(context, STATUS_BAR_DEFAULT_HEIGHT_DP)) {
//状态栏高度大于25dp的平板,状态栏通常在下方
sStatusbarHeight = 0;
} else {
if (sStatusbarHeight <= 0) {
if (sVirtualDensity == -1) {
sStatusbarHeight = QMUIDisplayHelper.dp2px(context, STATUS_BAR_DEFAULT_HEIGHT_DP);
} else {
sStatusbarHeight = (int) (STATUS_BAR_DEFAULT_HEIGHT_DP * sVirtualDensity + 0.5f);
}
}
}
所以不是很懂,这里为什么要对25dp的状态栏做特殊处理呢