我正在使用RecyclerView,它调用了所有数据项,这些数据项甚至未被用户看到。那么我如何才能只加载用户看到的项目,或者在滚动时加载
XML:
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/post_ImagesRecyclerView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="5dp"
android:background="@color/grey_bg"
android:nestedScrollingEnabled="false"/>
Java:
postAdapter = new PostAdapter(context, false, false, postList, this, 1, loadType);
LinearLayoutManager postListManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
post.setLayoutManager(postListManager);
post.setAdapter(postAdapter);
答案 0 :(得分:1)
如官方文档中所述,
列表中的视图由视图持有者对象表示。这些对象是您通过扩展RecyclerView.ViewHolder定义的类的实例。每个视图持有者负责显示一个视图的单个项目。例如,如果您的列表显示音乐收藏,则每个视图持有者可能代表一个专辑。 RecyclerView仅创建显示动态内容的屏幕部分所需的视点支架,外加一些视点支架。当用户滚动浏览列表时,RecyclerView会获取屏幕外的视图并将其重新绑定到正在滚动到屏幕上的数据。
因此,如果您使用RecyclerView,则不必担心此问题