Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.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 管理在SlidingTableOut中使用的片段的生命周期_Android_Android Fragments_Android Tabs - Fatal编程技术网

Android 管理在SlidingTableOut中使用的片段的生命周期

Android 管理在SlidingTableOut中使用的片段的生命周期,android,android-fragments,android-tabs,Android,Android Fragments,Android Tabs,在我的应用程序中,我使用SlidingTabLayout制作选项卡,我的应用程序有三个选项卡,每个选项卡都带有片段,因此我有三个类在运行应用程序时从片段扩展而来 当单击第二个选项卡时,显示同时创建的第一个和第二个片段的onCreateView和OnCreate 因为我在单击第二个选项卡时从webservice加载内容 就像facebook应用程序在点击tab时加载东西一样,看起来你正在使用SlidingTabLayout与ViewPager结合使用ViewPager默认情况下管理3个项目(当前在

在我的应用程序中,我使用SlidingTabLayout制作选项卡,我的应用程序有三个选项卡,每个选项卡都带有片段,因此我有三个类在运行应用程序时从片段扩展而来 当单击第二个选项卡时,显示同时创建的第一个和第二个片段的onCreateView和OnCreate 因为我在单击第二个选项卡时从webservice加载内容
就像facebook应用程序在点击tab时加载东西一样,看起来你正在使用
SlidingTabLayout
ViewPager
结合使用
ViewPager
默认情况下管理3个项目(当前在“左”/“右”侧一对一),其中一个显示,另外2个处于空闲状态。您无法减少此类项目的数量,因此唯一的方法是将web服务调用从
onCreate
/
onViewCreated
移动到其他位置。例如,您可以在第二个片段中调用
setHasOptionsMenu(true)
,并在第二个片段的
onOptionsMenuCreated
回调中实现web服务调用。

在视图页面中有一个预定义的方法称为setOffscreenPageLimit

setOffscreenPageLimit(int limit)
设置在空闲状态下视图层次结构中当前页面两侧应保留的页数

例如

ViewPager.setOffscreenPageLimit(3);

不理解您的问题Facebook应用程序当您单击任何选项卡时有四个选项卡应用程序加载数据取决于选项卡单击我想在我的应用程序@sudit中完成此操作,但我想保存从web服务下载的项目的实例,以便在再次单击第二个选项卡时显示它们再次加载的实例@LingViston然后实现第二个片段的onSaveInstanceState方法,并将项目保存到包中;使用onCreate/onCreateView等方法中的Bundle参数还原项目。;根据恢复的项目数据恢复视图状态;如果片段中已经存在项数据,则不要再次调用webservice;使用FragmentStatePagerAdapter作为ViewPager的适配器。但实际上这超出了你最初的问题。谢谢,我知道,但这是我的第二个问题。这些步骤是为我的项目保存实例吗1-将FragmentPagerAdapter更改为FragmentStatePagerAdapter作为我的ViewPager的适配器2-在第二个活动中实现保存实例方法3-在创建/创建视图时从捆绑包还原项目感谢帮帮我@Lingviston@yousef如果您的数据已经加载,不要忘记不要调用web服务。只需检查“data”变量是否为非null。如果答案有帮助,请不要忘记接受。TS的问题实际上是由于无法调用setOffscreenPageLimit(0)而出现的。他的片段目前不在屏幕上,从网络上加载了一些他不想看到的数据。