fragment中使用viewPaper不显示数据内容

pc123455 2013-10-23 11:28:43
项目需要用到图片横向滑动的效果,但是在fragment中加入ViewPager后,使用继承自pagerAdapter的类为ViewPager提供数据,但是在执行过程中,发现instantiateItem根本没有被执行,但是在Activity中能够正常使用,求解这种问题是怎么造成的。以下是代码:
这个是 ViewPagerAdapter类的代码:
public class ViewPagerAdapter extends PagerAdapter {

private List<View> mListViews;
private List<Map<String, Object>> mGoodsList;
private LayoutInflater mInflater;
private ImageFetcher mImageFetcher;
private MainActivity mContext;

public ViewPagerAdapter(Context context, List<Map<String, Object>> goodsList) {
mGoodsList = goodsList;
mListViews = new ArrayList<View>();
mContext = (MainActivity) context;
mInflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
Application app = mContext.getApplication();
mImageFetcher = app.getImageFetcher();
for (int i = 0; i < goodsList.size(); i++) {
View v = mInflater.inflate(R.layout.top_view_page_item, null);
mListViews.add(v);
}

}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(mListViews.get(position));// 删除页卡
}

@Override
public Object instantiateItem(ViewGroup container, int position) { // 这个方法用来实例化页卡
Log.d("ViewPager", "instantiateItem");
ImageView image = (ImageView) mListViews.get(position).findViewById(
R.id.iv_top_view_page_image);
mImageFetcher.setLoadingImage(R.drawable.cart);
mImageFetcher.loadImage(
String.valueOf(mGoodsList.get(position).get("image")), image);
container.addView(mListViews.get(position), 0);// 添加页卡
return mListViews.get(position);
}

@Override
public int getCount() {
Log.i("mGoodsList.size()", String.valueOf(mGoodsList.size()));
return mGoodsList.size();// 返回页卡的数量
}

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == (arg1);// 官方提示这样写
}

@Override
public void startUpdate(View v) {
}

@Override
public void finishUpdate(View v) {
}

@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {
}

@Override
public Parcelable saveState() {
return null;
}
}

这个是fragment中设置ViewPager的代码:
				mGoodsListAdapter = new ViewPagerAdapter(
TopFragment.this.getActivity(), mGoodsList);//mGoodsList中包含需要显示的图片的链接
mGoodsViewPager.setAdapter(mGoodsListAdapter);
...全文
356 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
高的世界 2014-09-04
  • 打赏
  • 举报
回复
mViewPager.setOffscreenPageLimit(3),就ok啦
lwchuhao 2014-07-08
  • 打赏
  • 举报
回复
楼主你好,我最近也是碰到了这个问题,现在还没有解决。你说的“fragment的view的初始化的问题”是什么意思,能不能详解一下?谢谢!
cshao888 2014-01-09
  • 打赏
  • 举报
回复
引用 4 楼 pc123455 的回复:
[quote=引用 3 楼 birdsaction 的回复:] mGoodsViewPager 在一个Fragment单独初始化的?
是,因为这个mGoodsViewPager是在一个fragment的布局中使用的,是这里的问题吗[/quote]真心求教,我的扣扣是710224800
cshao888 2014-01-09
  • 打赏
  • 举报
回复
楼主好,这个问题解决了吗,怎么解决的?
Birds2018 2013-10-23
  • 打赏
  • 举报
回复
代码不全看不出来。 可能是 mGoodsViewPager 这个初始化有问题。
pc123455 2013-10-23
  • 打赏
  • 举报
回复
引用 1 楼 birdsaction 的回复:
代码不全看不出来。 可能是 mGoodsViewPager 这个初始化有问题。
还真是初始化的问题,不过是fragment的view的初始化的问题
pc123455 2013-10-23
  • 打赏
  • 举报
回复
引用 3 楼 birdsaction 的回复:
mGoodsViewPager 在一个Fragment单独初始化的?
是,因为这个mGoodsViewPager是在一个fragment的布局中使用的,是这里的问题吗
Birds2018 2013-10-23
  • 打赏
  • 举报
回复
mGoodsViewPager 在一个Fragment单独初始化的?
pc123455 2013-10-23
  • 打赏
  • 举报
回复
引用 1 楼 birdsaction 的回复:
代码不全看不出来。 可能是 mGoodsViewPager 这个初始化有问题。
mGoodsViewPager就是用布局中控件的id来进行初始化的,同样的代码在activity中能够正常显示

80,362

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