Android 如何在FragmentTabHost中创建特定选项卡具有多个片段导航,如tabgroupactivity

Android 如何在FragmentTabHost中创建特定选项卡具有多个片段导航,如tabgroupactivity,android,android-fragments,android-fragmentactivity,Android,Android Fragments,Android Fragmentactivity,我使用FragmentTabHost创建了三个选项卡。现在我需要让所有的导航都在标签下面。我怎样才能得到这个。我需要使用TabGroupActivity获得我们所获得的 表1 --->frag1-->frag2 表2 --->frag3 表3 --->frag4--->frag5 我使用了fragmentTransaction.add()、fragmentTransaction.remove()、fragmentTransaction.replace()。这三种方法都不能解决问题 Replace

我使用FragmentTabHost创建了三个选项卡。现在我需要让所有的导航都在标签下面。我怎样才能得到这个。我需要使用TabGroupActivity获得我们所获得的

表1 --->frag1-->frag2

表2 --->frag3

表3 --->frag4--->frag5

我使用了fragmentTransaction.add()、fragmentTransaction.remove()、fragmentTransaction.replace()。这三种方法都不能解决问题

Replace方法在现有片段视图的顶部显示新片段视图

删除添加,从这两个仅删除有效,添加无效

提前谢谢

TabHostMain.java

    @Override
    protected void onCreate(Bundle savedInstanceState)
 {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.bottom_tabs);

mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
                mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
            View view;
    view=getTabView(R.drawable.ic_launcher);

    Bundle b = new Bundle();
    b.putString("key", "Simple");
    mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator(view),Fragment1.class, null);

    b = new Bundle();
    b.putString("key", "Contacts");
    view=getTabView(R.drawable.ic_launcher);
    mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator(view), Fragment2.class, null);

    b = new Bundle();
    b.putString("key", "Custom");
    view=getTabView(R.drawable.ic_launcher);
    mTabHost.addTab(mTabHost.newTabSpec("custom").setIndicator(view),Fragment3.class, null);

}
Fragment3.java

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {

        View view=LayoutInflater.from(getActivity()).inflate(R.layout.activity_second, null);

        ((TextView)view.findViewById(R.id.second_act_text)).setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                FragmentManager fm=getChildFragmentManager();
                FragmentTransaction fragmentTransaction=fm.beginTransaction();
                fragmentTransaction.replace(R.id.second_activity, new Fragment1()).addToBackStack(null).commit();
            }
        });
        return view;
    }

关于stackoverflow,每个选项卡中不同片段导航堆栈的概念已经讨论了很多次,例如:

实现这一点而不必管理自己的自定义导航回栈的一种简单/粗略的方法是在每个选项卡下都有一个根片段,然后每当根片段想要导航到另一个片段(片段B)时,只需使用片段B显示一个新的初始片段,该活动将有自己的片段导航回栈

表1-->根frag1-->活动(自有导航回栈)--->frag2

表2--->根框架3

表3-->根frag4-->活动(自身导航回栈)--->frag5-->frag6-->frag7


应用程序的一个例子就是这个应用程序。它大量使用选项卡,但当您在这些选项卡中导航时,通常会将导航移动到新活动。然而,使用这种方法的YMMV。

可以从这个演示应用程序中获得解决方案。