如何在android中将OffscreenPageLimit值设置为零

时间:2012-10-24 05:51:56

标签: android

我正在使用页面适配器来实现水平滑动。我想将OffscreenPageLimit设置为零,因为我希望只有屏幕上的视图才被加载。但不幸的是它不能正常工作。任何人都可以给我替代解决方案这一点。

谢谢

2 个答案:

答案 0 :(得分:1)

如果您正在使用FragmentPageAdapter,那么完成您所追求的目标并不是一件非常棘手的事。您只需确保在创建片段(或其父活动或附加等)时不进行任何“加载”*。而是在片段中创建一个方法,您可以调用该方法来启动加载过程。之后,为ViewPager设置OnPageChangeListener,并在onPageScrolled(...)onPageSelected(...)中调用'startLoad'方法 - 以更适合您的需求为准。

这样,您的适配器中仍然有多个项目,但您可以使用非常简单的布局初始化任何屏幕外页面。只有在滚动页面时,您才能开始努力工作。

* =请注意,'loading'在这里是一个模糊的术语。只有一个页面的适配器没有任何意义(正如@fliespl已经指出的那样)。相反,如上所述,允许多个页面并初始化某些非常基本状态不可见的任何内容。当水平滚动显示(部分)页面时,只需开始实际加载内容。

只是一个提示:设置一个定义'startLoad'方法的界面可能不是一个坏主意。如果你正确设置它,你应该能够安全地在适配器中转换任何项目并开始加载,而不必担心实际的实现。

答案 1 :(得分:0)

如果你仔细看看,你的logcat将输出这个字符串: Requested offscreen page limit 0 too small; defaulting to 1,意思是你不能这样做:)

如果您不想要适配器,为什么要使用它?您可以简单地膨胀和替换您的布局或开始新的活动。