我正在尝试在 recycleview 中展示广告,并且我使用下面的代码成功地做到了。问题是,在每个“MspaceBetweenAds”位置,广告都会出现,但是这里的文章被我试图修复的广告所取代通过 Mposts.Count + (Mposts.count% MspaceBetweenAds) 修改 ItemCount() 但我收到“IndexOutOfBounds”错误任何帮助..这是我的代码
public class AdsView : ListViewHolder
{
public AdView mAdView { get; private set; }
public AdsView(View view) : base(view)
{
mAdView = view.FindViewById<AdView>(Resource.Id.AdsCard);
}
}
public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
{
RecyclerView.ViewHolder vh = null;
switch (viewType)
{
case 1:
View vBig = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.BigCard, parent, false);
vh = new MyView(vBig);
break;
case 2:
View vAds = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.AdsCard, parent, false);
vh = new AdsView(vAds);
break;
}
return vh;
}
public override void OnBindListViewHolder(ListViewHolder holder, int position)
{
var MyHolder = holder as MyView;
switch (holder.ItemViewType)
{
case 1:
// code to show posts articles here
break;
case 2:
var AdHolder = holder as AdsView;
fnc.AddBannerAd(AdHolder.mAdView);
break;
}
}
public override int GetItemViewType(int position)
{
if (position > 0 && position % mSpaceBetweenAds == 0) { return 2; }
else { return 1; }
}
这是一个演示应用程序https://drive.google.com/open?id=1Tk3G8dw9nqIffxmEFNGqIgXNzCJJPxD_