1
我有一个RecyclerView,充满了固定大小的集合中的项目。RecyclerView和自定义项目类型
我想与广告中提供意见,例如,对于每一个3TH项目:
@Override
public int getItemViewType(int position) {
return position % 3 == 0 ? TYPE_ADS : TYPE_ITEM;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view;
switch (viewType) {
case ItemTypes.TYPE_ITEM:
view = layoutInflater.inflate(R.layout.view_news_entries_item, parent, false);
break;
case ItemTypes.TYPE_ADS:
view = layoutInflater.inflate(R.layout.view_ads_item, parent, false);
break;
default:
throw new IllegalArgumentException("Invalid item type: " + viewType);
}
return new ViewHolder(view);
}
但是,使用这种方法,我应该如何实现getItemCount()和onBindViewHolder()?我的意思是说,物品数量会不同,然后收集真实物品的数量,而且位置不会相同,那么如何计算它们呢?
Thanks!以及如何从传递给onBindViewHolder的位置计算收藏中物品的实际位置? – arts777
你可以使用相同的计数原理: public int getItemPosition(int position){intl_local = position/3; 返回位置 - 广告; } – Nate
不错!我会删除我的答案。 – mbmc