Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在viewpager中动态创建片段_Android_Android Fragments - Fatal编程技术网

Android 如何在viewpager中动态创建片段

Android 如何在viewpager中动态创建片段,android,android-fragments,Android,Android Fragments,当我们在viewpager中使用fragment时,我们总是在适配器调用构造函数时添加fragment。因此,当Activity调用onCreate()时,所有片段都将同时构造和调用onCreate()。 但是当我们滑进去的时候,我想构建这个片段。我应该怎么做? 例如: 我有4个片段:片段1,片段2,片段3,片段4。 首先,viewpager将创建fragment1,当我们滑入下一个片段(右滑)时,viewpager将创建fragment2,fragment2将调用它onCreate()。 我怎

当我们在viewpager中使用fragment时,我们总是在适配器调用构造函数时添加fragment。因此,当Activity调用onCreate()时,所有片段都将同时构造和调用onCreate()。 但是当我们滑进去的时候,我想构建这个片段。我应该怎么做? 例如: 我有4个片段:片段1,片段2,片段3,片段4。 首先,viewpager将创建fragment1,当我们滑入下一个片段(右滑)时,viewpager将创建fragment2,fragment2将调用它onCreate()。 我怎样才能做到

非常感谢你的帮助,很抱歉我的台球英语,我不知道我有没有解释清楚这个问题。
再次感谢。

您可以将片段的创建移动到适配器中的getItem()方法,并返回新创建的片段。

我的答案可能有点欠缺,但我相信有人可以完成它。
因此,您可以做的只是在活动的onCreate()中创建一个片段。实现onScrollChanged()函数,并尝试使用getScrollX()跟踪用户与屏幕的确切位置,只需在滚动到屏幕一侧时执行一些“如果”语句即可删除/添加片段。

如您所述,viewpager实际上会立即加载片段(onCreate和onResume)。如果您打算在显示下一页之前执行某些操作,此链接可能会为您提供另一种执行方法。

只要在
getItem
方法中返回您的
片段
(我假设您使用的是
FragmentPagerAdapter
),我只想在片段显示时调用onCreate()。这样我就可以动态请求数据。