Android Kotlin doOnLayout未设置可见性。已消失
我有一个自定义的ConstraintLayoutAndroid 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
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有错吗?我应该如何正确使用它