如果它在每个列表项RecyclerView中,如何使用ViewPager?

时间:2015-10-08 20:50:53

标签: android list android-viewpager android-recyclerview android-adapter

我使用ViewPager列表中的水平滚动图像RecyclerView.Adapter. ViewPager使用控制显示的适配器。每个列表项必须加载不同的图像。问题是在滚动列表(RecyclerView.Adapter)期间,在ViewPager加载错误图像的上下都搞砸了。我在ViewHolder创建新

适配器:

public static class ViewHolder extends RecyclerView.ViewHolder {

        ViewPagerAdapter vpAdapter;

        public DataObjectHolder(View itemView, int viewType, Context context) {
            super(itemView);

            vpAdapter = new ViewPageAdapter(context);
            viewPager = (ViewPager) itemView.findViewById(R.id.viewPager);
            viewPager.setAdapter(vpAdapter);
        }

}

然后我在onBindViewHolder,使用我的方法getImages(List<Images> images)传递一个图像数组,根据这些图像列出项目的位置(RecyclerView):

 @Override
    public void onBindViewHolder(ViewHolder holder, int position) {

                holder.vpAdapter.setImages(mData.get(position).getImages());

                holder.viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

                    @Override
                    public void onPageScrolled(int pagePosition, float positionOffset, int positionOffsetPixels) {
                    }

                    @Override
                    public void onPageSelected(int pagePosition) {
                    }

                    @Override
                    public void onPageScrollStateChanged(int state) {
                    }
                });

    }
ViewPagerAdapter中的

方法如下所示:

public void setImages(List<Images> images){
            mImages = images;
            notifyDataSetChanged();
}

instantiateItem()中的方法ViewPagerAdapter如下所示:

@Override
    public Object instantiateItem(ViewGroup view, int position) {
        View imgLayout = inflater.inflate(R.layout.itemPager, view, false);
        assert imgLayout != null;
        ImageView imageView = (ImageView) imgLayout.findViewById(R.id.imageView);

        Context context = imageView.getContext();
        Picasso.with(context)
                .load(mImages.get(position).getImage())
                .resize(300, 300)
                .into(imageView);

        view.addView(imgLayout, 0);
        return imgLayout;
    }

我做错了什么?

正确的地方,有必要初始化ViewPagerAdapter以及如何正确传递ViewPagerAdapter中的图片列表?

0 个答案:

没有答案