pagerAdapter 中的instantiateItem

午后一小憩
  • 2.9k

今天在处理viewpage时有个疑问如下代码:

@Override
    public Object instantiateItem(ViewGroup container, int position) {
        View view = LayoutInflater.from(mContext).inflate(R.layout.found_top_item, null);
        ImageView imageView = (ImageView) view.findViewById(R.id.found_top_image);
        //ImageView imageView = new ImageView(mContext);
        ImageCacheManager.loadImage(GetUrl.ImageUrl + MainActivity.imageList.get(position),
                ImageCacheManager.getImageListener(imageView, null, null), DensityUtils.dip2px(mContext, 180),
                DensityUtils.dip2px(mContext, 180));
        container.addView(imageView);
        Log.d("TAG","instantiateItem");
        return imageView;
    }

使用该代码当从第一个视图滑动到第二个视图会报java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.但使用注释代码的imageView就没问题
这是怎么回事?

回复
阅读 3.2k
1 个回答
✓ 已被采纳

要用非注释的代码应该是return view而不是return imageView啊

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