Most visited

Recently visited

Added in API level 11

FragmentTransaction

public abstract class FragmentTransaction
extends Object

java.lang.Object
   ↳ android.app.FragmentTransaction


用于执行一组片段操作的API。

Developer Guides

有关使用片段的更多信息,请阅读 Fragments开发人员指南。

Summary

Constants

int TRANSIT_ENTER_MASK

为所有输入转换设置的位掩码。

int TRANSIT_EXIT_MASK

为所有退出转换设置的位掩码。

int TRANSIT_FRAGMENT_CLOSE

片段正在从堆栈中移除

int TRANSIT_FRAGMENT_FADE

片段应该简单地淡入或淡出; 也就是说,除了由于某种原因出现或消失之外,没有与之相关的强大导航。

int TRANSIT_FRAGMENT_OPEN

碎片被添加到堆栈中

int TRANSIT_NONE

没有用于转换的动画。

int TRANSIT_UNSET

未设置转换。

Public constructors

FragmentTransaction()

Public methods

abstract FragmentTransaction add(Fragment fragment, String tag)

使用0 containerViewId调用 add(int, Fragment, String)

abstract FragmentTransaction add(int containerViewId, Fragment fragment)

用空标签调用 add(int, Fragment, String)

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

将一个片段添加到活动状态。

abstract FragmentTransaction addSharedElement(View sharedElement, String name)

用于将已删除或隐藏片段中的视图映射到显示或添加的片段中的视图。

abstract FragmentTransaction addToBackStack(String name)

将此事务添加到后退堆栈。

abstract FragmentTransaction attach(Fragment fragment)

在之前从 detach(Fragment)与UI分离之后,重新附加片段。

abstract int commit()

计划提交此事务。

abstract int commitAllowingStateLoss()

commit()一样,但允许在活动状态保存后执行提交。

abstract void commitNow()

同步提交此事务。

abstract void commitNowAllowingStateLoss()

commitNow()一样,但允许在活动状态保存后执行提交。

abstract FragmentTransaction detach(Fragment fragment)

从UI中分离给定的片段。

abstract FragmentTransaction disallowAddToBackStack()

禁止拨打 addToBackStack(String)

abstract FragmentTransaction hide(Fragment fragment)

隐藏现有片段。

abstract boolean isAddToBackStackAllowed()

如果允许将此FragmentTransaction添加到后退堆栈,则返回true。

abstract boolean isEmpty()
abstract FragmentTransaction remove(Fragment fragment)

删除现有的片段。

abstract FragmentTransaction replace(int containerViewId, Fragment fragment, String tag)

替换已添加到容器的现有片段。

abstract FragmentTransaction replace(int containerViewId, Fragment fragment)

用空标签调用 replace(int, Fragment, String)

abstract FragmentTransaction setBreadCrumbShortTitle(int res)

设置短标题以显示为面包屑,当此事务处于反向堆栈时,由 FragmentBreadCrumbs

abstract FragmentTransaction setBreadCrumbShortTitle(CharSequence text)

setBreadCrumbShortTitle(int)但采取原始字符串; 建议使用此方法,因为如果语言环境更改,以后无法更改该字符串。

abstract FragmentTransaction setBreadCrumbTitle(int res)

将此完整标题设置为当此事务处于反向堆栈时显示为面包屑,如 FragmentBreadCrumbs所使用。

abstract FragmentTransaction setBreadCrumbTitle(CharSequence text)

setBreadCrumbTitle(int)但采取原始字符串; 建议使用此方法,因为如果语言环境更改,以后无法更改该字符串。

abstract FragmentTransaction setCustomAnimations(int enter, int exit, int popEnter, int popExit)

设置特定的动画资源以针对在此事务中进入和退出的片段运行。

abstract FragmentTransaction setCustomAnimations(int enter, int exit)

设置特定的动画资源以针对在此事务中进入和退出的片段运行。

abstract FragmentTransaction setTransition(int transit)

