教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

Android 推荐几款好用的开源作品(二)之万能RecyclerView适配器

来源:网络收集 时间:2026-09-10
导读: Android 推荐几款好用的开源作品(二) 之万能RecyclerView适配器 前言:RecyclerView出现已经有一段时间了,我们肯定不陌生了,可以通过导入support-v7对其进行使用。 根据官方的文档,该控件用于在有限的窗口中展示大量数据集,其实有了它就可以替代ListVi

Android 推荐几款好用的开源作品(二)

之万能RecyclerView适配器

前言:RecyclerView出现已经有一段时间了,我们肯定不陌生了,可以通过导入support-v7对其进行使用。

根据官方的文档,该控件用于在有限的窗口中展示大量数据集,其实有了它就可以替代ListView、GridView了。

了解RecyclerView架构,可以高度的解耦,异常的灵活,通过设置它提供的不同LayoutManager,ItemDecoration , ItemAnimator可以实现的想要的效果。 1、首先介绍几种LayoutManager

[java] view plain copy 在CODE上查看代码片派生到我的代码片

LinearLayoutManager mManager = new LinearLayoutManager(mContent); LinearLayoutManager mManager = new LinearLayoutManager(mContent, LinearLayoutManager.VERTICAL, false);//垂直布局,true表示左右翻转,false不翻转 GridLayoutManager mManager = new GridLayoutManager(mContent,3); GridLayoutManager mManager = new GridLayoutManager(mContent,3,LinearLayoutManager.HORIZONTAL,false);//每行3列,水平,true表示左右翻转,false不翻转

mRecyclerView.setLayoutManager(mManager);

2、RecycleView简单使用

[java] view plain copy 在CODE上查看代码片派生到我的代码片 //初始化控件

mRecyclerView = findView(R.id.id_recyclerview); //设置布局管理器

mManager = new LinearLayoutManager(mContent); mRecyclerView.setLayoutManager(mManager); //设置adapter

mRecyclerView.setAdapter(mAdapter) //设置Item增加、移除动画

mRecyclerView.setItemAnimator(new DefaultItemAnimator()); //添加分割线

mRecyclerView.addItemDecoration(new DividerItemDecoration(

getActivity(), DividerItemDecoration.HORIZONTAL_LIST)); 3、接下来介绍的就是RecyclerView的适配器了,同样,RecyclerView和ListView,GridView一样需要adapter来填充数据,同样,自定义一个adapter需要继承RecyclerView.Adapter,代码需要实现几个父类方法onCreateViewHolder,onBindViewHolder,getItemCount(),根据名字就能知道:

(1)onCreateViewHolder:主要返回的是拿到布局,进而返回ViewHolder return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.list_cell,null));

(2)onBindViewHolder:拿到ViewHolder中的控件对其赋值操作 (3)getItemCount():返回数组的size()

[java] view plain copy 在CODE上查看代码片派生到我的代码片 public class MyAdapter extends RecyclerView.Adapter {

class ViewHolder extends RecyclerView.ViewHolder {

TextView tvTitle,tvContent;

public ViewHolder(View itemView) { super(itemView);

tvTitle = (TextView) itemView.findViewById(R.id.tv_title);

tvContent = (TextView) itemView.findViewById(R.id.tv_content); }

}

@Override

public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.list_cell,null)); }

@Override

public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { ViewHolder vh = (ViewHolder) holder; CellData cd = data[position]; vh.tvTitle.setText(cd.title);

vh.tvContent.setText(cd.content); }

@Override

public int getItemCount() { return data.length; }

private CellData[] data = new CellData[]{new CellData(\学习recycleview\CellData(\天气\今天天气不错\CellData(\学习recycleview\CellData(\天气\今天天气不错\CellData(\学习recycleview\CellData(\天气\今天天气不错\CellData(\学习recycleview\CellData(\天气\今天天气不错\CellData(\学习recycleview\CellData(\天气\今天天气不错\CellData(\学习recycleview\CellData(\天气\今天天气不错\CellData(\学习recycleview\CellData(\天气\今天天气不错\CellData(\学习

recycleview\CellData(\天气\今天天气不错\recycleview\CellData(\天气\今天天气不错\recycleview\CellData(\天气\今天天气不错\recycleview\CellData(\天气\今天天气不错\recycleview\CellData(\天气\今天天气不错\recycleview\CellData(\天气\今天天气不错\recycleview\CellData(\天气\今天天气不错\recycleview\CellData(\天气\今天天气不错\recycleview\CellData(\天气\今天天气不错\recycleview\CellData(\天气\今天天气不错\recycleview\CellData(\天气\今天天气不错\recycleview\CellData(\天气\今天天气不错\recycleview\CellData(\天气\今天天气不错\recycleview\CellData(\天气\今天天气不错\recycleview\CellData(\天气\今天天气不错\recycleview\CellData(\天气\今天天气不错\recycleview\CellData(\天气\今天天气不错\recycleview\CellData(\天气\今天天气不错\recycleview\CellData(\天气\今天天气不错\recycleview\天气\今天天气不错\ }

4、效果图,虽然很难看,但是是基本的实现方式。

CellData(\学习CellData(\学习CellData(\学习CellData(\学习CellData(\学习CellData(\学习CellData(\学习CellData(\学习CellData(\学习CellData(\学习CellData(\学习CellData(\学习CellData(\学习CellData(\学习CellData(\学习CellData(\学习CellData(\学习CellData(\学习CellData(\学习

可见,RecyclerView和传统的ListView,GridView使用的流程是一样的,但是由于RecyclerView的高定制性,使用者越来越多,已经有大部分的开发者放弃使用ListView和GridView了。想要用好RecyclerView也不难,关键就在于Adapter的书写上,接下来介绍一个非常好用的RecyclerView万能适配器(BaseRecyclerViewAdapterHelper),前几天接触到的,感觉十分好用,所包含的功能有以下几个(官网介绍): 优化Adapter代码(减少百分之70%代码)

添加点击item点击、长按事件、以及item子控件的点击事件 添加加载动画(一行代码轻松切换5种默认动画)

添加头部、尾部、下拉刷新、上拉加载(感觉又回到ListView时代) 设置自定义的加载更多布局 添加分组(随心定义分组头部)

自定义不同的item类型(简单配置、无需重写额外方法) 设置空布局(比Listview的setEmptyView还要好用!) 添加拖拽item

1、添加item点击、长按事件

[java] view plain copy 在CODE上查看代码片派生到我的代码片 mQuickAdapter.setOnRecyclerViewItemClickListener();

mQuickAdapter.setOnRecyclerViewItemLongClickListener(); 2、新增添加子布局多个控件的点击事件 Adapter

[java] view plain copy 在CODE上查看代码片派生到我 …… 此处隐藏:3816字,全部文档内容请下载后查看。喜欢就下载吧 ……

Android 推荐几款好用的开源作品(二)之万能RecyclerView适配器.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/604827.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)