004_Fragment-FragmentManager 翻译学习

FragmentManager(Added in API level 11)

官方:http://developer.android.com/reference/android/app/FragmentManager.html

类信息: java.lang.Object android.app. FragmentManager

简介:

用来管理Fragment对象,Activity都有一个自己的FragmentManager对象。

公共方法:

1、   public abstract void addOnBackStackChangedListener (FragmentManager.OnBackStackChangedListenerlistener)

添加一个Fragment回退栈监听器,用于监听回退栈发生的变化。

2、   public abstract FragmentTransaction beginTransaction ()

返回一个FragmentTransaction对象,以执行一连串的Fragment操作。

3、   public abstract void dump (String prefix, FileDescriptor fd, PrintWriterwriter, String[] args)

将FragmentManager的状态输出到一个流中。

4、   public static void enableDebugLogging (boolean enabled)

设置是否输出FragmentManager的日志到Log中。

5、   public abstract boolean executePendingTransactions ()

由于FragmentTransaction.commit()方法是异步的,调用此方法可以立即执行commit()方法,但是必须保证在主线程中调用executePendingTransactions();

6、   public abstract Fragment findFragmentById (int id)

通过指定ID寻找一个fragment对象,这个id可能是在布局文件中指定的,也可能是包含该fragment的父容器的id。它首先会在关联Activity的Fragmanager中寻找,然后会在当前回退栈所有fragment对象中寻找。

7、   public abstract Fragment findFragmentByTag (String tag)

tag可能是在布局文件中或者程序中指定。寻找方法与通过id类似。

8、   public abstract FragmentManager.BackStackEntry getBackStackEntryAt (intindex)

通过指定index获得BackStackEntry对象。Index是在调用FragmentTransaction.addToBackStack后由commit()方法返回。BackStackEntry是内部类。主要包括getid()、getname()方法。getname返回值就是addToBackStack(String)中的值。getid()返回值是Activity识别这个entry对象的唯一标识。getid()应该就是index。

9、   public abstract int getBackStackEntryCount ()

返回当前回栈中保存的对象个数。

10、public abstract FragmentgetFragment (Bundle bundle, String key)

从之前通过putFragment(Bundle, String,Fragment)存储的引用恢复fragment。

bundle:用于恢复fragment引用的bundle

key:bundle保存的entry的名称。

返回值:返回与给定引用绑定的fragment对象。

11、public voidinvalidateOptionsMenu ()

废止关联activity的options menu。这个会被延期到activity进入resumed状态时执行。

12、isDestroyed ()

在关联activity执行onDestroy()时返回true。

13、public abstract voidpopBackStack ()异步

弹出回退栈栈顶的fragment对象。

14public abstractvoid popBackStack (String name, int flags)

name:不为null时,表示一个要寻找的之前的BackStackEntry名,可能找到多个对象将被弹出,flags用来控制是否弹出这个BackStackEntry本身。为null时,则返回栈顶。

Flags:为POP_BACK_STACK_INCLUSIVE时表示弹出所有匹配的fragment对象包括这个BackStackEntry;

     为0时表示之弹出匹配的fragment对象但不包括这个BackStackEntry

15、public abstract voidpopBackStack (int id, int flags)

popBackStack(String name, int flags)类似。   IdFragmentTransaction.commit()返回的。

16public abstractboolean popBackStackImmediate ()  立刻执行

public abstractboolean popBackStackImmediate (int id, int flags) 立刻执行

public abstractboolean popBackStackImmediate (String name, int flags) 立刻执行

17public abstractvoid putFragment (Bundle bundle, String key, Fragment fragment)

添加一个fragment的引用到bundle中。这个bundle用来保存状态。当后面调用getFragment(Bundle,String)方法时将返回一个与当前状态相同的fragment对象。

bundle:用于保存fragment引用

keybundleentry

fragment:需要保存引用的fragment

18public abstractvoid removeOnBackStackChangedListener (FragmentManager.OnBackStackChangedListenerlistener)

移除一个回退栈监听器。

19public abstractFragment.SavedState saveFragmentInstanceState (Fragment f)

保存给定fragment的当前状态。这个可以用来在创建一个新fragment实例时将这个SavedState对象交给FragmentManager以重建一个相同的对象。这个方法的使用需要满足以下条件:

1、  这个fragment当前应该绑定之这个fragmentmanager

2、  新建的Fragment对象必须和保存的这个fragment时同一个类;

3、 保存的状态不可以包含其他fragment对象。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值