一起Talk Android吧(第五十一回:Android中的Fragment嵌套二)

本文详细介绍了Android中Fragment的动态嵌套方法,包括创建布局文件、实现onCreateView方法及如何通过代码动态加载子Fragment等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


各位看官们,大家好,上一回中咱们说的是Android中Fragment的例子,这一回咱们继续说该例子。闲话休提,言归正转。让我们一起Talk Android吧!


看官们,我们在上一回中提到了Fragment的两种嵌套方法:静态嵌套和动态嵌套,并且介绍了静态嵌套Fragment的方法,这一回中我们将介绍动态嵌套Fragment的方法。

动态嵌套Fragment的方法和动态加载Fragment的方法类似,也是在父Fragment的布局文件中给子Fragment预留一个位置,然后在父Fragment的代码中通过代码来加载子Fragment,总体的思想就是这样,具体的细节我们将结合代码来说明。

  • 1.创建一个名为frag_a的布局文件,该文件就是FragmentA的布局文件,至于布局文件中的内容,可以自己去定义;
  • 2.创建一个名为FragmentA的类,该类继承自Fragment,接着重写该类的onCreateView方法, 具体的代码为:
public class FragmentB extends Fragment { 

  //重写onCreateView方法
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
  {
    View view = inflater.inflate(R.layout.frag_a,container,false); //frag_a就是刚才创建的布局文件
    return view;
  }
    //override other callback
}
这两个步骤创建了FragmentA的布局文件和逻辑文件,我们把它当作父Fragment,再用同样的方法创建子Fragment,我们叫它FragmentB。
  • 3.通过修改FragmentA的布局文件,使用布局标签把刚才创建的FragmentA和FragmentB关联起来,具体的代码为:
<LinearLayour ...>    //这是FragmentA的布局文件
    <Fragment    //使用Fragment标签或者其它布局标签都可以,比如LinearLayout。
        android:id=frag_son_container   //这个不可少,它是父Fragment给子Fragment预留的位置
        ....  //其它长度,宽度等大小属性省略不写
    />
</LinearLayour> 
  • 4.在FragmentA的onCreateView()方法中使用FragmentManager的相关方法来加载FragmentB.
FragmentManager fm = getchildFragmentManager();           //首先需要获取FragmentManager
FragmentTransaction transaction = fm.beginTransaction();  //开始FragmentManager的事务
transaction.add(R.id.frag_son_container,new FragmentB()); //添加FramentB到Fragment给它预留的位置
transaction.commit();                                     //提交事务

看官们,看完这个代码细节后是不是觉得动态嵌套Fragment和动态加载Fragment十分类似?是的,仔细对比一下就会发它们的不同之处只有一点:获取FragmentManager的方法不同。动态嵌套Fragment使用的是FragmentgetchildFragmentManager()方法,而动态加载Fragment使用的是ActivitygetSupportFragmentManager()方法。类不同其方法自然也不同,大家使用的时候不要混淆就可以。

此外,我们在这里没有写出Activity的布局文件,FragmentA和FragmentB是不能单独使用的,它需要加载到Activity中,至于使用静态加载还是动态加载,我们不关心,因为使用哪种方式都一样。这和静态嵌套方法中的处理方式一样。

各位看官,关于Android中Fragment的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值