我有一个具有数据的RecyclerView
。我尝试添加一个自定义的第一个元素。
if(position == 0) {
Trend item = items.get(holder.getAdapterPosition());
int i = 0;
items.add(i, item);
}
@Override
public int getItemViewType(int position) {
if (position == 0) return 1;
else return 2;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == 1) {
inflater = LayoutInflater.from(parent.getContext());
return new MyViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_trendsnewuser, parent, false));
} else {
inflater = LayoutInflater.from(parent.getContext());
return new MyViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_trends, parent, false));
}
我现在复制第一个元素两次。如何添加自定义行与我的自定义选项?
您应该使用不同的视图创建两个ViewHolder,并在ItemViewType中检查特定位置,并根据该检查膨胀特定的ViewHolder。
下面是一些代码:
public int getItemViewType(int position) {
if (products.size()==0){
return 0;
}else if (products.get(position)== 0){
return 0;
}else
return 1;
}
return super.getItemViewType(position);
}
和ViewHolder:
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
if (viewType== 0){
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.FIRSTTIMEVIEW,parent,false);
return new MovieViewHolder(view);
}else if (viewType==1)
{
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.OTHERVIEWS,parent,false);
return new OtherViewHolder(view);
}else{
return null;
}
}