Android | Fragment

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

Android Fragment

Fragment 概念

Fragment 表示应用界面中可重复的一部分Fragment 定义和管理自己的布局具有自己的生命周期并且可以处理自己的输入事件。fragment 不能独立存在而是必须由 Activity 或另一个 fragment 托管。fragment 的视图层次结构会成为宿主的视图层次结构的一部分或附加到宿主的视图层次结构。

Fragment 生命周期

在这里插入图片描述

  • 运行状态当一个 Fragment 所关联的 Activity 正处于运行状态时该 Fragment 也处于运行状态。
  • 暂停状态当一个 Activity 进入暂停状态时由于另一个未占满屏幕的 Activity 被添加到了栈顶与它相关联的 Fragment 就会进入暂停状态。
  • 停止状态当一个 Activity 进入停止状态时与它相关联的 Fragment 就会进入停止状态或者通过调用 FragmentTransactionremove()replace() 方法将 FragmentActivity 中移除但在事务提交之前调用了 addToBackStack() 方法这时的 Fragment 也会进入停止状态。总的来说进入停止状态的 Fragment 对用户来说是完全不可见的有可能会被系统回收。
  • 销毁状态 Fragment 总是依附于 Activity 而存在因此当 Activity 被销毁时与它相关联的 Fragment 就会进入销毁状态。或者通过调用 FragmentTransactionremove()replace() 方法将 FragmentActivity 中移除但在事务提交之前并没有调用 addToBackStack() 方法这时的 Fragment 也会进入销毁状态。

Activity 中有的回调方法在 Fragmen 中基本都有Fragment 还提供了附加的回调方法。

  • onAttach()FragmentActivity 建立关联时调用。
  • onCreateView()Fragment 创建视图加载布局时调用。
  • onActivityCreated()确保与 Fragment 相关联的 Activity 已经创建完毕时调用。
  • onDestroyView()当与 Fragment 关联的视图被移除时调用。
  • onDetach()FragmentActivity 解除关联时调用。

常见的 Fragment 生命周期变化有以下几种

  • Fragment A 第一次被加载到屏幕上onAttach()onCreate()onCreateView()onActivityCreated()onStart()onResume() 会依次执行。
  • Fragment AFragment B 替代Fragment A 的变化情况onPause()onStop()onDestroyView() 方法会得到执行如果没有调用 addToBackStack() 方法会进入销毁状态onDestroy()onDetach() 方法就会得到执行。
  • 当上述情况改为在 Fragment A 没有被销毁的时按下 BACKFragment A 重新回到屏幕onCreateView()onActivityCreated()onStart()onResume() 会依次执行。
  • 退出程序时onPause()onStop()onDestroyView()onDestroy()onDetach() 方法会依次执行。
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: android