为此交易选择一个标准过渡动画。

abstract FragmentTransaction setTransitionStyle(int styleRes)

设置将用于解析过境动画的自定义样式资源。

abstract FragmentTransaction show(Fragment fragment)

显示以前隐藏的片段。

Inherited methods

From class java.lang.Object

Constants

TRANSIT_ENTER_MASK

Added in API level 11
int TRANSIT_ENTER_MASK

为所有输入转换设置的位掩码。

常量值:4096(0x00001000)

TRANSIT_EXIT_MASK

Added in API level 11
int TRANSIT_EXIT_MASK

为所有退出转换设置的位掩码。

常量值:8192(0x00002000)

TRANSIT_FRAGMENT_CLOSE

Added in API level 11
int TRANSIT_FRAGMENT_CLOSE

片段正在从堆栈中移除

常量值:8194(0x00002002)

TRANSIT_FRAGMENT_FADE

Added in API level 11
int TRANSIT_FRAGMENT_FADE

片段应该简单地淡入或淡出; 也就是说,除了由于某种原因出现或消失之外,没有与之相关的强大导航。

常量值:4099(0x00001003)

TRANSIT_FRAGMENT_OPEN

Added in API level 11
int TRANSIT_FRAGMENT_OPEN

碎片被添加到堆栈中

常量值:4097(0x00001001)

TRANSIT_NONE

Added in API level 11
int TRANSIT_NONE

没有用于转换的动画。

常量值:0(0x00000000)

TRANSIT_UNSET

Added in API level 11
int TRANSIT_UNSET

未设置转换。

常量值:-1(0xffffffff)

Public constructors

FragmentTransaction

Added in API level 11
FragmentTransaction ()

Public methods

add

Added in API level 11
FragmentTransaction add (Fragment fragment, 
                String tag)

使用0 containerViewId调用 add(int, Fragment, String)

Parameters
fragment Fragment
tag String
Returns
FragmentTransaction

add

Added in API level 11
FragmentTransaction add (int containerViewId, 
                Fragment fragment)

使用空标签调用 add(int, Fragment, String)

Parameters
containerViewId int
fragment Fragment
Returns
FragmentTransaction

add

Added in API level 11
FragmentTransaction add (int containerViewId, 
                Fragment fragment, 
                String tag)

将一个片段添加到活动状态。 此片段也可以选择将其视图(如果Fragment.onCreateView返回非null)插入活动的容器视图中。

Parameters
containerViewId int: Optional identifier of the container this fragment is to be placed in. If 0, it will not be placed in a container.
fragment Fragment: The fragment to be added. This fragment must not already be added to the activity.
tag String: Optional tag name for the fragment, to later retrieve the fragment with FragmentManager.findFragmentByTag(String).
Returns
FragmentTransaction Returns the same FragmentTransaction instance.

addSharedElement

Added in API level 21
FragmentTransaction addSharedElement (View sharedElement, 
                String name)

用于将已删除或隐藏片段中的视图映射到显示或添加的片段中的视图。

Parameters
sharedElement View: A View in a disappearing Fragment to match with a View in an appearing Fragment.
name String: The transitionName for a View in an appearing Fragment to match to the shared element.
Returns
FragmentTransaction

addToBackStack

Added in API level 11
FragmentTransaction addToBackStack (String name)

将此事务添加到后退堆栈。 这意味着事务在被执行后将被记住,并且在稍后弹出堆栈时将反转其操作。

Parameters
name String: An optional name for this back stack state, or null.
Returns
FragmentTransaction

attach

Added in API level 13
FragmentTransaction attach (Fragment fragment)

之前用detach(Fragment)从UI中分离后重新附加片段。 这会导致其视图层次被重新创建,附加到UI并显示。

Parameters
fragment Fragment: The fragment to be attached.
Returns
FragmentTransaction Returns the same FragmentTransaction instance.

commit

Added in API level 11
int commit ()

