ps:目前我没发现简书在哪里引用代码,所以排版不太清楚。觉得不清楚的请看我的CSDN博客我的博客
添加recyclerview的依赖,目前更新到了android.x下
implementation 'androidx.recyclerview:recyclerview:1.1.0'
(一)、创建一个activity,在其xml布局文件中添加recyclerview标记,如图:
(二)、主页面进行逻辑设置,如图:
解释:
1.拿到控件
2,来一个线性的layoutmanager(可以设置他的方向)
3,赋给recyclerview——layoutmanager)
4.,给recyclerview来一个适配器
// 拿到控件
mynote_recycler_list = findViewById(R.id.mynote_recycler_list);
// 来一个线性的layoutmanager
LinearLayoutManager manager = new LinearLayoutManager(this);
// 通过setOrientation可以设置她的方向,这里我们不设
// manager.setOrientation(LinearLayoutManager.HORIZONTAL);
// 给recyclerview赋予layoutmanager
mynote_recycler_list.setLayoutManager(manager);
// 给recyclermanager设置适配器
// mynote_recycler_list.setAdapter();
(三)、来设置适配器
1、建一个类,继承recyclerview.adapter
2、写出基本的三个方法
3、给该类来一个泛型(我们自己写的,继承recyclerview.viewholder)
4、oncreateviewholder方法中返回我们写的holder,其中需要一个上下文,我们声明一下,来一个构造函数。
5、我们写的holder中可以通过itemview来获取我们条目的控件
6、在onbindviewholder方法中,我们可以进行条目控件的操作
7、因为recyclerview没有条目点击事件,我们可以通过我们的holder的itemview来注册一个监听事件进行相应操作,长按点击同理
public void onBindViewHolder(@NonNull ListViewAdapter.MyHolder holder, int position) {
holder.text_list_item.setText("这是第"+(position+1)+"条数据");
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(mcontext,"这是第"+(position+1)+"条数据",Toast.LENGTH_SHORT).show();
}
});
}
8、getitemcount,该方法中定义条目数,我们暂且给死,来看看效果。
9、在主文件内设置好适配器
10、执行,效果如下
与listview大同小异,只需修改layoutmanager即可
该句要两个参数,第一个即上下文,第二个则是每行要显示的个数。
为了相对而言较好的效果,我稍微改一下item。
运行看一下效果:
ps:recyclerview没有自带分割线,我们可以通过条目文件来实现,也可以通过java代码实现。