package com.tencent.qcloud.tuikit.tuibarrage.view.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import com.tencent.qcloud.tuikit.tuibarrage.R;
import java.util.ArrayList;
/**
* 带有头部、尾部的RecyclerView的Adapter
*/
public class AdapterHeadFoot extends RecyclerView.Adapter<AdapterHeadFoot.MyViewHolder> {
/**
* 头部View类型
*/
private final int TYPE_HEAD = 0;
/**
* 正常Item类型
*/
private final int TYPE_ITEM = 1;
/**
* 尾部View类型
*/
private final int TYPE_FOOT = -1;
private Context mContext;
private ArrayList<String> strings = new ArrayList<>();
public AdapterHeadFoot(Context context) {
this.mContext = context;
}
public void setModels(ArrayList<String> strings) {
if (strings != null && !strings.isEmpty()) {
this.strings = strings;
notifyDataSetChanged();
}
}
@Override
public int getItemViewType(int position) {
//根据position返回不同viewType,在onCreateViewHolder中初始化不同的布局
if (position == 0)
return TYPE_HEAD;
else if (position == strings.size() + 1)
return TYPE_FOOT;
return TYPE_ITEM;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view;
if (viewType == TYPE_HEAD)
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_head_live_list, parent, false);
else if (viewType == TYPE_FOOT)
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_head_live_list, parent, false);
else
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_head_live_list, parent, false);
return new MyViewHolder(view, viewType);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
int viewType = getItemViewType(position);
if (viewType == TYPE_HEAD) {
//显示、控件操作可在这里处理,我这边直接return;
return;
}
if (viewType == TYPE_FOOT) {
//显示、控件操作可在这里处理,我这边直接return;
return;
}
//这里positionModel是在数据集合ArrayList<String>中的真实position;
int positionModel = position - 1;
String url = strings.get(positionModel);
// Glide.with(mContext).load(url).thumbnail(0.1f).placeholder(R.mipmap.img_eig).into(holder.iv);
holder.tv.setText(url);
}
@Override
public int getItemCount() {
//因为添加了Head_View、Foot_View所以这里+2
return strings.size() + 2;
}
class MyViewHolder extends RecyclerView.ViewHolder {
// private TextView iv;
private TextView tv;
MyViewHolder(View itemView, int viewType) {
super(itemView);
if (viewType == TYPE_FOOT || viewType == TYPE_HEAD) {
//如果head/foot当中有控件的显示操作,可以在这里声明控件,我这里直接return;
return;
}
// iv = (ImageView) itemView.findViewById(R.id.tv_title);
tv = (TextView) itemView.findViewById(R.id.tv_title);
}
}
}
02-18
2180
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交