ListView的增强版RecyclerView

ListView由于其强大的功能,在过去的Android开发中可以说是贡献卓越,直达今天依然还有很多的程序在继续使用着ListView。但是ListViewd性能其实不是很好,而且扩展性差,它只能实现数据纵向滚动的效果,如果我们想实现横向滚动的话,ListView是做不到的。于是,Android提供了一个更强大的滚动控件——RecyclerView.可以说是一个增强版的ListView,不仅可以实现和ListView同样的效果,还优化了ListView中存在的各种不足之处。我们来看一下RecyclerView怎么使用。
1.由于RecyclerView是属于新增的控件,为了让RecyclerView在所在的Android版本都能够使用,Android团队采取了同样的方式,将RecyclerView定义在了support库中。所以要使用RecyclerView得先添加那个对应的依赖库才行。

implementation 'androidx.appcompat:appcompat:1.2.0''
    implementation 'androidx.recyclerview:recyclerview:1.1.0'
    testImplementation 'junit:junit:4.+'

添加完记得Sync Now来进行同步。
我们可以在xml文件输入RecyclerView看看有没有提示,
例如:<androidx.recyclerview.widget.RecyclerView
,出现了就意味着添加成功。
2.我们准备一个用来保存数据的类,并添加有参构造和get方法。
在这里插入图片描述
然后添加一个自定义适配器,让这个适配器继承自RecyoclerView.Adapter,并将泛型指定为这个自定义适配器的ViewHolder(ViewHolder是我们的一个内部类),代码如下:
在这里插入图片描述
内部类:在这里插入图片描述
然后要重写三个方法:onCreateViewHolder(),onBindViewHolder(),getItemCount()
如下:在这里插入图片描述看起来代码量也是挺多的,但是逻辑还是很清晰的,至此我们就可以实现跟list view的效果了。
我们简单的分析一下。
1.我们先定义了一个内部类,然后让内部类继承这个RecyclerView.ViewHolder.然后在内部类里面写一个构造函数,并传入一个View参数,这个参数就是RecyclerView子项的最外层布局,我们可以通过这个参数的findViewByid获取到控件的实例。
2.我们的自定义适配器有个list值用来获取数据源。
3.onCreateViewHolder方法用来把我们的布局加载进来,并返回一个viewholder实例。
4.onBindViewHolder用来对我们的每个RecycViw子项进行赋值。
5.getItemCount()是用来获取我们的数据源长度。
准备我们的适配器之后就可以使用了。
我们在MainActivity文件试试。
准备好list数据,实例化我们的RecyclerView控件。然后实例一个LinearLayoutManager的对象,把我们的RecyclerView控件放进LinearLayoutManager里面,然后在LinearLayoutManager添加我们的适配器,完成。
在这里插入图片描述
如果想实现横向滚动,那也很简单。就是添加一句代码:
在这里插入图片描述让后把布局文件设置为垂直就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值