Как восстановить положение макета после развертывания и свертывания TextView в Kotlin - PullRequest
0 голосов
/ 23 мая 2019

У меня есть 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
    }
}

1 Ответ

1 голос
/ 23 мая 2019

Измените toggleVisibility на

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

Когда вы устанавливаете видимость на invisible, ограничения макета остаются, но вид скрыт.Установка gone также снимет ограничения макета.

...