0

我正在使用页面适配器来实现水平滑动。我想将 OffscreenPageLimit 设置为零,因为我希望只加载屏幕上的视图。但不幸的是它不起作用。谁能给我替代解决方案。

谢谢

4

2 回答 2

1

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

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

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

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

于 2012-10-24T06:54:46.093 回答
0

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

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

于 2012-10-24T05:54:29.053 回答