java - 当我向下滚动时查看寻呼机销毁项目

标签 java android slider

我在回收器 View 项目中使用图像 slider ,每个项目都有 View 分页器和自己的图像 slider ,在回收器 View 中加载所有项目后。第一个项目在其 View 寻呼机内显示图像 slider ,然后我向下滚动到其他项目可能是项目 10 或 11,然后我向上滚动到第一个项目,然后 View 寻呼机销毁其中的所有项目或 fragment ,现在没有显示图像。请给我解决方案,我的适配器代码。无法使用 FragmentStatePagerAdapter,因为无权访问 Fragment Manager

    private class ViewPagerAdapter extends PagerAdapter {


   ArrayList<ImageInfo> allImages=new ArrayList<>();




    private ViewPagerAdapter(ArrayList<ImageInfo> allImages){
        this.allImages = allImages;
    }

    @Override
    public int getCount() {
        return allImages.size();
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        View itemView = LayoutInflater.from(myContext).inflate(R.layout.fragment_big_row_image, container, false);

        ImageView imageListing = (ImageView) itemView.findViewById(R.id.imageListing);


        //MH: Loading Images in slider
        if(allImages.get(position).csImageFull.length()>0)
        {
            CommonMethods.ShowImage(myContext, imageListing, allImages.get(position).csImageFull);

        }
        else
        {
            CommonMethods.ShowImage(myContext, imageListing, allImages.get(position).csImageMedium);

        }

        container.addView(itemView);

        return itemView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
       // ((ViewPager) container).removeView((View) object);
       // instantiateItem(container,position);
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == object;
    }
}

   /*****************************************************************************************************/

最佳答案

在 viewpager 中设置屏幕页面。屏幕外页面限制定义了您希望在 View 寻呼机内存中保留多少页面。将此数字设置为您所需的页数。

mViewPager = (ViewPager)findViewById(R.id.pager);
mViewPager.setOffscreenPageLimit(2);

此处的 View 分页器会将上次访问的 2 个页面保留在内存中,并且不会销毁它们。

关于java - 当我向下滚动时查看寻呼机销毁项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50225935/

相关文章:

c# - 使用 x509 证书和加密的数字签名

java - 可用于单元测试的 Netty 4/5 确定性缓冲区泄漏检测

c# - 如何在 C# 中正确创建返回类型的方法(Java 到 C# 的转换)

android - 像描述中那样的应用

android - 不同国家/地区的不同 Android 应用程序版本

javascript - 创建多个 slider 并使它们彼此独立运行

java - 当 session 被销毁时,Tomcat Session 中保存的值是否应该设置为 null?

android - clickView如何正确使用?

c++ - Qwtslider 布局 - 显示当前值

video - 革命 slider 视频自动播放不起作用