Конструирование визуальных компонентов в kotlin

Android studio предоставляет набор стандартных компонентов, таких как TextView, LinearLayout и пр. Но довольно часто приходится оперировать группами таких базовых компонентов при создании интерфейса. К примеру, текстовый ввод часто сопровождается текстовой меткой поля, получается комбинация TextView + TextEdit.

При динамическом создании таких групп, состоящих из базовых компонентов, вы раз за разом настраиваете какие то аттрибуты, погрязая в своеобразной рутине.

Один из подходов к оптимизации этой рутины — это создание классов-компонентов.

Он заключается в следующих операциях:

  • Создание xml layout компонента;
  • Создание класса компонента наследуя, к примеру, LinearLayout;
  • Использование нового компонента.

Давайте рассмотрим реальный пример компонента, который я создавал для android приложения на kotlin.

Задача компонента состояла в отображении информации о физической активности. А именно, нужно было показать:

  • иконку физического упражнения,
  • название упражнения,
  • статистику,
  • общий результат.

XML Layout

Начинать удобно с создания XML layout. Для этого добавьте в проект в ветке res ->layout новый XML -> layout файл.

В моём случае получился макет следующего вида:

Или вот такой xml-файл:

Как видите, компонент состоит из нескольких базовых. Для управления понадобится класс, производный от LinearLayout.

Создание класса

Добавьте в проект новый класс и в коде наследуйте его от LinearLayout. Базово это выглядит следующим образом:

Обычно такие классы еще дополняются методами, позволяющими управлять состоянием компонента извне. Как иллюстрация:

Четыре метода реализуют настройку 4х дочерних компонентов.

Использование созданного компонента

Компонент готов к использованию. Вы можете динамически создавать экземпляры реализованного класса и добавлять его в контейнеры компонентов.

Пример кода:

Написать комментарий

Мало букафф? Читайте есчо !

Как в Kotlin отключить upper case у компонента Button

Март 20, 2023 г.

Компонент Button использует material дизайн и имеет некоторые предопределенные стили, которые иногда хочется изменить. Мне чаще всего требуется убрать UPPERCASE с текста кнопки. На старте шаблон компонента выглядит вот так: [crayon-673f02a5aa7b9461895605/] ...

Читать

Как получить строку из R.string по имени

Ноябрь 30, 2022 г.

В общем случае, когда вы находитесь в контексте Activity, это выглядит так: [crayon-673f02a5aa9c3625137445/] При этом вызов getResources() в этом контексте и необязателен, т.е. работает и так: [crayon-673f02a5aa9cc323786595/] Если вы находитесь ...

Читать

 

Комментарии к «Конструирование визуальных компонентов в kotlin»

Понравилась статья? Есть вопросы? - пишите в комментариях.



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