2

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

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

提前致谢

4

2 回答 2

2

我对吗?

好吧,你需要有一个返回一些东西的getCount()方法。PagerAdapter如果您希望将其定义为“严重依赖”,则使用它“严重依赖”。

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

使用ViewPager.

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

否则,有getCount()回报1000000或类似的巨大的东西。如果您发现可用图片已用完,请致电notifyDataSetChanged()并让您PagerAdapter返回正确的值getCount()(因为您现在知道了)。或者,让剩余页面显示一些占位符。

于 2013-11-09T16:06:52.623 回答
1

对于Infinite Scrolling,我想出了一个解决方案。

这是我的做法:

在这种情况下不需要循环。无论您的 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);

                }
            });

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

它对我来说是完美的......任何使这个答案更好的建议也会对我有帮助。

于 2014-03-08T16:15:15.037 回答