Android——Fragment的使用(上)

一、写在前面

如何理解Fragment?

  • 可以把Fragment理解成一个迷你的活动,其同样拥有布局和生命周期
  • 但Fragment不能脱离activity存在,Fragment是activity的一个组成元素,一个activity可以拥有多个Fragment
  • Fragment的生命周期直接受所在的activity的影响

二、Fragment的生命周期

  • onAttach:当Fragment与Activity发生关联时调用
  • onCreateView:创建该Fragment的视图
  • onActivityCreateed:当Activity的onCreate方法调用完时调用
  • onDetach:Fragment与Activity关联被取消时调用

三、静态使用Fragment

1.什么是静态使用Fragment?能实现什么效果?

静态使用Fragment就相当于把Fragment当作一个普通控件,能够随意添加在任何一个activity的布局中,可以增加代码的复用性!

2.首先建立一个Fragment类

3.找到onCreateView重载方法
在这里插入图片描述

最好把inflater.inflate(R.layout.fragment_fragment1, container, false)这句代码提取成全局变量,其中R.layout.fragment_fragment1就是自动生成的布局文件!

5.进入自动生成的布局文件来设置布局
在这里插入图片描述

6.为Fragment初始化控件和点击事件
在这里插入图片描述
注意:在Fragment里初始化控件跟Activity里有点不一样,需要用view.findViewById()
在这里插入图片描述
此时我们已经完成好了一个fragment前期准备,它已经可以当作一个普通控件添加到Activity中使用!

7.在Activity的布局文件中添加fragment
在这里插入图片描述
这里注意设置好fragment的idname属性,name属性后面跟你的Fragment类的位置,这样一来我们就把4个fragment当作普通控件静态使用在了一个activity中!

效果展示:

二、动态使用Fragment

1.什么是动态使用Fragment?能实现什么效果?

我们可以在同一个activity的container中实现不同的Fragment的添加、替换、删除,进行fragment轮换显示

2.首先给要使用Fragment的Activity的布局中提供一个容器
在这里插入图片描述

可以通过代码实现Fragment在这个容器里面进行添加、替换、移除!

3.在活动的java代码中初始化Fragment
在这里插入图片描述

4.获取Fragment管家、开启Fragment事物

这里的主要方法:

  • getSupportFragmentManager()用来获取Fragment管家
  • manager.beginTransaction()用管家开启事物
  • transaction.replace(容器的idfragment对象)
    在这里插入图片描述

5.FragmentTransaction可以进行的操作

  • transaction.add() 添加指定的fragment
  • transaction.remove() 移除指定的fragment
  • transaction.replace() 替换容器当前显示的fragment(相当于add/remove的结合体)
  • transaction.hide() 隐藏指定的fragment
  • transaction.show() 显示指定的fragment
  • transaction.detach() 会将view从UI中移除,和remove()不同,此时fragment的状态依然由FragmentManager维护
  • transaction.attach() 重建view视图,附加到UI上并显示
  • transaction.commit() 提交一个事物
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值