xrecyclerview的引用及多条目加载

所需依赖

// 1.5.9 is the main
compile 'com.jcodecraeer:xrecyclerview:1.5.9'

MainActivity中和标准的recyclerview一样

	LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
	layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
	mRecyclerView.setLayoutManager(layoutManager);
	mRecyclerView.setAdapter(mAdapter);

刷新和加载更多

mRecyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
    @Override
    public void onRefresh() {
       //refresh data here
    }
    @Override
    public void onLoadMore() {
       // load more data here
    }
})

RecyclerView停止刷新和停止加载更多

		mRecyclerView.refreshComplete();
        mRecyclerView.loadMoreComplete();

xrecyclerview也可以设置刷新样式

mRecyclerView.setRefreshProgressStyle(ProgressStyle.BallSpinFadeLoader);

所有效果都可以在ProgressStyle类中获得

public class ProgressStyle {
    public static final int SysProgress=-1;
    public static final int BallPulse=0;
    public static final int BallGridPulse=1;
    public static final int BallClipRotate=2;
    public static final int BallClipRotatePulse=3;
    public static final int SquareSpin=4;
    public static final int BallClipRotateMultiple=5;
    public static final int BallPulseRise=6;
    public static final int BallRotate=7;
    public static final int CubeTransition=8;
    public static final int BallZigZag=9;
    public static final int BallZigZagDeflect=10;
    public static final int BallTrianglePath=11;
    public static final int BallScale=12;
    public static final int LineScale=13;
    public static final int LineScaleParty=14;
    public static final int BallScaleMultiple=15;
    public static final int BallPulseSync=16;
    public static final int BallBeat=17;
    public static final int LineScalePulseOut=18;
    public static final int LineScalePulseOutRapid=19;
    public static final int BallScaleRipple=20;
    public static final int BallScaleRippleMultiple=21;
    public static final int BallSpinFadeLoader=22;
    public static final int LineSpinFadeLoader=23;
    public static final int TriangleSkewSpin=24;
    public static final int Pacman=25;
    public static final int BallGridBeat=26;
    public static final int SemiCircleSpin=27;
}

recyclerview的多条目适配器

  //条目的条目类型
    @Override
    public int getItemViewType(int position) {
        if (position%2 == 0) {
            return 0;
        } else {
            return 1;
        }
    }
    //加载条目资源文件
    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        int itemViewType = getItemViewType(i);
        if (itemViewType == 0) {
            View mView = View.inflate(context, R.layout.item_list, null);
            ViewHolderA viewHolder = new ViewHolderA(mView);
            return viewHolder;
        }else{
            View mView = View.inflate(context, R.layout.item_grid, null);
            ViewHolderB viewHolder = new ViewHolderB(mView);
            return viewHolder;
        }

    }
//加载条目
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
    int itemViewType = getItemViewType(i);
    Log.d("diandian123","itemViewType"+ itemViewType);
    switch (itemViewType){
        case 0:
            ViewHolderA holderA = (ViewHolderA) viewHolder;
            holderA.itemText.setText(list.get(i).getTitle());
            Log.d("diandian123", list.get(i).getTitle());
            Glide.with(context).load(list.get(i).getThumbnail_pic_s()).into(holderA.itemImage);
            break;
        case 1:
            ViewHolderB holderB= (ViewHolderB) viewHolder;
            Glide.with(context).load(list.get(i).getThumbnail_pic_s()).into(holderB.itemImage1);
            Glide.with(context).load(list.get(i).getThumbnail_pic_s02()).into(holderB.itemImage2);
            Glide.with(context).load(list.get(i).getThumbnail_pic_s03()).into(holderB.itemImage3);
            break;
    }
}
//返回数据条目数量
@Override
public int getItemCount() {
    return list.size();
}



//加载条目资源文件
class ViewHolderA extends RecyclerView.ViewHolder{
    TextView itemText;
    Button buttonS;
    ImageView itemImage;
    public ViewHolderA(@NonNull View itemView) {
        super(itemView);
        itemText = (TextView) itemView.findViewById(R.id.item_text);
        buttonS = (Button) itemView.findViewById(R.id.button_s);
        itemImage = (ImageView) itemView.findViewById(R.id.item_image);

    }
}
class ViewHolderB extends RecyclerView.ViewHolder{
    ImageView itemImage1;
    ImageView itemImage2;
    ImageView itemImage3;
    Button buttonM;
    public ViewHolderB(@NonNull View itemView) {
        super(itemView);
       itemImage1 = (ImageView) itemView.findViewById(R.id.item_image1);
       itemImage2 = (ImageView) itemView.findViewById(R.id.item_image2);
        itemImage3 = (ImageView) itemView.findViewById(R.id.item_image3);
       buttonM = (Button) itemView.findViewById(R.id.button_m);

    }
}

猜你喜欢

转载自blog.csdn.net/qq_41423726/article/details/86549125