onCreateViewHolder вызывается много раз, когда я использую wrap_content или match_parent в recyclerView. - PullRequest
0 голосов
/ 23 апреля 2019

Я использую LinearLayoutManager и wrap_content в RecyclerView, но я установил его родительский на 100dp, я могу видеть только три элемента на экране, я думал, что onCreateViewHolder будет вызываться три раза, но он вызывался более 20 раз, я обнаружил, чтоRecyclerView вызывает Memeasure 4 раза, высоты составляют 2640, 400, 2640 и 400 соответственно.Всякий раз, когда он вызывает onMeasure, эта высота используется LinearLayoutManager для вычисления количества элементов, которые он может содержать, поэтому OnCreateViewHolder вызывался много раз, когда высота равна 2640. Разве Recyclerview не может использовать wrap_content или match_parent в родительском элементе определенной высоты?

<FrameLayout
        android:layout_width="match_parent"
        android:layout_height="100dp">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/rv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

</FrameLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...