首先需要知道一共有4个文件:fragment类,adapter,fragment的布局文件,adapter中的item的布局文件
1,首先声明一个控件:RecyclerView
2,然后声明一个adapter类
3,在initView()上
//给RecyclerView控件设置一个布局
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
//声明一个adapter
recyclerAdapter= new RecyclerAdapter();
//给RecyclerView控件设置一个adapter
recyclerView.setAdapter(recyclerAdapter);
//给RecyclerView控件设置样式
recyclerView.addItemDecoration(new RecyclerView.ItemDecoration() {
@Override
public void getItemOffsets(@NonNull Rect outRect,@NonNull View view,@NonNull RecyclerView parent,@NonNull RecyclerView.State state) {
int topAndBottom = SizeUtils.dip2px(getContext(),4);
int leftAndRight = SizeUtils.dip2px(getContext(),6);
outRect.left = leftAndRight;
outRect.right = leftAndRight;
outRect.top = topAndBottom;
outRect.bottom = topAndBottom;
}});
4,在initListener()上,这里记得在fragment类上需要实现adapter的点击事件
//给adapter设置点击事件
recyclerAdapter.setOnLeftItemClickListener(this);
5,给adapter上设置数据
//把得到的数据放到adapter类上实现
recyclerAdapter.setData(data);
6,在adapter类上
1,onCreateViewHolder():设置每一条item的样式布局
2,onBindViewHolder():在这里设置点击每一个item的点击事件
在这里会调用holder.setInData(dataBean):这是给adapter的内部类设置数据
//这个是给实现接口点击事件的方法
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mItemClickListener != null) {
mItemClickListener.onItemClick(dataBean);
}
}
});
3,getItemCount():主要设置得到数据的数目
4,interface OnListItemClickListener{}:提供一个接口给fragment实现点击事件
void onItemClick(IBaseInfo item);
5,setOnListItemClickListener(OnListItemClickListener listener):在adapter上实现点击事件
6,setData():这个是在fragment上调用的,获取fragment传递过来的数据,在第5步的recyclerAdapter.setData(data):这个方法上调用
7,adapter的内部实现类
1,在这里找到item布局的控件id
2,通过setInData():把onBindViewHolder()的数据设置到item的布局上
7,【实现item的点击事件】在fragment类上实现implement XXXAdapter.OnListItemClickListener
@Override
public void onItemClick(IBaseInfo item) {
//列表内容被点击了
LogUtils.d(this,"list item click --- > " + item.getTitle());
handleItemClick(item);
}
同时,在fragment上还要记得
//给适配器中列表的点击,设置点击方法
XXXAdapter.setOnListItemClickListener(this);
上面是对每一个item布局设置的
如果是list的,则不用这么麻烦
如果对我的其它文章有更多的兴趣,可以访问我的个人博客:uniqueho.xyz