Android Kotlin doOnLayout未设置可见性。已消失

Android Kotlin doOnLayout未设置可见性。已消失,android,xml,android-layout,kotlin,android-constraintlayout,Android,Xml,Android Layout,Kotlin,Android Constraintlayout,我有一个自定义的ConstraintLayoutMyword。当我在kotlin fun doOnLayout中将myword1的可见性设置为GONE时,它将不可见,但myword2不会向下移动 但是,如果我在XML或doOnLayout外部将其可见性设置为GONE,它将按预期工作 源代码: lateinit var bannerword : MutableList<Myword> lateinit var swippon : ConstraintLayout fun upd

我有一个自定义的ConstraintLayout
Myword
。当我在kotlin fun doOnLayout中将
myword1
的可见性设置为
GONE
时,它将不可见,但myword2不会向下移动

但是,如果我在XML或doOnLayout外部将其可见性设置为
GONE
,它将按预期工作


源代码:

lateinit var bannerword : MutableList<Myword>
lateinit var swippon : ConstraintLayout


fun updatewords{
        swippon.doOnLayout {
            if (swippon.height>1000)    bannerword[0].visibility = View.GONE}

class PhrasesFragment: Fragment() {



        companion object {
            fun newInstance(): PhrasesFragment {
                return PhrasesFragment()
            }
        }

        override fun onCreateView(inflater: LayoutInflater,
                                  container: ViewGroup?,
                                  savedInstanceState: Bundle?): View? {
            return inflater.inflate(R.layout.inglesa_screen, container, false) }

        override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
            super.onViewCreated(view, savedInstanceState)

             bannerword=mutableListOf(myword1,myword2)
             swippon=parent
             updatewords()
        }
    }
lateinit var bannerword:MutableList
lateinit变量swippon:ConstraintLayout
有趣的更新森林{
swippon.doOnLayout{
如果(swippon.height>1000)bannerword[0]。可见性=视图。消失}
类短语片段:片段(){
伴星{
fun newInstance():短语片段{
返回短语片段()
}
}
override fun onCreateView(充气机:布局充气机,
容器:视图组?,
savedInstanceState:捆绑?:查看{
返回充气机。充气(R.layout.inglesa_屏幕,容器,假)}
覆盖已创建的视图(视图:视图,保存状态:捆绑?){
super.onViewCreated(视图,savedInstanceState)
bannerword=mutableListOf(myword1,myword2)
swippon=父项
updatewords()
}
}
布局时的doOnLayout函数计算父布局高度并最终删除myword1。实际上,我用
处理程序(Looper.getMainLooper())解决了更改doOnLayout的问题。post{}
但doOnLayout有错吗?我应该如何正确使用它