Skip to content

Latest commit

 

History

History

lib-mvp-widget

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Главная страница репозитория

MVP widget

Расширение модуля core-mvp для работы со view (в терминах android фреймвока) как со View(в терминах MVP).

Виджет(Widget) - это кастомная вью со своим Presenter. Для них справедливы все те правила, что и для обычных кастомных вью.

Плюс к этому виджеты могут выручить в ситуации, когда экран перегружен фрагментами. Они вполне могут их заменить и при этом виджеты "легче", чем фрагменты.

Отличная презентация на тему

Основные классы:

  1. CoreFrameLayoutView
  2. CoreLinearLayoutView
  3. CoreRelativeLayoutView
  4. CoreConstraintLayoutView

Конфигураторы:

Подключение

Gradle:

    implementation "ru.surfstudio.android:mvp-widget:X.X.X"

Использование

Для создания виджета необходимо сделать шаги, аналогичные созданию экрана:

  1. Наследоваться от одного из базовых виджетов
  2. Убедиться в уникальности идентификатора виджета:
    1. Если виджет используется внутри верстки, необходимо явно задать ему android:id в XML
    2. Если виджет добавляется динамически, необходимо либо явно задать id программно, либо переопределить метод getWidgetId
    3. При добавлении виджета в RecyclerView строго рекомендуется переопределить метод getWidgetId на основе уникальных данных, получаемых внутри метода ViewHolder.bind.
  3. Расширить базовый презентер
  4. Расширить BaseWidgetConfigurator
  5. Опционально: создать ScreenModel, и реализовать один из базовых интерфейсов