Как программно/итеративно сделать несколько представлений невидимыми?

#android #kotlin

Вопрос:

У меня есть макет, который занимает нижнюю половину дисплея.
Мое намерение состоит в том, чтобы повторно использовать этот макет для 4 различных функций.
В верхней части дисплея у меня есть еще один макет с 4 кнопками для выбора этих функций. Моя Активность на Android
Что я пытаюсь сделать, так это, выбрав 1 из 4 кнопок, стереть весь нижний макет (чтобы все представления, виджеты и т. Д. Стали видимыми). После очистки макета он сделает видимыми только виды, относящиеся к выбранной функции.

Изучая, как программно изменять атрибуты представления, я не нашел альтернативы использованию findViewById индивидуально для каждого элемента. Это быстро становится загроможденным, так как для каждого элемента требуется 2 строки кода. Пример кода Kotlin

Есть ли способ создать шаблон для достижения этой цели, не зная/не перечисляя каждое представление? Например, повторение всех дочерних представлений макета?

Например:

 for (int i = 0; i lt;= numChildren(parentLayout); i  ) { parentLayout.Child(i).visibility = GONE }  

Комментарии:

1. Вам не нужно повторять действия детей. Просто измените видимость родителя. Кроме того, посмотрите привязку просмотра Android.

Ответ №1:

Да, вы можете сделать это точно так, как вы упомянули — повторяя дочерние представления:

 parentLayout.children.forEach {  view -gt; view.isVisible = false }