我有一个活动,它显示一个月的日历,并允许用户在上个月/下个月左右滑动。我想使用ViewPager来实现平滑的滚动效果,但是它应该允许用户无限地左右滚动,因此无法预先设置固定的适配器。
我想知道是否可以像这样循环这些页面:最初将适配器设置为只包含3页,并显示中间页,
我可以用setAdapter()和setCurrentIndex()来完成这个任务吗?这会否造成不必要的后果?
发布于 2015-11-14 02:24:11
在支持ViewPager回收和提高性能的其他支持中,您应该使用视图而不是片段。基本上这是你要找的instantiateItem。
@Override
public Object instantiateItem(ViewGroup parent, int position) {
int viewType = getItemViewType(position);
if (!mRecycleCacheMap.containsKey(viewType)) {
mRecycleCacheMap.put(viewType, new RecycleCache(this, parent, viewType));
}
ViewHolder viewHolder = mRecycleCacheMap.get(viewType).getFreeViewHolder();
viewHolder.mIsAttached = true;
onBindViewHolder((VH) viewHolder, position);
parent.addView(viewHolder.mItemView);
if (DEBUG) {
Log.i(TAG, String.format(Locale.US, "instantiateItem | position: %d | viewType: %d | cacheCount: %d",
position, viewType, mRecycleCacheMap.get(viewType).mCaches.size()));
}
return viewHolder;
}查看这里的示例代码,RecyclerPagerAdapter
https://stackoverflow.com/questions/27460772
复制相似问题