2015-11-16 2 views
0

Предположим, что у нас есть RecyclerView со 100 строками. Каждая строка содержит Spinner со значениями от 1 до 5 (по умолчанию 1).Понимание RecyclerView

я прокрутите вниз к пункту строка # 100, изменить это значение до 5, а затем прокрутить обратно к строке # 1, Мои вопросы:

Когда я прокрутите вниз снова к строке # 100, буду я вижу Spinner со значением 5, которое я выбрал ранее? или значение по умолчанию 1, поскольку RecyclerView будет перерабатывать элементы для повторного использования (повышение производительности) и не содержать все 100 строк в памяти.

Хотел бы получить хорошее объяснение того, как это работает.

ответ

1

Как вы сказали, RecyclerView не будет содержать 100 строк в памяти, следовательно, имя Recycler View. Сколько просмотров одного и того же макета, который будет удерживать RecyclerView, зависит от того, сколько из них поместится на экране.

Когда вы меняете значение № 100 на 5, вы изменяете одно из переработанных видов. Теперь, пока вы не измените это значение ViewHolder (обычно это делается в onBindViewHolder()), вид будет оставаться неизменным, что означает, что у этого конкретного ViewHolder по-прежнему будет 5 значение Spinner; в любом месте вы находитесь в списке, не обязательно, если вы прокрутите вниз до пункта на # 100, вы увидите один элемент с Spinner значения 5.

0

пояснит, RecycleView это как раз то, View. Итак, если вы прокрутите до # 100 и установите spinner в 5, вам нужно сохранить свой выбор в базовый массив данных. Таким образом, когда вы переходите на # 1 и обратно на # 100, когда onBindViewHolder() называется правильным значением, будет загружено, а счетчик в # 100 отобразится. 5. RecycleView только оптимизирует пользовательский интерфейс, как упоминал Ари.

Смежные вопросы