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添加我们的适配器,完成。 如果想实现横向滚动,那也很简单。就是添加一句代码: 让后把布局文件设置为垂直就可以了。
|