第三方UI库的使用
关于XUI的BaseRecyclerAdapter的使用
正常使用:
- 创建一个适配器来继承BaseRecyclerAdapter,想要传入参数(也就是适配器数据)
1
public class RecommendedVideoAdapter extends BaseRecyclerAdapter<RecommendVideoBean.BeanData>
- 创建构造方法 将上下文对象传入进来,方便之后的使用
1
2
3
4public RecommendedVideoAdapter(Context context,VideoChoiceDialog videoChoiceDialog) {
this.videoChoiceDialog = videoChoiceDialog;
mContext = context;
} - 在bindData中写处理数据的操作 包括获取控件和初始化数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30Override
protected void bindData(@NonNull RecyclerViewHolder holder, int position, RecommendVideoBean.BeanData item) {
cover = holder.findViewById(R.id.Re_cover);
play_volume = holder.findViewById(R.id.Re_play_volume);
barrage_volume = holder.findViewById(R.id.Re_barrage_volume);
Re_video = holder.findViewById(R.id.Re_video_cover);
title = holder.findViewById(R.id.Re_title);
more = holder.findViewById(R.id.Re_more);
Re_video.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext, VideoActivity.class);
intent.putExtra("id", videoBean.getData().get(position).getId());
intent.putExtra("uid", videoBean.getData().get(position).getUid());
mContext.startActivity(intent);
}
});
if (item != null) {
initData(item);
}
}
private void initData(RecommendVideoBean.BeanData item) {
Glide.with(mContext)
.load(item.getCover())
.into(cover);
play_volume.setText(item.getPlayNum() + "");
barrage_volume.setText(item.getDanmunum() + "");
title.setText(item.getTitle());
}在Avtivity/Fragment中的使用:
- 初始化
- 获取RecyclerView控件
- 设置RecyclerView的排列方式
- 创建适配器对象
- RecyclerView设置适配器
1
2
3
4GridLayoutManager layoutManager1 = new GridLayoutManager(getContext(), 2);
adapter = new RecommendedVideoAdapter(getContext(), videoChoiceDialog);
binding.ReRecy.setLayoutManager(layoutManager1);
binding.ReRecy.setAdapter(adapter);
- 加载数据
直接调用适配器的加载数据的方法,刷新也是一样1
2
3
4
5
6
7
8adapter.loadMore(videoBean.getData());
//loadMore一般是传入一个list(加载)
for (RecommendVideoBean.BeanData datum : videoBean.getData()) {
adapter.add(0, datum);
}
//add一般是传入一个对象(在末尾添加一个)
adapter.refresh(videoBean.getData());
//refresh和加载差不多(刷新)坑
- 如果想要有item加载时的动画,那么在调用adapter加载数据的时候,就不能使用 loadMore ,必须使用 add 来一个一个添加,否则是没有动画的