计划提交此事务。 提交不会立即发生; 它将被安排在主线程上工作,在下次线程准备就绪时完成。

事务只能在其包含活动保存其状态之前使用此方法提交。 如果在该点之后尝试提交,则会抛出异常。 这是因为如果活动需要从其状态恢复,则提交后的状态可能会丢失。 有关可能会丢失提交的情况,请参阅commitAllowingStateLoss()

Returns
int Returns the identifier of this transaction's back stack entry, if addToBackStack(String) had been called. Otherwise, returns a negative number.

commitAllowingStateLoss

Added in API level 11
int commitAllowingStateLoss ()

commit()一样,但允许在活动状态保存后执行提交。 这很危险,因为如果活动需要稍后从其状态恢复,那么提交可能会丢失,所以这应该仅用于UI状态在用户意外更改的情况。

Returns
int

commitNow

Added in API level 24
void commitNow ()

同步提交此事务。 任何添加的片段将被初始化并完全进入其主机的生命周期状态,并且在该调用返回之前,任何被移除的片段将相应地被拆除。 以这种方式提交事务允许将片段添加为专用的封装组件,以监视其主机的生命周期状态,同时在这些片段完全初始化并准备就绪时提供更坚固的排序保证。 管理视图的碎片会创建并附加这些视图。

调用 commitNow优于调用 commit()后跟 executePendingTransactions()因为后者将具有试图提交 所有当前未决事务的副作用,无论这是否是期望的行为。

以这种方式提交的事务可能不会被添加到FragmentManager的后端堆栈,因为这样做会破坏其他异步提交事务的其他预期订购保证。 此方法将抛出IllegalStateException如果交易之前要求被添加到后退堆栈与addToBackStack(String)

事务只能在其包含活动保存其状态之前使用此方法提交。 如果在该点之后尝试提交,则会抛出异常。 这是因为如果活动需要从其状态恢复,则提交后的状态可能会丢失。 有关可能会丢失提交的情况,请参见commitAllowingStateLoss()

commitNowAllowingStateLoss

Added in API level 24
void commitNowAllowingStateLoss ()

commitNow()一样,但允许在保存活动状态后执行提交。 这很危险,因为如果活动需要稍后从其状态恢复,那么提交可能会丢失,所以这应该仅用于UI状态在用户意外更改的情况。

detach

Added in API level 13
FragmentTransaction detach (Fragment fragment)

从UI中分离给定的片段。 这与放置在后端堆栈上的状态相同:片段已从UI中删除,但其状态仍由片段管理器主动管理。 进入这种状态时,它的视图层次被破坏。

Parameters
fragment Fragment: The fragment to be detached.
Returns
FragmentTransaction Returns the same FragmentTransaction instance.

disallowAddToBackStack

Added in API level 11
FragmentTransaction disallowAddToBackStack ()

禁止拨打addToBackStack(String) 任何未来的addToBackStack调用都会抛出IllegalStateException 如果addToBackStack已被调用,则此方法将抛出IllegalStateException。

Returns
FragmentTransaction

hide

Added in API level 11
FragmentTransaction hide (Fragment fragment)

隐藏现有片段。 这只与视图已添加到容器的片段相关,因为这会导致视图被隐藏。

Parameters
fragment Fragment: The fragment to be hidden.
Returns
FragmentTransaction Returns the same FragmentTransaction instance.

isAddToBackStackAllowed

Added in API level 11
boolean isAddToBackStackAllowed ()

如果允许将此FragmentTransaction添加到后退堆栈,则返回true。 如果此方法返回false,则addToBackStack(String)将抛出IllegalStateException

Returns
boolean True if addToBackStack(String) is permitted on this transaction.

isEmpty

Added in API level 11
boolean isEmpty ()

Returns
boolean true if this transaction contains no operations, false otherwise.

remove

Added in API level 11
FragmentTransaction remove (Fragment fragment)

删除现有的片段。 如果将其添加到容器,则其视图也会从该容器中移除。

