当移动到另一个片段然后导航回androidKotlin时,视图高度返回0

mm9b1k5b  于 2022-12-19  发布在  Kotlin
关注(0)|答案(1)|浏览(134)

我有两个fragments。在fragment A中有一个RecyclerView,当我点击它的元素时,我会转到另一个fragment B。在fragment A中,我有一个可以有不同高度的MaterialToolbar,所以在onViewCreated()中,我调用materialToolbar.height来获取它的高度。当我打开fragment A时,一切正常。但是,当我单击RecyclerView中的某个元素时,我会返回到fragment B,在该窗口中,按下“后退”按钮,我会返回到fragment A,而materialToolbar的高度已经是0。为什么它会返回0?如何才能使它返回所需的值?

6za6bjd0

6za6bjd01#

有一个观察者,它倾听任何给定视图的视图层次结构。

toolbar.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
        override fun onGlobalLayout() {
            binding.mbSelect.viewTreeObserver.removeOnGlobalLayoutListener(this)
            val height = materialToolbar.height
        }
    })

在你的片段A中试试上面的代码,你会得到工具栏的实际高度

相关问题