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

OSCHINA-MIRROR/mirrors-Linkage-RecyclerView

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

Настоящее сокровище: сохраните эту библиотеку, даже если вы не используете Eleme!

Происхождение

Linkage-RecyclerView — это вторичный список элементов управления, разработанный на основе архитектуры MVP (с использованием принципа инверсии зависимостей). Он был создан для проекта «RxJava Magicians» (https://github.com/KunMinX/RxJava2-Operators-Sample).

Сначала я искал подходящую библиотеку с открытым исходным кодом на GitHub, но не нашёл ничего подходящего. Поэтому я решил создать свою собственную библиотеку, которая будет легко настраиваться, иметь высокую степень развязки и может быть получена через удалённый репозиторий Maven.

Конфигурацию Linkage-RecyclerView очень просто настроить благодаря особенностям архитектуры MVP. Пользователю не нужно изучать внутреннюю логику, достаточно реализовать класс Config, чтобы настроить и расширить функциональность.

Кроме того, Linkage-RecyclerView требует всего одну строку кода для запуска без пользовательской конфигурации.

RxJava Magician Eleme Linear Eleme Grid
7.gif 2.gif 3.gif

 

Цель

Цель Linkage-RecyclerView состоит в том, чтобы одна строка кода могла подключить вторичный список.

Помимо исключения 99% ненужной сложной повторяющейся работы, вы также можете получить из этого проекта контент, включающий:

  1. Чистый код и стандартные соглашения об именах ресурсов.
  2. Лучшая практика использования архитектуры MVP при написании сторонних библиотек: пользователю не нужно знать внутреннюю логику, он может легко настроить её.
  3. Отличная идея разделения кода на слои и инкапсуляции, одна строка кода может подключить его без какой-либо индивидуальной настройки.
  4. Основная разработка основана на передовых компонентах Jetpack.
  5. Полное использование AndroidX и Material Design 2.
  6. Лучшие практики ConstraintLayout для ограничения макета.
  7. Не используется Dagger, не используются сложные и запутанные методы кодирования.

Если вы думаете о том, как выбрать подходящую архитектуру для вашего проекта, этот проект стоит рассмотреть!

 

Простое использование:

  1. Добавьте зависимость в build.gradle.
implementation 'com.kunminx.linkage:linkage-recyclerview:2.7.0'

Примечание: эта библиотека размещена в Maven Central, пожалуйста, добавьте mavenCentral() в корневой каталог build.gradle самостоятельно.

  1. Подготовьте данные на основе структуры группы по умолчанию DefaultGroupedItem. Здесь мы используем JSON в качестве примера:
// DefaultGroupedItem.ItemInfo содержит три поля:
String title //(обязательно) заголовок вторичного варианта
String group //(обязательно) имя группы вторичного варианта, должно совпадать с заголовком соответствующего основного варианта
String content //(необязательно) содержание вторичного варианта
[
  {
    "header": "скидка",
    "isHeader": true
  },
  {
    "isHeader": false,
    "info": {
      "content": "вкусная еда, средство для набора веса, всегда в наличии",
      "group": "скидка",
      "title": "семейное ведро"
    }
  },
  {
    "header": "горячие продажи",
    "isHeader": true
  },
  {
    "isHeader": false,
    "info": {
      "content": "бестселлер, продано более 999 штук в месяц",
      "group": "горячие продажи",
      "title": "жареные куриные крылышки"
    }
  }
]
  1. Включите LinkageRecyclerView в макет.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <com.kunminx.linkage.LinkageRecyclerView
        android:id="@+id/linkage"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</LinearLayout>
  1. После получения данных инициализация выполняется с помощью одной строки кода.
linkage.init(items);

 

Советы:

  1. В реальной разработке данные проекта или данные, связанные с этой библиотекой, могут отличаться по структуре. Обычно делается так: данные извлекаются и анализируются с сервера, а затем экземпляры объектов этой библиотеки добавляются в список. Это позволяет использовать данные списка в этой библиотеке. (См. CustomJsonSampleFragment для конкретного примера.)

  2. Обратите внимание: если сервер напрямую использует объекты этой библиотеки для чтения и записи данных JSON, вам необходимо настроить правила ProGuard для этих объектов:

-keep class com.kunminx.linkage.bean.** {*;}

 

Больше

Дополнительные сведения о настройке см. в Wiki Analysis

 

Спасибо

material-components-android

AndroidX

 

Мои страницы

Электронная почта: kunminx@gmail.com

Juejin: KunMinX на Juejin

 

Лицензия

Copyright 2018-present KunMinX

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

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

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

Введение

Linkage-RecyclerView — это компонент вторичного связного списка, разработанный на основе архитектуры MVP. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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