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

OSCHINA-MIRROR/raoqian156-RV-Adapter

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

RecyclerView 万能适配器

1. Импорт зависимостей

  • В файле gradle.properties проекта:

    • android.useAndroidX = true;
    • android.enableJetifier = true.
  • В корневом каталоге build.gradle проекта:

  • В build.gradle проекта:

    • implementation 'com.gitee.raoqian156:RV-Adapter:v1.2.20'.
  • Скрытие кода:

    • -keep public class * extends com.rq.rvlibrary.BaseViewHolder { *;}.

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

Инициализация

  • Базовый способ использования (по умолчанию вертикальный макет):

    • mAdapter = new BaseAdapter(this, R.layout.item_example) {
      • @Override
      • protected void onBindEasyHolder(BaseAdapter adapter, BaseViewHolder holder, int position, Object o) {
        • holder.setItemText(R.id.txt, (String) o);
      • }
    • };
    • new RecyclerUtil(mAdapter).set2View(recyclerView);
    • List debug = new ArrayList<>();
    • debug.addAll(getDebugData());
    • mAdapter.setData(debug);
  • Переопределение ViewHolder ссылки:

    • mAdapter = new BaseAdapter(this, R.layout.item_example, ExampleViewHolder1.class);

    • // Когда ExampleViewHolder1 является внутренним классом, используйте следующий метод:

    • // mAdapter = new BaseAdapter(this, R.layout.item_example,ExampleViewHolder1.class,this);

    • new RecyclerUtil(mAdapter).set2View(recyclerView);

    • List debug = new ArrayList<>();

    • debug.addAll(getDebugData());

    • mAdapter.setData(debug);

    • public class ExampleViewHolder1 extends BaseViewHolder {

      • public ExampleViewHolder1(View itemView) {

        • super(itemView);
      • }

      • @Override

      • public int inflateLayoutId() {

        • return R.layout.item_example;
      • }

      • @Override

      • public void fillData(BaseAdapter adapter, int position, String o) {

        • setItemText(R.id.txt, o);
      • } *}

  • Дополнительный тип макета:

    • Этот режим макета может принимать различные списки данных.

    • Следуя приведенному ниже коду, создайте SparseArray для установки правил отображения данных (файл макета — это ключ), переопределите getMultipleHolderType, чтобы предоставить файл макета, и аналогичным образом измените onBindMultipleHolder, чтобы его приоритет был ниже, чем у ViewHolder#fillData:

      • SparseArray layList = new SparseArray();
      • layList.append(R.layout.item_example3, EasyViewHolder.class);
      • layList.append(R.layout.item_example, ExampleViewHolder1.class);
      • layList.append(R.layout.item_example2, ExampleViewHolder2.class);
      • mAdapter = new BaseAdapter(this, layList) {
        • @Override

        • protected int getMultipleHolderType(Object dataItem, int position) {

          • if (dataItem instanceof Integer) {
          • return R.layout.item_example3;
          • }
          • String data = (String) dataItem;
          • if (position < 4 && position >= 0) return R.layout.item_example3;
          • if (data.contains("1")) return R.layout.item_example2;
          • return R.layout.item_example;
        • }

        • @Override

        • protected void onBindMultipleHolder(BaseAdapter adapter, BaseViewHolder holder, int position, Object o) {

          • if (holder instanceof ExampleViewHolder2) {
          • if (o instanceof Integer) {
            • holder.setItemText(R.id.txt, "Holder2 数字:" + o);
          • } else {
            • holder.setItemText(R.id.txt, "Holder2:" + o); *}
          • } else if (position >= 0) if (o instanceof Integer) {
          • holder.setItemText(R.id.txt, "数字:" + o);
          • } else {
          • holder.setItemText(R.id.txt, (String) o);
          • } *} *}; *new RecyclerUtil(mAdapter).set2View(recyclerView); *List debug = new ArrayList<>(); *debug.add("1 $$$$"); *debug.add("2 $$$$"); *debug.add("3 3"); *debug.add("4 24"); *debug.add(18); *debug.add(19); *debug.add("5 51"); debug.add("13 3331678901"); debug.add("14 2678902"); debug.add("15 555555536789033"); debug.add("16 66664678904"); debug.add("17---"); debug.add("20"); *debug.add(21); *debug.add(22); *debug.add("23333333333"); *debug.add("244444"); *mAdapter.setData(debug);
  • Вложенный RecyclerView:

    • Способ 1: Наследование NestingViewHolder и завершение соответствующего переписывания, например:

      • public class DRVH extends NestingViewHolder {
      • public DRVH(View itemView) {
      •    super(itemView);
      • }

...

  • Дальнейший текст запроса не содержит полезной информации для перевода.

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

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

Введение

Универсальный адаптер для RecyclerView. Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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