ImmersionBar
ImmersionBar copied to clipboard
DialogFragment 弹框底部被导航遮挡

同问 我是在刚进app时候算出导航栏高度barheight 然后再弹出dialog时计算高度 加上barheight 但是这样做某些手机上会出现高度误差 导致有一段空白留白 如下图所示 黑色线圈的部分为多出来的

在有底部导航的情况下,试试把 dialog 的 window 高度减去 底部导航的高度 ImmersionBar.getNavigationBarHeight(activity)(目前手边华为手机测试没问题)。或者看看 demo 中的 dialog 的样式(我这边改样式貌似还有点问题)。
override fun onStart() {
super.onStart()
dialog?.window?.apply {
val lp = attributes.apply {
width = WindowManager.LayoutParams.MATCH_PARENT
height = ScreenUtils.getScreenHeight() - getNavigationBarHeight()
}
attributes = lp
}
}
private fun getNavigationBarHeight() = if (ImmersionBar.hasNavigationBar(context)) {
ImmersionBar.getNavigationBarHeight(context)
} else {
0
}