导入三个依赖
//recyclerview间隔线
implementation'com.yanyusong.y_divideritemdecoration:y_divideritemdecoration:2.0'
//recyclerview动画
implementation'jp.wasabeef:recyclerview-animators:4.0.2'
// recyclerview
implementation'androidx.recyclerview:recyclerview:1.0.0'
//这次是放到fragment里的
public class NewsFragmentextends Fragmentimplements OnRefreshLoadMoreListener {
private Bannerban;
private RecyclerViewrec;
Listintegers;
Liststrings;
Listdata =new ArrayList<>();
LinearLayoutManagerlinearLayoutManager =new LinearLayoutManager(getActivity(), RecyclerView.VERTICAL, false);
private SmartRefreshLayoutrfLay;
RecAdapterrecAdapter;
int page =1;
boolean yes;
@Override
public ViewonCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View inflate = inflater.inflate(R.layout.fragment_news, container, false);
//实例化
ban = inflate.findViewById(R.id.ban);
rec = inflate.findViewById(R.id.rec);
rfLay =inflate. findViewById(R.id.rf_lay);
rfLay.setOnRefreshLoadMoreListener(this);
rec.addItemDecoration(new Deivider(getActivity()));
return inflate;
}
//}
public void initData() {
rec.setLayoutManager(linearLayoutManager);
OkGo.get("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=" +page).execute(new StringCallback() {
@Override
public void onSuccess(Response response) {
// 解析数据
String body = response.body();
Gson gson =new Gson();
Foods foods = gson.fromJson(body, Foods.class);
data = foods.getData();
for (int i =0; i
data.get(i).index = i %2;
}
// 判断加上适配调用下边的方法
initView(data);
// 添加点击事件
recAdapter.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(@NonNull BaseQuickAdapter adapter, @NonNull View view, int position) {
recAdapter.remove(position);
recAdapter.notifyDataSetChanged();
return false;
}
});
}
private void initView(List data) {
rfLay.finishRefresh();
rfLay.finishLoadMore();
// 添加适配器
if (recAdapter==null){
recAdapter=new RecAdapter(data);
rec.setAdapter(recAdapter);
}else {
if (yes){
recAdapter.getData().clear();
}
recAdapter.getData().addAll(data);
recAdapter.notifyDataSetChanged();
}
}
});
}
//加载更多
@Override
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
page++;
initData();
yes=false;
}
// 刷新
@Override
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
page=1;
initData();
yes=true;
}
}
//适配器还是老样子布局可以看简单版
public class RecAdapterextends BaseMultiItemQuickAdapter {
public RecAdapter(@Nullable List data) {
//添加多布局
super(data);
addItemType(0,R.layout.slidetext);
addItemType(1,R.layout.slideimae);
}
//绑定控件
@Override
protected void convert(@NotNull BaseViewHolder baseViewHolder, Foods.DataBean dataBean) {
switch (dataBean.index){
case 0:
baseViewHolder.setText(R.id.tv_slide1,dataBean.getTitle());
break;
case 1:
ImageView view = baseViewHolder.getView(R.id.iv1_slide2);
Glide.with(getContext()).load(dataBean.getPic())
.apply(RequestOptions.bitmapTransform(new CircleCrop()))
.into(view);
break;
}
}
}