一起Talk Android吧(第四十二回:Android中的Fragment七-动态加载)


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


看官们,我们在上一章回中介绍了在Activity中静态加载Fragment,这一回中我们将介绍在Activity中动态加载Fragment。明白静态加载Fragment的方法后,理解动态加载Fragment会容易很多。接下来,我们将详细的介绍如何动态加载Fragment。

首先我们要创建一个Fragment的布局文件,布局文件的创建方法以及里面的内容和Activity的布局文件完全相同,因此我们不做详细的介绍。这点和静态加载Fragment完全一样。有了布局以后,我们就需要添加与布局文件匹配的逻辑文件。这点也和静态加载Fragment完全一致。

接下来就是把Fragment和Activity关联起来,关联的方法比较简单:在Activity的布局文件中使用布局标签把刚才创建的Fragment布局文件包含进来就可以,至于使用哪种布局标签,没有专门的规定,通常使用LinearLayout标签的时候比较多。大家看看,这种包含方法和使用普通的布局文件一样,也就是说把Fragment当作了普通的布局文件,是不是比较简单?

哈哈,不要被简单冲昏了头脑,动态加载Fragment的关键步骤来了:在Activity的代码中使用FragmentManager的相关方法来加载Fragment,至于相关方法是什么,我们在代码中会说明。这么泛泛的说,可能有些杂乱,特别是关键的步骤中提到的方法也没有详细介绍,看官们估计要不高兴了。接下来,我把上面的内容条理化,并且加以具体的代码来辅助说明。

  • 1.创建一个名为frag_test的布局文件,该文件就是Fragment的布局文件,至于布局文件中的内容,可以自己去定义;

  • 2.创建一个名为FragmentTest的类,该类继承自Fragment,接着重写该类的onCreateView方法, 具体的代码为:

public class FragmentTest extends Fragment { 

  //重写onCreateView方法
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
  {
    View view = inflater.inflate(R.layout.frag_test,container,false); //frag_test就是刚才创建的布局文件
    return view;
  }
    //override other callback
}

这个步骤可以简称为创建Fragment的逻辑文件。

  • 3.通过修改Activity的布局文件,使用布局标签把刚才创建的Fragment和Activity关联起来,具体的代码为:
<LinearLayour ...>    //这是Avtivity的布局文件
    <LinearLayour //使用LinearLayour标签或者其它布局标签都可以,比如RelativeLayout。
        android:id=old_frag_test //这个不可少,算是Fragment的“身份证”
        ....  //其它长度,宽度等大小属性省略不写
    />
</LinearLayour> 
  • 4.在Activity的代码中使用FragmentManager的相关方法来加载Fragment.
FragmentManager fm = getSupportFragmentManager();       //获取FragmentManager
FragmentTransaction transaction = fm.beginTransaction();    //开始FragmentManager的事务
transaction.add(R.id.old_frag_test,new FragmentTest);       //添加FramentTest到old_frag_test所在的位置
transaction.replace(R.id.old_frag_test,new FragmentTest);   //把old_frag_test所在位置的内容替换为FramentTest
transaction.commit();                       //提交事务

关于步骤4中的代码需要做一些说明:

  • 这段代码通常放在Activity的onCreate方法中。
  • add或者replace方法都可以加载Fragment,选用其中一个就可以。
  • 代码中的old_frag_test是步骤3中添加的,它在Activity的布局文件中占据了一个位置,这个位置是专门用来显示Fragment的,至于显示哪个Fragment,我们没有在布局文件中说明,而是在Activity的代码中进行了说明,怎么说明的?大家看看add或者replace方法的参数,第一个参数就是Activity布局文件中留给Fragment的位置,第二个参数就是即将要显示的Fragment,在代码中我们显示的是步骤2中创建的Fragment即FragmentTest
  • 此外,该代码中使用事务,目的是保证加载Fragment的操作具有原子性。

看官们,以上就是如何在Activity中加载Fragment的方法,因为这种方法不是在Activity的布局文件中加载Fragment,而是在Activity的代码中加载Fragment,因此我们习惯叫它动态加载。

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


基于SSM框架的智能家政保洁预约系统,是一个旨在提高家政保洁服务预约效率和管理水平的平台。该系统通过集成现代信息技术,为家政公司、家政服务人员和消费者提供了一个便捷的在线预约和管理系统。 系统的主要功能包括: 1. **用户管理**:允许消费者注册、登录,并管理他们的个人资料和预约历史。 2. **家政人员管理**:家政服务人员可以注册并更新自己的个人信息、服务类别和服务时间。 3. **服务预约**:消费者可以浏览不同的家政服务选项,选择合适的服务人员,并在线预约服务。 4. **订单管理**:系统支持订单的创建、跟踪和管理,包括订单的确认、完成和评价。 5. **评价系统**:消费者可以在家政服务完成后对服务进行评价,帮助提高服务质量和透明度。 6. **后台管理**:管理员可以管理用户、家政人员信息、服务类别、预约订单以及处理用户反馈。 系统采用Java语言开发,使用MySQL数据库进行数据存储,通过B/S架构实现用户与服务的在线交互。系统设计考虑了不同用户角色的需求,包括管理员、家政服务人员和普通用户,每个角色都有相应的权限和功能。此外,系统还采用了软件组件化、精化体系结构、分离逻辑和数据等方法,以便于未来的系统升级和维护。 智能家政保洁预约系统通过提供一个集的平台,不仅方便了消费者的预约和管理,也为家政服务人员提供了一个展示和推广自己服务的机会。同时,系统的后台管理功能为家政公司提供了强大的数据支持和决策辅助,有助于提高服务质量和管理效率。该系统的设计与实现,标志着家政保洁服务向现代化和网络化的转型,为管理决策和控制提供保障,是行业发展的重要里程碑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

talk_8

真诚赞赏,手有余香

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

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

打赏作者

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

抵扣说明:

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

余额充值