android fragment

本文详细介绍了Android中Fragment的生命周期,包括关键方法如onAttach、onCreateView、onActivityCreated等的作用及调用时机。同时,还提供了Fragment管理的核心类与API说明,如FragmentManager、FragmentTransaction的使用方法,并附带注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Fragment的生命周期






onAttach(Activity)
当Fragment与Activity发生关联时调用。
onCreateView(LayoutInflater, ViewGroup,Bundle)
创建该Fragment的视图
onActivityCreated(Bundle)
当Activity的onCreate方法返回时调用
onDestoryView()
与onCreateView想对应,当该Fragment的视图被移除时调用
onDetach()
与onAttach相对应,当Fragment与Activity关联被取消时调用


Fragment常用的三个类:

android.app.Fragment 主要用于定义Fragment

android.app.FragmentManager 主要用于在Activity中操作Fragment

android.app.FragmentTransaction 保证一些列Fragment操作的原子性


Fragment常用的API

获取FragmentManage的方式:

getFragmentManager() 
FragmentTransaction的方法:

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上并显示。
transatcion.commit()     //提交一个事务
FragmentTransaction.addToBackStack(String)
添加一个Fragment事务到回退栈


注意:
Activity状态不一致:State loss这样的错误。主要是因为:commit方法一定要在Activity.onSaveInstance()之前调用。


Fragment与Activity通信:
1:Activity中包含自己管理的Fragment的引用,可以通过引用直接访问所有的Fragment的public方法
2: 每个Fragment都有一个唯一的TAG或者ID,可以通过
3: Fragment中可以通过getActivity得到当前绑定的Activity的实例,然后进行操作


Fragmeny与ActionBar和MenuItem集成:
1: 在Fragment的onCreate中调用 setHasOptionsMenu(true);
2: 在Fragment子类中实现onCreateOptionsMenu
3: 在Fragment中处理MenuItem的点击,也可以实现onOptionsItemSelected;(Activity也可以直接处理该MenuItem的点击事件)


没有布局的Fragment的作用:
没有布局文件Fragment实际上是为了保存,当Activity重启时,保存大量数据准备的


动态,静态使用fragment:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值