Fragment

wenxiHuang / 文 发表于2017-08-02 22:07 第次阅读 fragment

[键入文档标题]

Fragment

起因

写这篇文章的原因是不知道为什么要在Fragment的构造函数被调用之后需要立即调用Fragment的setArgment()函数,官方也无介绍。好记性不如烂笔头!

调用setArgment()对Fragment的生命周期函数调用的影响

      在构造函数被调用之后调用setArgment():

code_1.PNG

    Fragment生命周期函数调用情况:  Fragment_setargment.PNG

不调用setArgment()对Fragment的生命周期函数调用的影响

     在构造函数被调用之后调用setArgment(): code_2.PNG

     Fragment生命周期函数调用情况:  

Fragment_nosetargment.PNG

onAttach()

当Fragment和Activity关联时调用

Called when the fragment has been associated with the activity (the Activity is passed in here).

onCreate()

系统创建Fragments 时调用,可做执行初始化工作或者当程序被暂停或停止时用来恢复状态,跟Activity 中的onCreate相当。

The system calls this when creating the fragment. Within your implementation, you should initialize essential components of the fragment that you want to retain when the fragment is paused or stopped, then resumed.

onCreateView()

用于首次绘制用户界面的回调方法,必须返回要创建的Fragments 视图UI。假如你不希望提供Fragments 用户界面则可以返回NULL。

The system calls this when it's time for the fragment to draw its user interface for the first time. To draw a UI for your fragment, you must return a View from this method that is the root of your fragment's layout. You can return null if the fragment does not provide a UI.

onViewCreated()

当onCreateView的View创建成功。

onActivityCreated()

当与Fragment关联的Activity创建后调用



总结:

1:在Fragment构造函数之后不调用setArgment()函数,Fragment只会调用onAttach()方法。

2:在Fragment被add,remove等操作并commit()返回后,Fragment的onAttach()方法才会被调用。

3:综上,setArgment()方法在Fragment被add,remove等操作前就得被调用。


收藏 赞 (1) 踩 (0)