#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 }