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类
在这里插入图片描述
此时会自动给你生成一个对应的布局和许多重载方法在fragment类里面

3.删掉onAttach重载方法里面的内容(不然会闪退)
在这里插入图片描述

4.找到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,可以实现导航页面,很平滑自然地跳转页面。

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() 提交一个事物
发布了7 篇原创文章 · 获赞 0 · 访问量 1698

猜你喜欢

转载自blog.csdn.net/k909397116/article/details/105767276