我正在使用recyclerview,其中我有适配器,它有3种类型的视图持有者,我根据viewHolder类绑定数据。为此,我使用下面给出的方法来检查哪个类型的持有者用于recyclerview项目
@Override
public int getItemViewType(int position) {
if (mDataset.get(position) == null)
return VIEW__ITEM_PROGRESS;
else if (mDataset.get(position).getIsPost())
return VIEW_ITEM_POST;
else
return VIEW__ITEM_CALENDAR;
}
问题是当我使用这个和滚动,recyclerview项目随机播放和一个项目的图像切换与一些随机项目图像等。但是,当我使用这个
@Override
public int getItemViewType(int position) {
return position;
}
我没有遇到这样的问题。 这是我的创作和绑定方法
// Create new views (invoked by the layout manager)
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int VIEW_TYPE) {
if (VIEW_TYPE == VIEW__ITEM_PROGRESS)
return new ProgressViewHolder(inflater.inflate(R.layout.progressbar, parent, false));
else if (VIEW_TYPE == VIEW_ITEM_POST)
return new NewsFeedViewHolder(inflater.inflate(R.layout.item_newsfeed, parent, false));
else
return new CalendarViewHolder(inflater.inflate(R.layout.item_calendar, parent, false));
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
if (holder instanceof NewsFeedViewHolder) {
//Do respective work
}
} 任何人都可以帮助解决这个问题,这样我就可以解决这个问题以及viewHolders之间的区别。
谢谢!