【问题标题】:How to add Fragment to the middle of FragmentStatePagerAdapter如何将 Fragment 添加到 FragmentStatePagerAdapter 的中间
【发布时间】:2014-10-08 01:31:12
【问题描述】:

我想用 PagerSlidingTabStrip 将 Fragment 添加到 FragmentStatePagerAdapter 的中间。但是我只能在适配器的末尾添加新的 Fragnent。代码如下:

public class TabsPagerAdapter extends FragmentStatePagerAdapter {
    private ArrayList<String> TABS = new ArrayList<String>();

    public TabsPagerAdapter(FragmentManager fm) {
        super(fm);
        TABS.add("First");
        TABS.add("Second");
        TABS.add("Third");
    }


    @Override
    public Fragment getItem(int position) {
        return CardFragment.newInstance(position);
    }

    @Override
    public Parcelable saveState() {
        return super.saveState();
    }

    @Override
    public int getCount() {
        return TABS.size();
    }


    @Override
    public String getPageTitle(int position) {
        return TABS.get(position);
    }


}

这是我添加新片段的地方

adapter.TABS.add(1, "ffff");

adapter.notifyDataSetChanged();

int k = viewPager.getCurrentItem();
viewPager.setCurrentItem(k + 1);

pagerSlidingTabStrip.notifyDataSetChanged();

【问题讨论】:

    标签: android android-fragments fragmentstatepageradapter pagerslidingtabstrip


    【解决方案1】:

    我遇到了类似的问题,我通过在setCurrentItem之前再次调用setAdapter()来解决它,否则它永远不会更新,直到列表滚动到索引middleIndex+2:

    viewPager.setAdapter(adapter);
    viewPager.setCurrentItem(middleIndex);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多