3

Я успешно выполнил учебник по RecyclerViewhere.android: Recyclerview for Fragments?

но мне было интересно, может ли я построить более сложное поведение, используя Fragments внутри RecyclerView вместо обычного старого Views.

Использование фрагментов может помочь сделать многоразовый элемент со сложным поведением, который может быть размещен в других местах и ​​может быть намного более гибким.

Возможно ли и если да, то как?

+0

нравится просмотрщик делает? – Blackbelt

+0

«Использование фрагментов может помочь сделать многоразовый элемент со сложным поведением, который может быть размещен в других местах и ​​может быть намного более гибким». «Просмотр» может достичь этого лучше. Прочитайте [Продвижение против фрагментов Android] (https://corner.squareup.com/2014/10/advocating-against-android-fragments.html). – nhaarman

+0

@Blackbelt да, подобный. – user47376

ответ

2

RecyclerView предназначен для просмотра, который многократно повторяется с разными данными, он предназначен для использования в списках с длинными списками, поскольку надувание (построение) объекта View требует некоторого труда, поэтому переработка занимает вид, который вы просто прокручивали сверху экран, быстро заполняет его новыми данными и помещает его внизу.

Я бы не подумал, что использование этого фрагмента будет работать хорошо, всякий раз, когда вы прокручиваете список, его нужно будет воссоздать и запустить различные методы настройки, которые будут довольно дорогими. И если вы сделаете так, чтобы это не нужно было делать (setRetainInstance()), вы не получаете от него ничего, что вы не получили бы из представления.

Если это то, что вы получаете, тогда да, вы можете создать фрагмент, настроить его, пометить его как сохраненный и сохранить ссылку на него, чтобы он зависал в памяти, чтобы вы могли снова подключиться к другому родителю в другое время. Но если вам нужно изменить его содержимое и перестроить его, вы не наберете много.