ViewPager可能包含无限数量的页面

时间:2013-11-09 15:06:30

标签: android android-viewpager gallery

我目前正在使用ViewPager对象来创建动态加载的照片库(来自远程服务器)。我注意到ViewPager对象在很大程度上依赖于提前知道页面数量(或我的情况下的图片),而在我的情况下我不知道。

我是对的吗?如果我是,是否有一种替代方案可以使图片之间的滑动非常容易(这就是我喜欢的ViewPager)?

提前致谢

2 个答案:

答案 0 :(得分:2)

  

我是对的吗?

嗯,您需要在getCount()上使用PagerAdapter方法返回一些内容。如果你希望将其定义为“严重依赖”,那么使用它会“严重依赖”。

  

如果我有,是否有替代方案可以让图片之间的滑动变得非常简单(这就是我喜欢的ViewPager)?

使用ViewPager

虽然您的图像可能会动态加载,但可能提前知道图像的数量。在这种情况下,检索该值,然后将其用于getCount()

否则,让getCount()返回1000000或类似的东西。如果您发现可用图片的结尾,请致电notifyDataSetChanged()并让PagerAdaptergetCount()返回正确的值(因为您现在就知道了)。或者,让其余页面显示一些占位符。

答案 1 :(得分:1)

对于无限滚动,我找到了一个解决方案。

以下是我的表现:

在这种情况下不需要循环。无论你的getCount()是什么。

设置寻呼机适配器后,我将setOnPageChangeListener设置为视图寻呼机,如下所示:

myPager.setOnPageChangeListener(new OnPageChangeListener() {

                @Override
                public void onPageSelected(int position) {
//Define the focused page before your onCreate()..private int focusedPage = 0;
                    focusedPage = position;
                }
                //We don't have to do anything here.
                @Override
                public void onPageScrolled(int arg0, float arg1, int arg2) {
                    // TODO Auto-generated method stub

                }
                //Here's where the magic is. After you reach the end of the page, you can scroll again and it will move your view to position you desire to put. In my case it's 0.
                @Override
                public void onPageScrollStateChanged(int arg0) {

                    myPager.setCurrentItem(0,false);

                }
            });

我知道回答这个问题为时已晚,但这是我发现的解决方案。也许对其他用户有帮助。

这对我来说很完美......任何能让这个答案更好的建议对我也有帮助。

相关问题