Android 片段替换为ActionBar选项卡中的ViewPager

Android 片段替换为ActionBar选项卡中的ViewPager,android,android-fragments,android-actionbar,android-viewpager,Android,Android Fragments,Android Actionbar,Android Viewpager,我有带有查看寻呼机功能的ActionBar选项卡。我的问题是在这些选项卡中,我无法替换碎片。我使用下面的代码替换片段,但它没有替换,主要片段保留下来。此外,在其他选项卡中还存在第二个片段。我的TabListener也在下面替换片段 private void addFragment(Fragment fragment, boolean addToBackStack, int transition) { FragmentTransaction fragmentTransaction = ge

我有带有查看寻呼机功能的ActionBar选项卡。我的问题是在这些选项卡中,我无法替换碎片。我使用下面的代码替换片段,但它没有替换,主要片段保留下来。此外,在其他选项卡中还存在第二个片段。我的TabListener也在下面替换片段

private void addFragment(Fragment fragment, boolean addToBackStack, int transition)
{
    FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
    fragmentTransaction.replace(R.id.details_container, fragment);
    fragmentTransaction.setTransition(transition);
    fragmentTransaction.addToBackStack(null);
    fragmentTransaction.commit();
}

公共静态类TabsAdapter扩展了FragmentPagerAdapter
实现ViewPager.OnPageChangeListener、ActionBar.TablListener{
私有最终上下文mContext;
私人最终行动律师工商管理硕士;
专用最终查看页面mViewPager;
private final ArrayList mtab=new ArrayList();
静态最终类TabInfo{
私人期末班;
私有最终包args;
TabInfo(类_类,捆绑参数){
clss=_类;
args=_args;
}
}
公共选项卡dapter(片段活动、操作栏、ViewPager寻呼机){
super(activity.getSupportFragmentManager());
mContext=活动;
毫巴=巴;
mViewPager=寻呼机;
mViewPager.setAdapter(此);
mViewPager.setOnPageChangeListener(此);
}

public void addTab(ActionBar.Tab选项卡,Class我建议您通读整个主题并查看中的示例

public static class TabsAdapter extends FragmentPagerAdapter
        implements ViewPager.OnPageChangeListener, ActionBar.TabListener {
    private final Context mContext;
    private final ActionBar mBar;
    private final ViewPager mViewPager;
    private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();

    static final class TabInfo {
        private final Class<?> clss;
        private final Bundle args;

        TabInfo(Class<?> _class, Bundle _args) {
            clss = _class;
            args = _args;
        }
    }

    public TabsAdapter(FragmentActivity activity, ActionBar bar, ViewPager pager) {
        super(activity.getSupportFragmentManager());
        mContext = activity;
        mBar = bar;
        mViewPager = pager;
        mViewPager.setAdapter(this);
        mViewPager.setOnPageChangeListener(this);
    }

    public void addTab(ActionBar.Tab tab, Class<? extends Fragment> clss, Bundle args) {
        TabInfo info = new TabInfo(clss, args);
        tab.setTag(info);
        tab.setTabListener(this);
        mTabs.add(info);
        mBar.addTab(tab);
        notifyDataSetChanged();
    }

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

    @Override
    public Fragment getItem(int position) {
        TabInfo info = mTabs.get(position);
        return Fragment.instantiate(mContext, info.clss.getName(), info.args);
    }

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
    }

    @Override
    public void onPageSelected(int position) {
        mBar.setSelectedNavigationItem(position);
    }

    @Override
    public void onPageScrollStateChanged(int state) {
    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        Object tag = tab.getTag();
        for (int i=0; i<mTabs.size(); i++) {
            if (mTabs.get(i) == tag) {
                mViewPager.setCurrentItem(i);
            }
        }
    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {

    }

    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {

    }
}