Android加载后添加片段和标签?

时间:2016-02-04 06:31:11

标签: android android-fragments

我有一个FragmentActivity,里面有两个片段和一个滑动标签布局:

String titles[] = new String[] {"Tab One", "Tab Two"};
int numTabs = titles.length;

EventAdapter adapter = new EventAdapter(getSupportFragmentManager(), titles, numTabs);
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(adapter);

SlidingTabLayout sliding_tabs = (SlidingTabLayout) findViewById(R.id.sliding_tabs);
sliding_tabs.setDistributeEvenly(true);
sliding_tabs.setViewPager(pager);

使用FragmentPagerAdapter:

private class EventAdapter extends FragmentPagerAdapter {
    private List<String> titles;
    private int numTabs;

    public void addTab (String title) {
        this.titles.add(title);
        this.numTabs++;
        this.notifyDataSetChanged();
    }

    public EventAdapter(FragmentManager fm, List<String> mTitles, int mNumTabs) {
        super(fm);

        this.titles = mTitles;
        this.numTabs = mNumTabs;
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case 2:
                return new FragThree();
            case 1:
                return new FragTwo();
            default:
                return new FragOne();
        }
    }

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

    @Override
    public int getCount() {
        return numTabs;
    }
}

有些时候,我想动态地将第三个标签添加到此布局中。有没有办法在代码中执行此操作?如您所见,我已经设置了PagerAdapter以捕获第三个选项卡。我只需要加载它......

1 个答案:

答案 0 :(得分:1)

您需要将此方法添加到适配器EventAdapter:

public void addTab (String title) {
    this.titles.add(title);
    // this is the variable returned from getCount method
    this.numbTabs++;
    this.notifyDataSetChanged();
}

主要目的是添加选项卡并调用notifydatasetchanged。 现在在此适配器上调用addTab,将添加对象和选项卡。 在addTab之后执行sliding_tab.setViewPager(this.pager);  如果这样可以解决问题,请接受。