Android 如何在FragmentTabHost中创建特定选项卡具有多个片段导航,如tabgroupactivity
我使用FragmentTabHost创建了三个选项卡。现在我需要让所有的导航都在标签下面。我怎样才能得到这个。我需要使用TabGroupActivity获得我们所获得的 表1 --->frag1-->frag2 表2 --->frag3 表3 --->frag4--->frag5 我使用了fragmentTransaction.add()、fragmentTransaction.remove()、fragmentTransaction.replace()。这三种方法都不能解决问题 Replace方法在现有片段视图的顶部显示新片段视图 删除和添加,从这两个仅删除有效,添加无效 提前谢谢 TabHostMain.javaAndroid 如何在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
@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。可以从这个演示应用程序中获得解决方案。