Ответ 1
Интересно, что RecyclerView знает, зависит ли его размер (размеры ширины и высоты) от содержимого адаптера, чтобы избежать дорогостоящих операций макета. Если RecyclerView заранее знает, что его размер не зависит от содержимого адаптера, он пропустит проверку, должен ли его размер меняться каждый раз, когда элемент добавляется или удаляется из адаптера. Это особенно важно, поскольку вставка элементов удаления может происходить очень часто.
Если размер RecyclerView (самого RecyclerView)...
... не зависит от содержимого адаптера:
mRecyclerView.setHasFixedSize(true);
... зависит от от содержимого адаптера:
mRecyclerView.setHasFixedSize(false);
Если вы проверите класс RecyclerView, вы увидите его более подробно, потому что на данный момент mHasFixedSize не используется во многих местах в этом классе.
Установка его как истина не означает, что размер RecyclerView фиксирован, просто означает, что он не изменится из-за изменения содержимого адаптера. Например, размер RecyclerView может измениться из-за изменения размера его родителя.