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

OSCHINA-MIRROR/xuyougen-fast-adapter

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

FastAdapter

Введение

RecyclerView Adapter — часто используемые функции (нажатие на элемент, привязка данных, Header, Footer, анимация и т. д.) в одной упаковке.

Скриншот

FastAdapter

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

        FastAdapter<String> adapter = new FastAdapter<String>(this, R.layout.item_normal, NAMES) {
        
            @Override
            protected ViewHolder onCreateViewHolderImpl(@NonNull ViewGroup parent, int viewType) {
                if (Math.random() > 0.5) {
                    TextView textView = new TextView(parent.getContext());
                    textView.setId(R.id.title);
                    textView.setTextSize(40f);
                    // Возвращаем пользовательский Holder
                    return new ViewHolder(textView);
                }
                // Возвращаем созданный по умолчанию Holder (необходимо установить default layoutRes)
                return super.onCreateViewHolderImpl(parent, viewType);
            }
        
            // Обработка пользовательского itemType
            @Override
            protected int getItemViewTypeImpl(int position, int dataPosition) {
                return super.getItemViewTypeImpl(position, dataPosition);
            }

            @Override
            public void bindData(ViewHolder holder, String s) {
                // Привязываем стиль данных
                holder.setTextColorRes(R.id.title, R.color.design_default_color_primary_dark);
                holder.setText(R.id.title, s);
            }
        };
        // Нажатие на список
        adapter.setOnItemClickListener((view, holder, data) -> {
            Toast.makeText(this, data, Toast.LENGTH_SHORT).show();
        });
        // Обработка события нажатия на дочерний элемент списка
        adapter.setOnItemChildClickListener(R.id.trigger, (view, holder, data) -> {
            Toast.makeText(this, "trigger -> " + data, Toast.LENGTH_SHORT).show();
        });
        // Устанавливаем анимацию, можно реализовать ItemAnimator интерфейс, once = true означает, что анимация выполняется только один раз
        adapter.setItemAnimator(new AlphaItemAnimator(), false);
        // Устанавливаем пользовательский SpanSizeLookup
        adapter.setSpanSizeLookup(new SpanSizeLookup<String>() {
            @Override
            public int getSpanSize(int itemViewType, int spanCount, int position, @Nullable String s) {
                // Сразу возвращаем spanCount, чтобы эта позиция занимала целую строку
                if ("Sofia".equals(s)) return spanCount;
                return super.getSpanSize(itemViewType, spanCount, position, s);
            }
        });
        // Добавляем Header
        adapter.addHeaderView(makeATextView());
        // Добавляем Footer
        adapter.addFooterView(makeATextView());

        recyclerView.setLayoutManager(new GridLayoutManager(this, 3));
        recyclerView.setAdapter(adapter);

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

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

Введение

Адаптер RecyclerView: упаковка часто используемых функций (события кликов, привязка данных, Header, Footer, анимация и т. д.). Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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