Когда мы используем recyclerView.setHasFixedSize?

Вот что: кто-нибудь знает метод setHasFixedSize? Некоторые говорят, что он позволяет оптимизировать, если все элементы имеют одинаковый размер, а в классе RecyclerView – от android.support.v7.widget, он прокомментировал это: RecyclerView может выполнять несколько оптимизаций, если он может заранее знать, что изменения в содержимом адаптера Не может изменить размер самого RecyclerView. Если ваше использование RecyclerView относится к этой категории, установите для этого значение true.

Что это значит? Может ли кто-нибудь показать мне контекст использования или объяснить значение «эта категория» выше? большое спасибо.

Solutions Collecting From Web of "Когда мы используем recyclerView.setHasFixedSize?"

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

Если размер RecyclerView (самого RecyclerView) …

не зависит от содержимого адаптера:

 mRecyclerView.setHasFixedSize(true); 

зависит от содержимого адаптера:

 mRecyclerView.setHasFixedSize(false); 

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

Установка его как истина не означает, что размер RecyclerView фиксирован, просто означает, что он не изменится из-за изменения содержимого адаптера. Например, размер RecyclerView может измениться из-за изменения размера его родителя.

SetHasFixedSize () используется, чтобы RecyclerView сохранял тот же размер .

Эта информация будет использоваться для оптимизации .

Вот ссылка URL

http://antonioleiva.com/recyclerview/

Пример:

 RecyclerView recyclerView = (RecyclerView) findViewById(R.id.list); recyclerView.setHasFixedSize(true);