设置填充不会更新视图

问题描述

我正在创建一个包含多个框架布局和一个滚动布局的自定义视图。滚动视图具有顶部填充,并且该填充应等于框架布局的组合高度(请参见插图)。

enter image description here

       framelayoutA.addOnLayoutchangelistener { v,_,_ ->
        if (v.height == framelayoutAHeight) return@addOnLayoutchangelistener
        framelayoutAHeight = v.height
        framelayoutAGuideline.setGuidelineBegin(framelayoutAHeight)
        framelayoutBGuideline.setGuidelineBegin(framelayoutAHeight)
        val padding = framelayoutAHeight + framelayoutBHeight
        Log.d("ParallaxScrollingView","framelayoutAHeight = $framelayoutAHeight")
        Log.d("ParallaxScrollingView","padding = $padding")
        scrollView.setPadding(0,padding,0)

    }

为了设置此填充,我需要框架布局的高度,该高度在onLayoutchangelistener中。我的问题是,框架布局A的高度被更新两次,导致onLayoutchangelistener调用两次。第一次调用时,滚动视图的顶部填充已设置并正确更新,但是第二次调用时,设置了新的顶部填充,但视图未更新。两次布局更改之间需要几秒钟的时间。有谁知道为什么不更新填充?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)