004_Fragment-FragmentTransAction 翻译学习

来源:互联网 发布:运动分析软件 编辑:程序博客网 时间:2024/04/29 08:18

FragmentTransAction(Added in API level 11)

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

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

简介:

FragmentTransAction对象是用来执行一系列Fragment操作。

公共方法:

1、 public abstract FragmentTransaction add (int containerViewId, Fragment fragment,String tag)

向Activity内添加一个Fragment,添加位置为id为containerViewId的VewGroup。该Fragment的识别标签为Tag。程序中可通过FragmentManager.findFragmentByTag(tag)在栈中找到该Fragment。

2、 public abstract FragmentTransaction add (Fragment fragment, String tag)

一般用来添加一个无视图的Fragment.即调用:add (0, Fragment fragment, String tag)

3、 public abstract FragmentTransaction add (int containerViewId, Fragmentfragment)

添加一个无标签Fragment。即调用add (int containerViewId, Fragment fragment,NULL)

4、public abstract FragmentTransaction addSharedElement(View sharedElement, String name)   add in android5.0

用于将一个存在于已经被移除或隐藏的Fragment中的View添加至当前加入或正在显示的Fragment的View中。

sharedElement:消失Fragment中的一个View,该View将被继续显示至当前Fragment中

name:当前正在显示的Fragment中的一个用于共享的View的名称

5、 public abstract FragmentTransaction addToBackStack (String name)

将这个FragmentTransaction对象压入回退栈中。即这个FragmentTransaction对象在执行操作以后将被记住,我们可以在之后点击返回键,或者显式调用FragmentManager.popbackstack方法从回退栈中弹出它,从而回滚操作到之前的状态。(后面有详细介绍)

6、public abstractFragmentTransaction attach (Fragment fragment)                    Added in android3.2

   在与fragment通过detach方法断开连接以后再通过attach重新关联到fragment。使得重建它的视图结构,并关联到UI中显示。

6、 public abstract int commit ()

执行FragmentTransaction对象中的命令。此命令不会立即执行,它会在主线程准备好以后执行。

àFragmentTransaction对象必须在关联Activity保存自己状态之前被执行。如果尝试在Ativity保存好状态之后执行,将会抛出异常。这是因为当Activity需要恢复它的状态时可能会丢失这个FragmentTransaction事件对象。

返回值:如果已经调用addToBackStack(String)方法,将返回这个FragmentTransaction对象的回退栈ID值,否则返回负值。

7、 public abstract int commitAllowingStateLoss ()

这个方法功能与commit()方法相同。但是它不要求在关联Activity保存自己状态之前执行,同时,在activity恢复状态时,这个FragmentTransaction事件对象可能就不会被恢复。

8、public abstractFragmentTransaction detach (Fragment fragment)                    add in android 3.2

   将fragment与UI取消关联。这个与将fragment remove之后,但是保存在回退栈中,由fragmentmanager继续管理的状态是一样的。  当执行这个方法后,原有的视图结构将被销毁。

9、 public abstract FragmentTransaction disallowAddToBackStack ()

不允许将FragmentTransaction压入回退栈中。如果在之后调用addToBackStack将会抛出IllegalStateException异常。如果已经调用过addToBackStack再调用disallowAddToBackStack,也会抛出IllegalStateException异常。

10、public abstractFragmentTransaction hide (Fragment fragment)

隐藏一个已加入的fragment。

11、public abstract booleanisAddToBackStackAllowed ()

是否允许将FragmentTransaction压入回退栈。如果返回false,此时调用addToBackStack(String)将抛出IllegalStateException异常。

12、public abstract booleanisEmpty ()

FragmentTransaction对象中是否包含操作。

13、public abstractFragmentTransaction remove (Fragment fragment)

移除一个现有的fragment。

14、public abstractFragmentTransaction replace (int containerViewId, Fragment fragmentA, Stringtag)

将id为containerViewId的containerView中的所有Fagment对象移除,并替换为fragmentA。

这个方法和先调用remove(Fragment)移除containerView中所有Fragment,再调用add(containerViewId,fragmentA, tag)是一样的。

15、public abstractFragmentTransaction replace (int containerViewId, Fragment fragment)

   与replace(int, Fragment, NULL)相同。

16、public abstractFragmentTransaction show (Fragment fragment)

   将一个被隐藏的fragment再次显示。

17、其他说明:

setBreadCrumbTitle(与ActionBar相关的帮助类)相关方法已在android 5.0中被废弃,不再介绍。

可以设置fragment各种状态进出的动画。方法包括:setCustomAnimations、setTransition、setTransitionStyle。

0 0