ImmersionBar icon indicating copy to clipboard operation
ImmersionBar copied to clipboard

DialogFragment 弹框底部被导航遮挡

Open hua407035000 opened this issue 5 years ago • 2 comments

image

hua407035000 avatar Jun 03 '20 02:06 hua407035000

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

wuxuebai avatar Jun 09 '20 01:06 wuxuebai

在有底部导航的情况下,试试把 dialogwindow 高度减去 底部导航的高度 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
    }

imtianx avatar Jul 08 '20 13:07 imtianx