所需依赖
// 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);
}
}