用RecyclerView实现滚动页面显示

RecyclerView是Android中用于高效显示大量数据的滚动列表,它比ListView更灵活,支持多种布局如线性、网格和瀑布流。RecyclerView的核心组件包括LayoutManager、ViewHolder和Adapter。通过LayoutManager定制布局,ViewHolder缓存视图提高性能,Adapter负责数据绑定。RecyclerView的优势在于保持滚动位置、易于定制动画和分割线。在实际应用中,可以通过创建布局文件、定义数据对象、实现适配器并添加到RecyclerView中完成基本设置。
摘要由CSDN通过智能技术生成

RecyclerView:

在安卓开发者网站上,对于RecyclerView的使用说明是:

如果您的应用需要根据大型数据集(或频繁更改的数据)显示元素的滚动列表,您应使用本页所述的 RecyclerView。

从表面上看,RecyclerView的作用和ListView类似,都是用来显示大量元素的,将元素以滚动的形式显示,但是RecyclerView 比 ListView 更高级且更具灵活性。它是一个用于显示庞大数据集的容器,可通过保持有限数量的视图进行非常有效的滚动操作。 如果您有数据集合,其中的元素将因用户操作或网络事件而在运行时发生改变,请使用 RecyclerView 。

从它类名上看,RecyclerView代表的意义是,我只管Recycler View,也就是说RecyclerView只管回收与复用View,其他的你可以自己去设置。可以看出其高度的解耦,给予你充分的定制自由(所以你才可以轻松的通过这个控件实现ListView,GirdView,瀑布流等效果)。

在ListView中 改变列表某一个item数据,然后刷新列表,会回到最顶部,而RecyclerView可以保持原来滑动的位置不变。

当然,说到 RecyclerView 的优点,就不得不提它的 插拔式 的体验,高度解耦:

布局(显示方式):可通过LayoutManager(LinearLayoutManagerGridLayoutManager,StaggeredGridLayoutManager
)设置; 分割线:通过 ItemDecoration 实现 Item 增删动画:通过 ItemAnimator
ViewHolder 的创建和绑定:通过实现 Adapter

基础知识补充

LayoutManager:RecyclerView 会根据 Layout Manager
提供的视图来填充自身,常用的布局管理器有LinearLayoutManager(线性布局管理器)、GridLayoutManager(网格布局管理器)、StaggeredGridLayoutManager
(瀑布流布局管理器)等。
ViewHolder:列表中的视图由 ViewHolder 实例展示。 ViewHolder 用于对控件的实例进行缓存,负责显示子项。例如,如果列表显示了音乐集合,那么每个 ViewHolder 可能代表一个专辑。
Adapter:ViewHolder 对象由 Adapter 管理。Adapter 按需创建 ViewHolder,并为其绑定数据。绑定意味着根据 Adapter 中的位置为子视图填充对应的数据。

RecyclerView 的核心使用流程如下:

mRecyclerView = findView(R.id.id_recycler_view); //设置布局管理器
mRecyclerView.setLayoutManager(mLayoutManager); //设置adapter
mRecyclerView.setAdapter(mAdapter) //设置Item增加、移除动画
mRecyclerView.setItemAnimator(new DefaultItemAnimator()); //添加分割线
mRecyclerView.addItemDecoration(new DividerItemDecoration(
getActivity(), DividerItemDecoration.HORIZONTAL_LIST));

通过 RecyclerView 轻松实现一个普通列表:
首先创建一个recyclerview布局文件;


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:fitsSystemWindows="true"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/collect_recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

再创建一个用于在recyclerview中显示的项,recycleritems;


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="6dp"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/touxiangimg"
        android:layout_width="50dp"
        android:layout_height="50dp"
        tools:srcCompat="@drawable/tab_find_frd_pressed" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值