Parameters
fragment Fragment: The fragment to be removed.
Returns
FragmentTransaction Returns the same FragmentTransaction instance.

replace

Added in API level 11
FragmentTransaction replace (int containerViewId, 
                Fragment fragment, 
                String tag)

替换已添加到容器的现有片段。 这与为所有当前添加的片段调用remove(Fragment)基本相同,这些片段使用相同的containerViewId添加,然后使用此处给出的相同参数添加add(int, Fragment, String)

Parameters
containerViewId int: Identifier of the container whose fragment(s) are to be replaced.
fragment Fragment: The new fragment to place in the container.
tag String: Optional tag name for the fragment, to later retrieve the fragment with FragmentManager.findFragmentByTag(String).
Returns
FragmentTransaction Returns the same FragmentTransaction instance.

replace

Added in API level 11
FragmentTransaction replace (int containerViewId, 
                Fragment fragment)

使用空标签调用 replace(int, Fragment, String)

Parameters
containerViewId int
fragment Fragment
Returns
FragmentTransaction

setBreadCrumbShortTitle

Added in API level 11
FragmentTransaction setBreadCrumbShortTitle (int res)

设置简短标题以显示为面包屑,当此事务处于反向堆栈时,由 FragmentBreadCrumbs

Parameters
res int: A string resource containing the title.
Returns
FragmentTransaction

setBreadCrumbShortTitle

Added in API level 11
FragmentTransaction setBreadCrumbShortTitle (CharSequence text)

setBreadCrumbShortTitle(int)但采取一个原始字符串; 建议使用此方法,因为如果语言环境更改,以后无法更改该字符串。

Parameters
text CharSequence
Returns
FragmentTransaction

setBreadCrumbTitle

Added in API level 11
FragmentTransaction setBreadCrumbTitle (int res)

将此完整标题设置为当此事务处于反向堆栈时显示为面包屑,如 FragmentBreadCrumbs所使用。

Parameters
res int: A string resource containing the title.
Returns
FragmentTransaction

setBreadCrumbTitle

Added in API level 11
FragmentTransaction setBreadCrumbTitle (CharSequence text)

setBreadCrumbTitle(int)但采取一个原始字符串; 建议使用此方法,因为如果语言环境更改,以后无法更改该字符串。

Parameters
text CharSequence
Returns
FragmentTransaction

setCustomAnimations

Added in API level 13
FragmentTransaction setCustomAnimations (int enter, 
                int exit, 
                int popEnter, 
                int popExit)

设置特定的动画资源以针对在此事务中进入和退出的片段运行。 特别是在弹出后退堆栈时,会针对进入/退出操作播放popEnterpopExit动画。

Parameters
enter int
exit int
popEnter int
popExit int
Returns
FragmentTransaction

setCustomAnimations

Added in API level 11
FragmentTransaction setCustomAnimations (int enter, 
                int exit)

设置特定的动画资源以针对在此事务中进入和退出的片段运行。 弹出背面堆叠时不会播放这些动画。

Parameters
enter int
exit int
Returns
FragmentTransaction

setTransition

Added in API level 11
FragmentTransaction setTransition (int transit)

为此交易选择一个标准过渡动画。 可能是一个TRANSIT_NONETRANSIT_FRAGMENT_OPENTRANSIT_FRAGMENT_CLOSE ,或TRANSIT_FRAGMENT_FADE

Parameters
transit int
Returns
FragmentTransaction

setTransitionStyle

Added in API level 11
FragmentTransaction setTransitionStyle (int styleRes)

设置将用于解析过境动画的自定义样式资源。

Parameters
styleRes int
Returns
FragmentTransaction

show

Added in API level 11
FragmentTransaction show (Fragment fragment)

显示以前隐藏的片段。 这只与其视图已添加到容器的片段相关,因为这会导致显示视图。

Parameters
fragment Fragment: The fragment to be shown.
Returns
FragmentTransaction Returns the same FragmentTransaction instance.

Hooray!