如何使FragmentTabHost特定选项卡有多个片段导航像tabgroupactivity(Ho

2019-09-03 07:08发布

我创建使用FragmentTabHost三个选项卡。 现在我需要让所有的导航都压片下。 我怎样才能得到这一点。 我需要什么,我们开始使用TabGroupActivity。

TAB1 ---> frag1 - > frag2

TAB2 ---> frag3

TAB3 ---> frag4 ---> frag5

我已经使用fragmentTransaction.add(),fragmentTransaction.remove(),fragmentTransaction.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;
    }

Answer 1:

在每个标签不同片段导航栈的概念已经被讨论了计算器好几次,例如一个示例:

单独返回堆栈使用片段在Android中每个选项卡

实现这一目标,而无需管理自己的自定义导航回栈的一个简单/粗暴的方式是让每个选项卡下的根片段,然后每当根片段想要导航到另一个片段(片段B)简单地展现出新的活动开始与B片段和活动都会有自己的片段导航回栈。

TAB1 --->根frag1 - >活性(自己的NAV回栈) - > frag2

TAB2 --->根frag3

TAB3 --->根frag4 - >活性(自己的NAV回栈) - > frag5 - > frag6 - > frag7

一个应用程序,并像这样的例子其实是StackAnywhere应用。 它大量使用了标签,但是当你这些选项卡中导航一般移动导航到一个新的活动。 因人而异这种方法,但是。



文章来源: How to make particular tab in FragmentTabHost has multiple fragment navigations like tabgroupactivity