Android: динамически изменяйте количество кнопок в пользовательском представлении

1

Я изучаю Android, внедряя клон Mastermind. Я хочу разбить экран (или вид) на три части: доска с догадками пользователей до сих пор и обратная связь, серия кнопок управления и серия кнопок, чтобы выбрать цвет следующей привязки.

Мой инстинкт - это модульный подход. В файлах макетов используется вложенное LinearLayouts (я знаю, что это не самая эффективная вещь, но это образовательный опыт.)

Изображение 174551

"Доска" - это обычное представление, в котором я делаю много рисунков с помощью холста. Кнопки внизу отображаются в файле макета. Обратите внимание на оранжевую полосу справа?

Прямо сейчас это другой пользовательский вид. Я хочу добавить переменное количество кнопок к этому пользовательскому представлению в зависимости от количества цветов, которое может выбрать игрок. Нажатие кнопки будет выбирать цвет для следующего привязки в угадывании плеера. (Есть 3 версии игры, простые, средние и жесткие, каждый с различным количеством цветов.)

Итак, как мне добавить переменное количество кнопок в пользовательский вид, который я создаю? Или я подхожу к этому неправильно? Должен ли я использовать готовый макет? Если да, то какой и как я мог бы динамически изменять количество кнопок в макете?

Спасибо за любую помощь. Ура!

  • 0
    Я думаю, что лучшим способом решения моей проблемы был ответ на этот вопрос . Поместите пустой линейный макет в XML-файл, получите к нему доступ во время выполнения и добавьте соответствующее количество кнопок.
Теги:
button
dynamic
android-layout

1 ответ

1
Лучший ответ

Вы можете сделать это двумя способами:

  • Используя предопределенный макет и сначала устанавливая свойство "видимости" всех кнопок "уйти", затем программно вы можете установить "видимость" кнопок, которые вам нужно "видеть". Свойство "минус" делает кнопку невидимой, а также не расходует пространство в макете.
  • Добавляя динамические кнопки к основному макету, сначала вам придется создавать или "раздувать" их.

Второй вариант более мощный, но еще сложнее, если вы учитесь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню