XRecyclerView的使用

XRecyclerView的使用

  • 首先
    导入我们的依赖(永恒不变的主题)
 implementation 'com.android.support:recyclerview-v7:28.0.0'
 implementation ('com.jcodecraeer:xrecyclerview:1.5.9'){
        exclude group: 'com.android.support'
    }
  • 其次
    这个我们导入依赖之后的使用方法很类似于我们的XlistView的使用

  • 布局文件中

 <com.jcodecraeer.xrecyclerview.XRecyclerView
         android:id="@+id/xrecyclerView"
         android:layout_width="match_parent"
         android:layout_height="match_parent"></com.jcodecraeer.xrecyclerview.XRecyclerView>
  • 代码

MainActivity中第一步大家肯定都会:找组件

xrecyclerView = (XRecyclerView) findViewById(R.id.xrecyclerView);

找完组件: 我这里采用的是mvp的实现数据的模式
加载点击

        /**
         *
         * mvp实现数据
         */
        goodsPresentle = new GoodsPresentle(this);
        goodsPresentle.goodsShow(page);
        /**
         * xrecyclerView + 上拉下载
         */
        //加载点击更多
        xrecyclerView.setLoadingListener(this);
        //瀑布流
        StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
        //设置管理
        xrecyclerView.setLayoutManager(staggeredGridLayoutManager);
        //设置适配器
        xRecyclerViewAdapter = new XRecyclerViewAdapter(this,dataBeans);
        xrecyclerView.setAdapter(xRecyclerViewAdapter);
        //加载数据(刷新)开始刷新
        xrecyclerView.refresh();

我们在最上面也需要实现监听

public class MainActivity extends AppCompatActivity implements XRecyclerView.LoadingListener,

完了之后爆红实现两个方法

 @Override
    public void onRefresh() {
        page = 1;
        goodsPresentle.goodsShow(page);
    }

    @Override
    public void onLoadMore() {
        page ++ ;
        goodsPresentle.goodsShow(page);
    }

在回调的方法里面刷新,下载完成

 @Override
    public void GoodsCall(Goods goods) {
        xrecyclerView.refreshComplete();
        xrecyclerView.loadMoreComplete();
        List<Goods.DataBean> data = goods.getData();
        dataBeans.addAll(data);
    }

Activity中已经完成,其次就是适配器了.和我之前发的那篇RecyclerView基本一致
我们采用之前和ListView中的方法一样,把上下文和对象直接传递,
下面这句这就是…

 xRecyclerViewAdapter = new XRecyclerViewAdapter(this,dataBeans);

适配器(和RecyclerView基本一致不过多细说)

public class XRecyclerViewAdapter extends RecyclerView.Adapter<XRecyclerViewAdapter.MyHolder> {

    //创建mList

    Context context;
    List<Goods.DataBean> dataBeans = new ArrayList<>();

    public XRecyclerViewAdapter(Context context, List<Goods.DataBean> dataBeans) {
        this.context = context;
        this.dataBeans = dataBeans;
    }

    @NonNull
    @Override
    public XRecyclerViewAdapter.MyHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View view = LayoutInflater.from(context).inflate(R.layout.item,viewGroup,false);
        MyHolder myHolder = new MyHolder(view);
        return myHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull XRecyclerViewAdapter.MyHolder myHolder, int i) {
        double price = dataBeans.get(i).getPrice();
        //String images = dataBeans.get(i).getImages();
        String title = dataBeans.get(i).getTitle();

        String url = dataBeans.get(i).getImages();
        String[] split = url.split("\\|");
        if (split.length > 0) {
            Glide.with(context).load(split[0]).into(myHolder.itemIv);
        }
        myHolder.itemTv1.setText(price+"");
        myHolder.itemTv2.setText(title);


    }

    @Override
    public int getItemCount() {
        return dataBeans.size();
    }

   

    public class MyHolder extends RecyclerView.ViewHolder {
        private ImageView itemIv;
        private TextView itemTv1;
        private TextView itemTv2;




        public MyHolder(@NonNull View itemView) {
            super(itemView);
            itemIv = (ImageView) itemView.findViewById(R.id.item_iv);
            itemTv1 = (TextView) itemView.findViewById(R.id.item_tv1);
            itemTv2 = (TextView) itemView.findViewById(R.id.item_tv2);

        }
    }
}

这样就实现了我们的简单使用.方法内的所需要的对象可以依据情况进行改变.

猜你喜欢

转载自blog.csdn.net/qq_43589739/article/details/85003731