Android 即时;“重复”;带有actionbar的片段

Android 即时;“重复”;带有actionbar的片段,android,android-fragments,android-actionbar,Android,Android Fragments,Android Actionbar,我在这里读了几篇关于分离和附加的帖子。但应该没问题,因为我运行的是API 15 我从一开始就得到了一个双重列表,如图所示: 我有以下代码: (主要活动) 包装dk.metnik.fragmentandactionbar; 导入android.app.ActionBar; 导入android.app.ActionBar.Tab; 导入android.app.ActionBar.TabListener; 导入android.app.Activity; 导入android.app.Fragment;

我在这里读了几篇关于分离和附加的帖子。但应该没问题,因为我运行的是API 15

我从一开始就得到了一个双重列表,如图所示:

我有以下代码: (主要活动)

包装dk.metnik.fragmentandactionbar;
导入android.app.ActionBar;
导入android.app.ActionBar.Tab;
导入android.app.ActionBar.TabListener;
导入android.app.Activity;
导入android.app.Fragment;
导入android.app.FragmentTransaction;
导入android.os.Bundle;
导入dk.metnik.fragmentandactionbar.fragments.DCIMFragment;
导入dk.metnik.fragmentandactionbar.fragments.ESSFragment;
导入dk.metnik.fragmentandactionbar.fragments.TeamshareFragment;
公共类FragAndBarActivity扩展了活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setupTabs();
}
私有void setupTabs(){
//设置选项卡的操作栏
ActionBar ActionBar=getActionBar();
actionBar.setNavigationMode(actionBar.NAVIGATION\u MODE\u选项卡);
actionBar.setDisplayShowTitleEnabled(false);
选项卡=操作栏
.newTab()
.setText(“DCIM”)
.SetTableListener(
新MyTableListener(这是“DCIM”,
DCIMFragment.class);
actionBar.addTab(tab);
选项卡=操作栏
.newTab()
.setText(“ESS”)
.SetTableListener(
新MyTableListener(这是“ESS”,
(类);
actionBar.addTab(tab);
选项卡=操作栏
.newTab()
.setText(“团队共享”)
.SetTableListener(
新MyTableListener(此为“团队共享”,
TeamshareFragment.class);
actionBar.addTab(tab);
}
公共静态类MyTabListener实现
报业者{
私人碎片;
私人最终活动能力;
私有最终字符串mTag;
私人期末班;
/**
*每次创建新选项卡时使用的构造函数。
* 
*@param活动
*宿主活动,用于实例化片段
*@param标签
*片段的标识符标记
*@param-clz
*片段的类,用于实例化片段
*/
公共MyTableListener(活动、字符串标记、类clz){
活动性=活动性;
mTag=标签;
mClass=clz;
MFFragment=mActivity.getFragmentManager().findFragmentByTag(mTag);
如果(mFragment!=null){/&&!mFragment.isDetached(){
FragmentTransaction ft=mActivity.getFragmentManager()
.beginTransaction();
//ft.分离(mFragment);
ft.移除(mFragment);
ft.commit();
}
}
/*下面是ActionBar.TabListener回调的每个部分*/
已选择的公共事务(选项卡,碎片事务ft){
//检查片段是否已初始化
if(mFragment==null){
//如果不是,则实例化并将其添加到活动中
MFFragment=Fragment.instantiate(mActivity,mClass.getName());
ft.add(R.id.listFragment、MFFragment、mTag);
}否则{
ft.attach(mFragment);
}
}
已选择公共空页(选项卡,碎片事务ft){
if(mFragment!=null){
ft.分离(mFragment);
}
}
已重新选择公共无效页签(页签,碎片事务){
}
}
}
和my main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <fragment
        android:id="@+id/listFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="?android:attr/actionBarSize"/>
</LinearLayout>  

您正在通过layout.xml用片段实例化视图:

<fragment
    android:id="@+id/listFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="?android:attr/actionBarSize"
    class="dk.metnik.fragmentandactionbar.fragments.TeamshareFragment" />


尝试过。当我删除类时,我得到了以下错误:对不起,没有看到一层复杂性,调整了我的答案。
<fragment
    android:id="@+id/listFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="?android:attr/actionBarSize"
    class="dk.metnik.fragmentandactionbar.fragments.TeamshareFragment" />
ft.add(android.R.id.content, mFragment, mTag); 
ft.add(R.id.listFragment, mFragment, mTag);