Fragment 详解

Fragment必须被嵌入Activity中使用,因此虽然Fragment也拥有自己的生命周期,但是会受它所在的生命周期的控制,例如,当Activity暂停时,其当中的所有的Fragment都会被暂停,Activity销毁时,其中所有的Fragment也会被销毁。只有当Activity处于活动状态时,程序员才可以通过独立的方法操作Fragment。

特征:

    1.Fragment总是作为Activity界面的组成部分。Fragment可通过调用getActiavity()方法获得它所在的Activity。Activity可以通过FragmentManager的findFragmentById()或findFragmentByTag()方法来获取Fragment;

    2.Activity运行当中,可以调用FragmentManager的add()\remove()\replace()动态的就那个性添加、删除、或者替换Fragment;

    3.一个Activity可以同时组合多个Fragment:反过来,一个Fragment也可以被多个Activity调用。

    4.Fragment可以响应自己的输入事件,并拥有自己的生命周期,但是被其所属的Activity生命周期控制。

 

创建Fragment:(与Activity类似)

只要将原来写在Activity中的回调方法写在Fragment当中即可。

 

Fragment与Activity通信

  将Fragment添加到Activity中有两种方式:

    》在布局文件中使用<fragment .../>元素添加Fragment,<fragment.../>元素的android:name属性指定Fragment的实现类。

    》在java代码中通过FragmentTransaction对象的add方法来添加Fragment。

 

    Activity的getFragmentManager();方法可返回FragmentManager,FragmentManager的beginTranscation()方法可开启并返回FragmentTranscation对象。

    》Activity向Fragment传递数据:在Activity中创建Bundle数据包,并调用Fragment.setArgument(Bundle bundle)方法,可将bundle传递给Fragment;

    》Fragment向Activity传递数据:在Fragment中定义一个内部回调接口,再让包含该Fragment的Activity实现该回调接口,然后在Fragment中进行回调。

 

Fragment管理与Fragment事务

Activity管理Fragment主要依靠FragmentManager。

    》使用findFragmentById或findFragmnentByTag来获取指定的Fragment。

    》调用popBackStack()方法将Fragment从后台弹出(模拟Back按键)

    》调用addOnBackStackCHangeListener()用于监听后台栈的变化。

    》可以调用FragmentManager的add()\remove()\replace()动态的就那个性添加、

转载于:https://www.cnblogs.com/vvning/p/9412771.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值