首页 > 解决方案 > 如何在 Kotlin 中展开和折叠 TextView 后恢复布局位置

问题描述

我有一个 CardView 和一个 TextView 下面。当您单击 CardView 时,它会切换 TextView 的可见性并且它工作正常,但是当它展开时,它会推动我的 LinearLayout 中的下一个项目,并且当它再次折叠时,只有 TextView 所在的空白处。

我该如何做到这一点,以便当 TextView 折叠(可见性消失)时,布局中的下一个项目也会上升到第一次的位置?

//it starts hidden 
textView3.visibility = View.GONE

cardView.setOnClickListener{
        textView3.toggleVisibility()

    }

 fun View.toggleVisibility() {
    if (visibility == View.VISIBLE) {
        visibility = View.INVISIBLE
    } else {
        visibility = View.VISIBLE
    }
}

标签: androidkotlincardview

解决方案


更改toggleVisibility

if (visibility == View.VISIBLE) {
    visibility = View.GONE
} else {
    visibility = View.VISIBLE
}

当您将可见性设置为 时invisible,布局约束仍然存在,但视图被隐藏。将其设置为gone也将删除布局约束。


推荐阅读