刷新ActionBar选项卡的碎片

时间:2014-06-02 17:28:58

标签: android android-fragments tabs android-actionbar

我正在编写一个Android应用程序,其中我正在使用带有标签的ActionBar。当用户按下重新加载按钮时,我会删除所有选项卡并根据新数据创建新选项卡。我有一个问题,在我完成这个之后,仍会显示当前片段的旧内容以及ActionBar中左侧和右侧的片段。但是当我去anoter标签时,我看到了新的内容。我试图在ViewPager上调用removeAllViews,但是当我重新加载时,我得到空的碎片。

我想我已经在互联网上看到了类似问题的解决方案,但它是使用TabHost,我不知道如何获得ActionBar的TabHost。

要替换标签,我使用以下代码:

        actionBar.selectTab(actionBar.getTabAt(0));
        actionBar.removeAllTabs();
        for(int i = 0; i < mSectionsPagerAdapter.getCount(); i++)
            actionBar.addTab(actionBar.newTab()
                    .setText(mSectionsPagerAdapter.getPageTitle(i))
                    .setTabListener(MainActivity.this));

actionBar.selectTab(actionBar.getTabAt(0)); actionBar.removeAllTabs(); for(int i = 0; i < mSectionsPagerAdapter.getCount(); i++) actionBar.addTab(actionBar.newTab() .setText(mSectionsPagerAdapter.getPageTitle(i)) .setTabListener(MainActivity.this)); 在我完成这个之后,我仍然看到旧片段的旧内容,所以似乎什么也没发生。但是当我点击另一个Tab时,我得到了其他Tabs Fragment的新内容,当我回到第一个Tab时,它也会刷新内容。

My FragmentPagerAdapter:

public class SectionsPagerAdapter extends FragmentPagerAdapter {

    public SectionsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

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

    @Override
    public int getCount() {
        if(tage != null)
            return tage.getLength();
        return 0;
    }

    @Override
    public CharSequence getPageTitle(int position){
        return tage.item(position).getAttributes().getNamedItem("datum").getTextContent();
    }

}

0 个答案:

没有答案