[Android][Application]RecycleView浅析

本文介绍了Android的RecyclerView组件,它是一个强大的滑动视图,具备item回收功能。与ListView相比,RecyclerView提供更灵活的布局管理器,如LinearLayoutManager、GridLayoutManager和StaggeredGridLayoutManager,支持垂直、水平列表和瀑布流布局。适配器(Adapter)是实现数据绑定的关键,包含onCreateViewHolder、onBindViewHolder和getItemCount等方法。此外,自定义布局管理器可用于控制RecycleView的滑动效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

资料

Android 控件 RecyclerView

概述

RecyclerView 是一个强大的滑动组件,与经典的ListView 相比,同样拥有item 回收复用的功能,这一点从它的名字RecyclerView 即回收View 也可以看出。
RecycleView 最开始定义在support-v4 包里,后来合并到support-v7 包里,但是support-v7 包最后一个版本是version 28(android Pie),如果compileSdkVersion 比28更高的就请用androidx libraries,它是Google 替代support 包的方案。

基本用法

recyclerView = (RecyclerView) findViewById(R.id.recyclerView);  
LinearLayoutManager layoutManager = new LinearLayoutManager(this );  
//设置布局管理器  
recyclerView.setLayoutManager(layoutManager);  
//设置为垂直布局,这也是默认的  
layoutManager.setOrientation(OrientationHelper. VERTICAL);  
//设置Adapter  
recyclerView.setAdapter(recycleAdapter);  
 //设置分隔线  
recyclerView.addItemDecoration( new DividerGridItemDecoration(this ));  
//设置增加或删除条目的动画  
recyclerView.setItemAnimator( new DefaultItemAnimator()); 

adapter适配器

编码流程:

  1. 创建ViewHolder;
  2. 创建RecycleView.Adapter;
  3. 实现RecycleView.Adapter 的三个抽象方法;

RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
这个方法的作用是创建Item 的View ,并将View全部都封装到ViewHolder 里面,然后返回ViewHolder。
注意这边View的创建需要用如下方式:

View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_1, parent, false);

这边的viewType 可以配合重写的int getItemViewType(int position) 方法,通过重写getItemViewType 返回指定的值用于加载不同的样式的Item 加载到RecycleView 中去。

void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position)
这个方法的作用是给封装到ViewHolder里面的View,绑定数据。

int getItemCount()
这个方法的作用是确定有多少条目。

Layout Manager 布局管理器

这个的作用就是控制RecycyleView 最终展示出多样的布局方式,比如垂直布局,水平布局,网格布局和其他自定义布局。
Layout Manager不止负责RecycleView 的布局,还负责Item 的获取和回收。
RecycleView 提供了三种布局管理器:

  1. LinerLayoutManager 以垂直或者水平列表方式展示Item;
  2. GridLayoutManager 以网格方式展示Item;
  3. StaggeredGridLayoutManager 以瀑布流方式展示Item;

控制RecycleView的滑动效果是自定义Layout Manager而不是RecycleView。
Layout Manager可以自定义的方法有:

	canScrollHorizontally();//能否横向滚动
    canScrollVertically();//能否纵向滚动
    scrollToPosition(int position);//滚动到指定位置

    setOrientation(int orientation);//设置滚动的方向
    getOrientation();//获取滚动方向

    findViewByPosition(int position);//获取指定位置的Item View
    findFirstCompletelyVisibleItemPosition();//获取第一个完全可见的Item位置
    findFirstVisibleItemPosition();//获取第一个可见Item的位置
    findLastCompletelyVisibleItemPosition();//获取最后一个完全可见的Item位置
    findLastVisibleItemPosition();//获取最后一个可见Item的位置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值