Android 片段选项卡适配器getItem调用两次

Android 片段选项卡适配器getItem调用两次,android,android-fragments,Android,Android Fragments,我已经为三个选项卡创建了三个不同片段的滑动选项卡。所有三个选项卡都从webservice获取动态数据。加载时,我的第一个选项卡Tab1显示Tab2数据。FragmentPagerAdapter中的getItem方法被调用两次 @Override public Fragment getItem(int arg0) { switch (arg0) { case 0: return new Tab1;

我已经为三个选项卡创建了三个不同片段的滑动选项卡。所有三个选项卡都从webservice获取动态数据。加载时,我的第一个选项卡Tab1显示Tab2数据。FragmentPagerAdapter中的getItem方法被调用两次

    @Override
    public Fragment getItem(int arg0) {

        switch (arg0) {
            case 0:
                return  new Tab1;
            case 1:
                return new Tab2;
            case 2:
                return new Tab3;
            default:
                break;
        }

如何仅在加载Tab1时加载片段1。

如何仅在加载Tab1时加载片段1。

你不能

我相信您正在使用ViewPager。这是调用getItem()两次的原因。这就是ViewPager的工作原理。它加载上一个片段、当前片段和下一个片段,以便在页面之间平滑滚动

在您的情况下,您在tab1上,所以第一页和第二页被加载(上一页不加载,因为它不存在)

从tab1滚动到tab2时,将加载tab3,依此类推


您可以使用ViewPager.setOffscreenPageLimit设置左侧和右侧将兑现的选项卡数量。但最小值为1,也是默认值。

如何仅在加载选项卡1时加载片段1。

你不能

我相信您正在使用ViewPager。这是调用getItem()两次的原因。这就是ViewPager的工作原理。它加载上一个片段、当前片段和下一个片段,以便在页面之间平滑滚动

在您的情况下,您在tab1上,所以第一页和第二页被加载(上一页不加载,因为它不存在)

从tab1滚动到tab2时,将加载tab3,依此类推


您可以使用
ViewPager.setOffscreenPageLimit设置将兑现左右选项卡的数量,但最小值为1,也是默认值。

这是预期行为。ViewPager会缓存一个附加页面,这没关系。您应该更改逻辑以处理此问题。我的Tab1显示Tab2数据。tab1显示正确数据的任何可能方式(即使附加页面是cachedit)都是预期的行为。ViewPager会缓存一个附加页面,这没关系。您应该更改逻辑以处理此问题。我的Tab1显示Tab2数据。tab1显示正确数据的任何可能方式,即使附加页面已被缓存,我已使用ViewPager。但是我的Tab1没有显示它的数据。它显示Tab2数据。任何解决方案。是的,我用过ViewPager。但是我的Tab1没有显示它的数据。它显示Tab2数据。任何解决办法。