发布
社区首页 >问答首页 >如何在屏幕上影响ViewPager中的项

如何在屏幕上影响ViewPager中的项
EN

Stack Overflow用户
提问于 2015-07-05 08:18:12
回答 1查看 436关注 0票数 2

我正在构建一个画廊应用程序。我的MainActivity中有一个内部类,它扩展了PagerAdapter

代码语言:javascript
代码运行次数:0
复制
private class ImagePagerAdapter extends PagerAdapter{

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

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

    @Override
    public Object instantiateItem(ViewGroup container, int position) {

        LinearLayout llImage = (LinearLayout) getLayoutInflater().inflate(R.layout.view_pager_item, null);

        SubsamplingScaleImageView draweeView = (SubsamplingScaleImageView) llImage.getChildAt(0);
        draweeView.setImage(ImageSource.uri(images.get(position)));

        container.addView(llImage, 0);

        return llImage;

    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((LinearLayout) object);
    }
}

项目是动态创建的。我的应用程序允许用户放大这些页面(项目)中的图片,当我滑动到下一页时,ViewPager保存缩放状态。但是,当我返回到上一页时,我希望看到一张默认大小的图片,而不作任何更改。

考虑到这些项目是动态创建的,当它们再次出现在屏幕上时,我如何影响存储的项?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-05 08:34:52

你在这里出了点问题。请考虑以下几点:

如果您在视图寻呼机中有三个页面,当您的应用程序出现在屏幕上时,第一页和第二页将被初始化。当你滑动到第二页时,第三页将初始化,但第一页尚未被销毁。只有当你滑动到第三页时它才会被摧毁。

因此,当你在第2页,你滑动回第一页,什么都不会改变,因为该页没有被破坏。如果您想在回拨时更改某些内容,我建议您实现OnPageChangeListener吗?

代码语言:javascript
代码运行次数:0
复制
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
    public void onPageScrollStateChanged(int state) {}
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}

    public void onPageSelected(int position) {
        // reset the zoom
    }
}); 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31228422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档