FragmentManager API

FragmentManager

Class Overview

Summary

Nested Classes
interfaceFragmentManager.BackStackEntry表达了回退栈事件的实体,如调用FragmentTransaction.addToBackStack().
interfaceFragmentManager.OnBackStackChangedListener监听回退栈变更接口

Constants

Constants
POP_BACK_STACK_INCLUSIVE
ConstantsValue= 0x00000001
针对 popBackStack(String, int) 与 popBackStack(int, int)设置的Flag常量; 若设置后则需提供BackStackEntry的 name 与 ID,之后FragmentManager 中所有与所提供的 name 或者 ID相匹配的BackStackEntry均会被消费掉,直至不存在匹配项或当前已是栈底。

Public Methods

Public Methods
beginTransaction()将 Fragment 关联到FragmentManager ,标记对事务的编辑处于开始状态。
Note: A fragment transaction can only be created/committed prior to an activity saving its state.
If you try to commit a transaction after FragmentActivity.onSaveInstanceState()
(and prior to a following FragmentActivity.onStart or FragmentActivity.onResume(), you will get an error.
This is because the framework takes care of saving your current fragments in the state,
and if changes are made after the state is saved then they will be lost.
dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args)FragmentManager的当前状态使用指定流输出。
enableDebugLogging(boolean enabled)控制框架的内部FragmentManager是否打开调试日志。
executePendingTransactions()调用FragmentTransaction.commit()方法提交事务后,紧接着会执行该方法。
注意: 它在主线程调用,并在异步线程中执行。
findFragmentById(int id)当事务被提交后,可以使用给定的 ID来,
或在 XML中指定Fragment(硬编码),或是从指定的 container ID中匹配Fragment。
findFragmentByTag(String tag)当事务被提交后,可以使用给定的 Tag来,
或在 XML中指定Fragment(硬编码),或是从指定的 container ID中匹配Fragment。
getBackStackEntryAt(int index)给定 index 获取BackStackEntry
注意:index 表示在回退栈中下标,并且0表示当前处于回退栈的底部。
getBackStackEntryCount()返回当前回退栈内持有BackStackEntry的实例个数。
getFragment(Bundle bundle, String key)检索当前Fragment的实例,前置条件是已经调用putFragment(Bundle, String, Fragment)存放实例。
isDestroyed()此处理解可能有误,敬请请各位指正。
当前 FragmentManager所附加的 Activity.onDestroy()执行后,
同时也表示当前的实例正式死亡。
popBackStack()栈顶出栈。
popBackStack(String name, int flags)从管理器的Fragment回退堆栈中把最后放入的由name参数所指定的Fragment对象弹出。
这个函数是异步的,它会按照请求的顺序来执行弹出操作,
但是直到应用程序把控制权返回给事件循环之后,才会执行这个操作。
popBackStack(int id, int flags)把给定ID标识所指定的状态之上的所有状态都弹出回退堆栈。
这个方法是异步,它会按照请求的顺序来执行弹出操作。
但是直到应用程序把控制权返回个事件循环之后才会执行这个操作。
popBackStackImmediate(int id, int flags)与 popBackStack(int, int)作用一致,唯一区别该方法立即执行。
popBackStackImmediate(String name, int flags)与 popBackStack(String, int)作用一致,唯一区别该方法立即执行。
popBackStackImmediate()与 popBackStack()作用一致,唯一区别该方法立即执行。
putFragment(Bundle bundle, String key, Fragment fragment)把一个指定的Fragment对象放入一个Bundle对象中。
这个Bundle对象能够作为持久的状态来保存,并且在后续的调用getFragment(Bundle, String)方法来恢复的时候,
它会返回一个与当前实例相同的Fragment对象。
saveFragmentInstanceState(Fragment f)
保存给定的Fragment对象的当前状态。
在创建一个新的Fragment对象实例,并且把它添加到Fragment管理器中之后,
能够使用这个方法来创建一个跟Fragment对象的当前状态匹配的状态对象。
注意以下限制:
1. Fragment对象必须跟当前的FragmentManager对象绑定;
2. 使用这个被保存的状态来创建一个新的Fragment对象,必须与创建这个状态的Fragment对象有相同的类类型。
3. 被保存的状态不能包含对其他的Fragment对象依赖。
也就是说,不能使用putFragment(Bundle, String, Fragment)方法来保存一个Fragment对象的引用,
因为这个引用这个引用在后续使用时可能是无效的。
同样Fragment对象的目标和结果代码也不能包含在这个要保存的状态中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值