Fragment笔记

2020-08-13  本文已影响0人  小李同学今天博学了吗

定义:即为小型的activity,称为activity片段,他开发之初是为了适用于平板。

生命周期:需要依附于activity


截屏2020-08-13 下午9.36.26.png

使用方式:
1.静态方式:及创建一个类继承自Fragment,并重写onCreateView方法,通过在布局中导入这个类既可以显示他的布局

2.动态使用
在activity中定义一个布局,之后new 自定义的 Fragment,通过getSupportFragmentManager来得到事物,即FragmentTransaction,使用里面的hide()、add()、replace方法等来进行动态增加、减少、替换等操作

transaction.add() 向Activity中添加一个Fragment
transaction.remove() 从Activity中移除一个Fragment,如果被移除的Fragment 没有添加到回退栈(回退栈后面会详细说),这个Fragment实例将会被销毁 transaction.replace() 使用另一个Fragment替换当前的,实际上就是remove() 然后add()的合体
transaction.hide() 隐藏当前的Fragment,仅仅是设为不可见,并不会销毁 transaction.show() 显示之前隐藏的Fragment
detach() 会将view从UI中移除,和remove()不同,此时fragment的状态依然由 FragmentManager维护
attach() 重建view视图,附加到UI上并显示
ransatcion.commit() 提交事务

3.回退栈:就是将fragment添加到栈里面去,当按返回键时可以显示前一个布局,tx.addToBackStack()方法就是当单签的事物添加到返回栈,这里需要注意一点,当事物调用replace方法时,会remove当前fragment,之后返回会重新创建该fragment,如果使用add的话就会保留该fragment

4.Fragment与Activity直接的通信
4.1 Activity可以通过引用的方式,直接访问fragment里面的public 方法
4.2 通过getFragmentManager.findFragmentByTag()获得Fragment的引用
4.3Fragment可以通过getActivity得到当前绑定的activity实例
4.4通过接口回调进行通讯

上一篇下一篇

猜你喜欢

热点阅读