1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/angcyo-DslAdapter

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

DSLAdapter

Kotlin эпоха адаптера.

DSL в форме использует RecyclerView.Adapter, поддерживает переключение состояния эмоциональных изображений, загрузку дополнительных данных, различные типы Item и т. д.

Адрес репозитория Gitee

Адрес документации

Назначение:

Только одна цель — эффективная разработка, всё ради эффективности.

Возможно, раньше при написании интерфейса вы были озабочены наследованием какого-то XXActivity или XXFragment, а также использованием XXLayout для макета.

С DSLAdapter всё становится миром RecyclerView.

Вы можете использовать DSLAdapter для простого и эффективного создания обычных интерфейсов, списков, прокручиваемых интерфейсов и так далее.

Примечание: простое и эффективное создание, простое и эффективное создание, простое и эффективное создание.

//Создание обычного интерфейса
dslAdapter.render {
    this + обычный1Item()
    this + обычный2Item()
    this + обычный3Item()
    ...
    обычный нижний элемент()()
}

//Создание списка интерфейсов
dslAdapter.render {
    индикатор обновления()()
    верхний элемент()()
    элемент карусели()()
    список элементов()()
    список элементов()()
    список элементов()()
    ...
    нижний элемент()()
    дополнительный элемент загрузки()()
}

//Обычные и списковые интерфейсы похожи как две капли воды, не удивляйтесь, есть ещё более захватывающие вещи.

//и так далее

Вы не ошиблись, это так просто, так эффективно. Одно слово: ...круто, круто, круто...

Любой интерфейс состоит из нескольких одинаковых или разных элементов.

Что вам нужно сделать:

  1. Разделить интерфейс на несколько элементов.
  2. Реализовать соответствующий элемент, унаследовав DslAdapterItem.

Очарование безгранично, с нетерпением жду вашего выступления.

Особенности

  1. Самый лёгкий в мире способ реализации многотипных элементов (нужно заботиться только о макете и логике).
  2. Поддержка переключения состояний эмоциональных изображений (пустой макет, загрузка, ошибка, исключение и т.д.), идеальная поддержка пользовательских расширений (также является элементом).
  3. Идеальная поддержка дополнительных функций загрузки.
  4. Поддержка свёртывания групп (аналогично группам друзей в QQ, эффект раскрытия и сворачивания).
  5. Поддержка зависания элементов (аналогично группам друзей в QQ, эффект зависания).
  6. Поддержка обычных разделительных линий (иногда занимает весь экран, иногда имеет немного полей).
  7. Поддержка одиночного/множественного выбора (поддержка фиксированных опций).
  8. Поддержка обновления одного элемента при изменении другого элемента (полезно в интерфейсах редактирования форм).
  9. Поддержка групповых функций (указание последовательных нескольких одинаковых/разных элементов как группы).
  10. Поддержка перетаскивания (перетаскивание пальцем, можно выбрать элементы в диапазоне).
  11. Поддержка сортировки перетаскиванием и удаления боковым скольжением (обратите внимание, что это не боковое меню).
  12. Поддержка древовидной структуры (аналогичной файловому списку в идее, поддержка асинхронной загрузки).
  13. Поддержка боковых скользящих меню (после версии 2.4.0).
  14. Поддержка DataBinding (после версии 3.0.0).
  15. Поддержка ViewBinding (см. пример).
  16. Поддержка анимации элементов (после версии 4.3.0).
  17. Поддержка добавления DslAdapterItem в любой ViewGroup (после версии 5.1.0).
  18. Поддержка привязки логики привязки элемента DslAdapterItem к любому представлению (после версии 5.1.0).
  19. Добавление IDslItem и поддержка автоматической инициализации (после версии 6.0.0, minApi>=14).

Демонстрация функций

Переключение эмоциональных изображений Загрузка дополнительных данных
Переключение эмоциональных изображений Загрузка дополнительных данных
Сворачивание и раскрытие Групповые функции
Сворачивание и раскрытие Групповые функции
Одиночный выбор Множественный выбор
Одиночный выбор Множественный выбор
Перетаскивание Сортировка перетаскиванием
Перетаскивание Сортировка перетаскиванием Текст запроса переведён на русский язык:

Практические примеры

Много типов, многоразовые и встраиваемые элементы Item Поддерживает логическую связь между элементами Item сверху и снизу:
!Элементы Item можно встраивать многократно и использовать повторно! Поддерживается логическая связь между элементами Item сверху и снизу!
Интерфейс обмена мгновенными сообщениями также может отлично справиться с задачей Можно динамически управлять интерфейсом формы элементов Item:
Интерфейс обмена мгновенными сообщениями тоже может отлично справиться! Можно динамически управлять интерфейсом форм элементов Item!

Вопросы

Как реализовать последний элемент Item, чтобы он заполнил оставшееся пространство в нижней части RecycleView (если оно есть)?

Необходимо настроить ViewGroup и в методе onLayout вычислить оставшееся пространство RecycleView и присвоить его LayoutParams.

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

В корневом каталоге build.gradle:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

В каталоге приложения build.gradle:

dependencies {
    //androidx (рекомендуется)
    implementation 'com.github.angcyo:DslAdapter:6.0.3'
    //поддержка DataBinding
    implementation 'com.github.angcyo:DslAdapter:3.0.0-binding'

    //версия support (рекомендуется использовать)
    implementation 'com.github.angcyo:DslAdapter:1.2.0'
    //последняя версия от автора
    implementation 'com.github.angcyo:DslAdapter:master-SNAPSHOT'
}

Вы можете найти опубликованные версии здесь. Нажмите, чтобы посмотреть.

Применение функций

Пожалуйста, посетите WIKI-документацию, чтобы узнать подробности.

Журнал изменений

Нажмите, чтобы просмотреть.

DslItem

Библиотека DslItem, которая находится в процессе разработки, включает в себя все типы элементов Item, которые можно увидеть в проекте, и предназначена для повышения эффективности разработки. Мы приветствуем PR.

Скачать и попробовать

Установите с помощью сканирования QR-кода: |---|---| Установка с помощью сканирования QR-кода|

Лицензия

FOSSA Status


Группа имеет «все виды» больших боссов, ждём вас.

Связаться с автором

Нажми, чтобы начать диалог в QQ пробел Нажми сюда, чтобы быстро присоединиться к группе

Открытый исходный код

|---|---| Присоединяйтесь к группе через сканирование QR-кода|Поощрение

Тенденции

angcyo/DslAdapter

👏 Спасибо

angcyo/DslAdapter

Статистика посещений

Loading

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Адаптер эпохи Kotlin, используется в форме Dsl для RecyclerView.Adapter, поддерживает переключение состояний эмодзи-смайлов, загрузку дополнительных данных и различные типы элементов. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/angcyo-DslAdapter.git
git@api.gitlife.ru:oschina-mirror/angcyo-DslAdapter.git
oschina-mirror
angcyo-DslAdapter
angcyo-DslAdapter
master