我有一个RecyclerView适配器,它将数据添加到RecyclerView,它可以正常工作,直到我向上和向下滚动并看到重复的TextViews。
所以我的RecyclerView就像这样加载
问题在于您看到tag0
和tag1
- 如果我向下滚动并返回,则会添加一组重复的tag0
和tag1
- 如图所示在以下屏幕截图中
每当我滚动
时,它会一遍又一遍地发生
我的RecyclerView适配器代码如下(简短版)
class VideoAdapter : RecyclerView.Adapter
{
Context _context;
private List<VideoDisplayModel> _AllLinks;
public VideoAdapter(List<VideoDisplayModel> AllLinks)
{
_AllLinks = AllLinks;
}
public override int ItemCount
{
get
{
return _AllLinks.Count;
}
}
public override long GetItemId(int position)
{
return position;
}
public override int GetItemViewType(int position)
{
return position;
}
public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
{
View listitem = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.VideoRecyclerRow, parent, false);
TextView title = listitem.FindViewById<TextView>(Resource.Id.titleVideo);
ImageView image = listitem.FindViewById<ImageView>(Resource.Id.imageVideo);
LinearLayout tagsLayout = listitem.FindViewById<LinearLayout>(Resource.Id.tagsVideoLayout);
VideoRecylerViewHolder view = new VideoRecylerViewHolder(listitem)
{
Title = title,
Thumb = image,
TagsLayout = tagsLayout
};
_context = parent.Context;
return view;
}
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
var viewHolder = holder as VideoRecylerViewHolder;
var currentLink = _AllLinks[position];
viewHolder.Title.Text = currentLink.Title;
for(int i = 0; i < 2; i++)
{
TextView Txt = new TextView(_context);
Txt.Text = "test"+i.ToString();
Txt.SetBackgroundResource(Resource.Drawable.roundtext);
Txt.SetPadding(30, 10, 30, 10);
Txt.SetTextColor(global::Android.Graphics.Color.ParseColor("#373944"));
Txt.SetTextSize(Android.Util.ComplexUnitType.Dip, 12);
viewHolder.TagsLayout.AddView(Txt);
}
}
我不明白,我做错了什么 - 有什么想法吗?
干杯