Fragment生命周期和数据绑定

Fragment作为Activity的部分,可在多窗口或多个Activity中复用。本文深入探讨了Fragment的inflate方法区别、生命周期方法,特别是setUserVisibleHint()的懒加载应用,以及数据绑定的常见方法,包括在onCreateView中直接赋值、通过构造方法传参和使用Bundle绑定数据。
摘要由CSDN通过智能技术生成

什么是fragment

Fragment意思为“片段”,它可以表示Activity中的行为或用户界面部分。我们可以在一个Activity中用多个Fragment组合来构建多窗格的UI,以及在多个Activity中重复使用某个Fragment。它有自己的生命周期,能接受自己的输入,并且可以在 Activity 运行时添加或删除Fragment(有点像在不同 Activity 中重复使用的“子 Activity”)。

简单来说,Fragment其实可以理解为一个具有自己生命周期的控件,只不过这个控件又有点特殊,它有自己的处理输入事件的能力,有自己的生命周期,又必须依赖于Activity,能互相通信和托管。

参考:https://blog.csdn.net/sun976649289/article/details/79467577

inflate方法三种重载的区别

参考: https://blog.csdn.net/lmj623565791/article/details/38171465

fragment生命周期方法

  1. setUserVisibleHint()(此方法不属于生命周期方法):设置Fragment 用户可见或不可见时调用此方法,此方法在Fragment所有生命周期执行之前执行。当Fragment 可见状态改变时,将调用此方法。
    获取Fragment的状态可见或不可见,通过调用getUserVisibleHint()方法获取。当Fragment是可见时则进行懒加载操作的。

    方法及参数:setUserVisibleHint(boolean isVisibleToUser)
    

(懒加载操作:只让用户看到的页面才会加载它需要展示的数据,即当Fragment可见时再进行数据加载,以提高效率)

  1. onAttach():将Fragment 对象与Activity关联时,调用onAttach(Context ) 方法(方法onAttach(Activity)高版本已弃用,为兼容低版本用到,高版本适用),
    调用此方法时,Fragment与Activity已完成绑定。

      方法及参数:onAttacth(Context context)
    
  2. onCreate():初始化Fragment,可通过savedInstanceState 获取之前保存的值。

                   方法及参数: onCreate(Bundle savedInstanceState)
    
  3. onCreateView() :初始化Fragment布局,加载布局和findViewById操作通常在此方法中完成,单不建议执行耗时的操作,如获取数据库数据。

                   方法及参数:onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)
    
  4. onActivityCreated():当Fragement 所在的Activity被启动完成后回调此方法,执行该方法时,与Fragment绑定的Activity的onCreate方法已经执行完成并返回,在该方法内可以进行与Activity交互的UI操作,
    所以在该方法之前Activity的onCreate方法并未执行完成,如果提前进行交互操作,会引发空指针异常。

                  方法及参数:onActivityCreated(Bundle savedInstanceState)
    
  5. onStart():启动Fragment 时被回调,Fragment有不可见变为可见状态。此方法在Activity的onStart执行完立即执行,这个方法执行完Fragment界面就立即显示出来,但是还没有获取焦点,用户是不能操作的。

                 方法及参数:onStart()
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值