MVP widget
May 26, 2020 · View on GitHub
MVP widget
Расширение модуля core-mvp для работы со view (в терминах android фреймвока) как со View(в терминах MVP).
Виджет(Widget) - это кастомная вью со своим Presenter. Для них справедливы все те правила, что и для обычных кастомных вью.
Плюс к этому виджеты могут выручить в ситуации, когда экран перегружен фрагментами. Они вполне могут их заменить и при этом виджеты "легче", чем фрагменты.
Основные классы:
Конфигураторы:
Подключение
Gradle:
implementation "ru.surfstudio.android:mvp-widget:X.X.X"
Использование
Для создания виджета необходимо сделать шаги, аналогичные созданию экрана:
- Наследоваться от одного из базовых виджетов
- Убедиться в уникальности идентификатора виджета:
- Если виджет используется внутри верстки, необходимо явно задать ему
android:idв XML - Если виджет добавляется динамически, необходимо либо явно задать
idпрограммно, либо переопределить методgetWidgetId - При добавлении виджета в
RecyclerViewстрого рекомендуется переопределить методgetWidgetIdна основе уникальных данных, получаемых внутри методаViewHolder.bind.
- Если виджет используется внутри верстки, необходимо явно задать ему
- Расширить базовый презентер
- Расширить
BaseWidgetConfigurator - Опционально: создать ScreenModel, и реализовать один из базовых интерфейсов