Intereting Posts
Работает ли Android-приложение, если телефон выключен Является ли это Runnable безопасным от утечки памяти? Что такое Android UiThread (UI thread) Как узнать, какой вид внутри определенного элемента ListView был нажат Android Studio "не может разрешить символ" Тема " Как я могу выровнять изображение внутри ImageView в нижней части ImageView? Рефактор> Перемещение перекрывает местоположение другого проекта Android загружает изображение из галереи на сервер IR передает класс ConsumerIrManager после того, как Android 4.4 не работает React-Native ListView renderRow вызывает передачу реквизитов. Правильный путь или неправильный путь Поиск SQLite FTS4 со специальными символами Есть ли apktool на Android? Я хочу собрать «.smali» и создать новый «.apk» в приложении для Android Java vs Python HMAC-SHA256 Несоответствие Ссылка LoaderManager не найдена с уровнем API 17 Кэширование загруженных данных JSON в базу данных SQLite – это хорошая идея?

Установите диапазон для элементов в GridLayoutManager, используя SpanSizeLookup

Я хочу реализовать grid-подобный макет с заголовками разделов. Подумайте о https://github.com/TonicArtos/StickyGridHeaders

Что я делаю сейчас:

mRecyclerView = (RecyclerView) view.findViewById(R.id.grid); mLayoutManager = new GridLayoutManager(getActivity(), 2); mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { switch(mAdapter.getItemViewType(position)){ case MyAdapter.TYPE_HEADER: return 1; case MyAdapter.TYPE_ITEM: return 2; default: return -1; } } }); mRecyclerView.setLayoutManager(mLayoutManager); 

Теперь как обычные элементы, так и заголовки имеют размер диапазона 1. Как я могу это решить?

Solutions Collecting From Web of "Установите диапазон для элементов в GridLayoutManager, используя SpanSizeLookup"

Проблема заключалась в том, что заголовок должен иметь размер диапазона 2, а обычный элемент должен иметь размер диапазона 1. Таким образом, правильные реализации:

 mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { switch(mAdapter.getItemViewType(position)){ case MyAdapter.TYPE_HEADER: return 2; case MyAdapter.TYPE_ITEM: return 1; default: return -1; } } }); 

Заголовок должен иметь интервал, равный числу отсчетов по всему списку.

 mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { switch(mAdapter.getItemViewType(position)){ case MyAdapter.TYPE_HEADER: return mLayoutManager.getSpanCount(); case MyAdapter.TYPE_ITEM: return 1; default: return -1; } } }); 

Ответьте на мой вопрос: переопределите getSpanSizeLookup () из Activity после настройки адаптера.