gpt4 book ai didi

android - 如何使 Fragment Host 中的特定选项卡具有多个 fragment 导航,如 tabgroupactivity

转载 作者:行者123 更新时间:2023-11-29 00:29:47 24 4
gpt4 key购买 nike

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

标签1 ---> fragment 1--> fragment 2

选项卡2 ---> fragment 3

选项卡3 ---> fragment 4---> fragment 5

我用过 fragmentTransaction.add()、fragmentTransaction.remove()、fragmentTransaction.replace()。这三种方法都没有给出解决办法。

Replace 方法在现有 fragment View 之上显示新的 fragment View 。

RemoveAdd,从这两个中remove 才有效,add 无效。

提前致谢。

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);

}

fragment 3.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 上已经多次讨论了每个选项卡中不同 fragment 导航堆栈的概念,例如一个例子:

Separate Back Stack for each tab in Android using Fragments

无需管理您自己的自定义导航返回堆栈即可实现此目的的一种简单/粗略的方法是在每个选项卡下都有一个根 fragment ,然后每当根 fragment 想要导航到另一个 fragment ( fragment B)时,只需显示一个新Activity最初使用 fragment B,该 Activity 将有自己的 fragment 导航返回堆栈。

Tab1 --->root frag1 --> Activity(自己的导航返回栈)--> frag2

Tab2 --->root frag3

Tab3 --->root frag4 --> Activity(自己的导航返回栈)--> frag5 --> frag6 --> frag7

执行类似操作的应用示例实际上是 StackAnywhere应用程序。它大量使用选项卡,但当您在这些选项卡内导航时,它通常会将导航移动到新的 Activity。然而,采用这种方法的 YMMV。

关于android - 如何使 Fragment Host 中的特定选项卡具有多个 fragment 导航,如 tabgroupactivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16558193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com