#android-studio #kotlin #android-recyclerview
Вопрос:
Я собираюсь использовать два типа представлений в recyclerview
.
Каждый элемент может быть добавлен или удален.
Вместо того, чтобы проверять тип представления с помощью одного адаптера, я знаю, что это a ConcatAdapter
, и пытаюсь его использовать.
Кстати, есть ли способ оформить заказ так, как я хочу при использовании ConcatAdapter
?
Как уже упоминалось, порядок не является согласованным, так как элементы могут быть добавлены и удалены между каждым элементом.
ConcatAdapter
В коде, который я нашел, удалось найти только способ перечислить элементы, A
а затем перечислить элементы B
.
бывший)
ААААА ББББББ
чего я хочу
АБАББАБББББББББА
Код, который я изучал…
val A_Items = ArrayListlt;RoutineModelgt;() A_Items.add(aModel("e","eqw","ewqe")) A_Items.add(aModel("e","eqw","ewqe")) A_Items.add(aModel("e","eqw","ewqe")) val B_Items = arrayListOflt;bModelgt;() B_Items.add(bModel()) B_Items.add(bModel()) B_Items.add(bModel()) B_Items.add(bModel()) A_adapter = AAdapter(A_Items) B_adapter = BAdapter(B_Items) concatAdapter = ConcatAdapter(A_adapter, B_adapter)
Комментарии:
1.
ConcatAdapter
не создан для этого, его единственная цель-последовательно комбинировать адаптеры. Здесь вы должны использовать типы представлений.2. Объединение (по крайней мере, в программировании) обычно означает добавление одной вещи в конец другой вещи — так что в этом случае все ваши вещи в адаптере A, а затем все B
3. Кажется, вам лучше попробовать другой подход, вместо этого перетасуйте элемент в
ConcatAdapter
(который не предназначен для обработки перетасовки)`, я думаю, вам следует перетасовать элемент в объекте списка4. Если вы хотите чередовать элементы, то no.
ConcatAdapter
в основном предназначен для размещения двух списков в одном и том жеRecyclerView
, один за другим. Похоже, вы хотите отобразить один список, содержащий два разных типа элементов, что означает, что один адаптер обрабатывает разные типы представлений, как вы и пытались избежать. Прости!5. ссылка, которую вы предоставляете, является расширяемым представлением переработчика, похоже, не имеет отношения к вашему делу. Я думаю, что вместо этого вы можете использовать один список, скорректировав свой список, если вы ожидаете его перетасовать