永发信息网

如何在现有fragment上添加另一个fragment

答案:1  悬赏:10  手机版
解决时间 2021-03-09 20:39
如何在现有fragment上添加另一个fragment
最佳答案
首先,我认为值得一提的是......
  "你不能替换静态定义的布局文件中的一个片段。您仅可替换你动态地添加通过 FragmentTransaction 的片段"
  请参阅
  Android: 不能替换另一个的一个片段
  如何显示一个选项卡内的一个新片段?
  这里是解决方案。
  在 home_activity.xml,你应该离开空你 tabcontent。
     android:id="@+id/tabcontent"
  android:layout_width="match_parent"
  android:layout_height="0dp"
  android:layout_weight="1" />
  您的 Home_Activity
  private FragmentTabHost mHost;

  public void changeFragment() {
  FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
  EntertainmentFragment enFragment = new EntertainmentFragment();
  ft.replace(R.id.tabcontent, enFragment);
  ft.commit();
  }

  @Override
  protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  mHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
  mHost.setup(this, getSupportFragmentManager(), R.id.tabcontent);
  mHost.addTab(mHost.newTabSpec("School")
  .setIndicator("School"), SchoolFragment.class, null);
  mHost.addTab(mHost.newTabSpec("Sport")
  .setIndicator("Sport"), SportsFragment.class, null);
  }
  在您的 onIemClick (Sports_Fragment),添加这
  MainActivity mainAct = (MainActivity)getActivity();
  mainAct.changeFragment();
  我充分的项目,基于您的代码,是在这里。
  我还没有机会真的检查 TabHost 为什么不工作时我测试您的代码。但FragmentTabHost的作品对我很好。
  编辑: 若要修复重叠问题,您可以设置 OnTabChangeListener:
  mHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {

  @Override
  public void onTabChanged(String tabId) {
  // TODO Auto-generated method stub
  if (tabId.equalsIgnoreCase("School")) {
  Log.v(TAG, "school");
  FragmentTransaction ft = getSupportFragmentManager()
  .beginTransaction();
  schoolFrag = new SchoolFragment();
  ft.replace(R.id.tabcontent, schoolFrag);
  ft.commit();
  }
  if (tabId.equalsIgnoreCase("Sport")) {
  Log.v(TAG, "Sport");
  FragmentTransaction ft = getSupportFragmentManager()
  .beginTransaction();
  SportsFragment sportFrag = new SportsFragment();
  ft.replace(R.id.tabcontent, sportFrag);
  ft.commit();
  }
  }

  });
  关于 backpress,您可以尝试
  ft.addToBackStack(null);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
仿写“初入草原,听不见一点声音,也看不见什么
【线的拼音】线的拼音是什么
名侦探柯南剧场版1-19百度云
中国残疾人联合会-地下停车场我想知道这个在
请问,关于网上购物,比如说在淘宝网上 当我选
古代四品官印值多少钱
420分之41等于几分之1加几分1 10100/201=()/
唐诗三百首里面有春江花月夜吗
老吕建材装饰这个地址在什么地方,我要处理点
阴阳师年兽一天能打多少次
日本代购化妆品排行榜揭晓,日本哪些化妆品值
360公斤大桶多少升
浚县西屯村拆迁这个村有什么大变化吗
起亚k3开大灯,导航下面按键是不是都会亮灯,
蔡家湾地址在什么地方,想过去办事
推荐资讯
张学良为什么归顺蒋介石
鲜上鲜这个地址在什么地方,我要处理点事
希捷250G串口硬盘有吱吱声
Nvidia GeForce 6150SE nForce 430 这个显卡
为什么我的GTS450 跑分才7154分? CPU是 AMD
邮政储蓄银行什么时候人最少 省排
我喜欢的女朋友是我亲叔百舅舅家的女儿!!!
乾隆四十六年离至今有多少年的历史
北极熊生活在冰天雪地的环境里,它们的身体就
喝酒(白酒)以后大概多长时间可以开车不被检
小吃店例如一天营业额500一月地税会交多少钱
嫁接睫毛可以保持多久
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?