Расширение модуля 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, и реализовать один из базовых интерфейсов