public abstract class FragmentTransaction
extends Object
java.lang.Object | |
↳ | android.app.FragmentTransaction |
用于执行一组片段操作的API。
有关使用片段的更多信息,请阅读 Fragments开发人员指南。
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调用 |
abstract FragmentTransaction |
add(int containerViewId, Fragment fragment) 用空标签调用 |
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) 在之前从 |
abstract int |
commit() 计划提交此事务。 |
abstract int |
commitAllowingStateLoss() 像 |
abstract void |
commitNow() 同步提交此事务。 |
abstract void |
commitNowAllowingStateLoss() 像 |
abstract FragmentTransaction |
detach(Fragment fragment) 从UI中分离给定的片段。 |
abstract FragmentTransaction |
disallowAddToBackStack() 禁止拨打 |
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) 用空标签调用 |
abstract FragmentTransaction |
setBreadCrumbShortTitle(int res) 设置短标题以显示为面包屑,当此事务处于反向堆栈时,由 |
abstract FragmentTransaction |
setBreadCrumbShortTitle(CharSequence text) 像 |
abstract FragmentTransaction |
setBreadCrumbTitle(int res) 将此完整标题设置为当此事务处于反向堆栈时显示为面包屑,如 |
abstract FragmentTransaction |
setBreadCrumbTitle(CharSequence text) 像 |
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
|
int TRANSIT_FRAGMENT_CLOSE
片段正在从堆栈中移除
常量值:8194(0x00002002)
int TRANSIT_FRAGMENT_FADE
片段应该简单地淡入或淡出; 也就是说,除了由于某种原因出现或消失之外,没有与之相关的强大导航。
常量值:4099(0x00001003)
int TRANSIT_FRAGMENT_OPEN
碎片被添加到堆栈中
常量值:4097(0x00001001)
FragmentTransaction add (Fragment fragment, String tag)
使用0 containerViewId调用 add(int, Fragment, String)
。
Parameters | |
---|---|
fragment |
Fragment
|
tag |
String
|
Returns | |
---|---|
FragmentTransaction |
FragmentTransaction add (int containerViewId, Fragment fragment)
使用空标签调用 add(int, Fragment, String)
。
Parameters | |
---|---|
containerViewId |
int
|
fragment |
Fragment
|
Returns | |
---|---|
FragmentTransaction |
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. |
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 |
FragmentTransaction addToBackStack (String name)
将此事务添加到后退堆栈。 这意味着事务在被执行后将被记住,并且在稍后弹出堆栈时将反转其操作。
Parameters | |
---|---|
name |
String : An optional name for this back stack state, or null. |
Returns | |
---|---|
FragmentTransaction |
FragmentTransaction attach (Fragment fragment)
之前用detach(Fragment)
从UI中分离后重新附加片段。 这会导致其视图层次被重新创建,附加到UI并显示。
Parameters | |
---|---|
fragment |
Fragment : The fragment to be attached. |
Returns | |
---|---|
FragmentTransaction |
Returns the same FragmentTransaction instance. |
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. |
int commitAllowingStateLoss ()
像commit()
一样,但允许在活动状态保存后执行提交。 这很危险,因为如果活动需要稍后从其状态恢复,那么提交可能会丢失,所以这应该仅用于UI状态在用户意外更改的情况。
Returns | |
---|---|
int |
void commitNow ()
同步提交此事务。 任何添加的片段将被初始化并完全进入其主机的生命周期状态,并且在该调用返回之前,任何被移除的片段将相应地被拆除。 以这种方式提交事务允许将片段添加为专用的封装组件,以监视其主机的生命周期状态,同时在这些片段完全初始化并准备就绪时提供更坚固的排序保证。 管理视图的碎片会创建并附加这些视图。
调用 commitNow
优于调用 commit()
后跟 executePendingTransactions()
因为后者将具有试图提交 所有当前未决事务的副作用,无论这是否是期望的行为。
以这种方式提交的事务可能不会被添加到FragmentManager的后端堆栈,因为这样做会破坏其他异步提交事务的其他预期订购保证。 此方法将抛出IllegalStateException
如果交易之前要求被添加到后退堆栈与addToBackStack(String)
。
事务只能在其包含活动保存其状态之前使用此方法提交。 如果在该点之后尝试提交,则会抛出异常。 这是因为如果活动需要从其状态恢复,则提交后的状态可能会丢失。 有关可能会丢失提交的情况,请参见commitAllowingStateLoss()
。
void commitNowAllowingStateLoss ()
像commitNow()
一样,但允许在保存活动状态后执行提交。 这很危险,因为如果活动需要稍后从其状态恢复,那么提交可能会丢失,所以这应该仅用于UI状态在用户意外更改的情况。
FragmentTransaction detach (Fragment fragment)
从UI中分离给定的片段。 这与放置在后端堆栈上的状态相同:片段已从UI中删除,但其状态仍由片段管理器主动管理。 进入这种状态时,它的视图层次被破坏。
Parameters | |
---|---|
fragment |
Fragment : The fragment to be detached. |
Returns | |
---|---|
FragmentTransaction |
Returns the same FragmentTransaction instance. |
FragmentTransaction disallowAddToBackStack ()
禁止拨打addToBackStack(String)
。 任何未来的addToBackStack调用都会抛出IllegalStateException
。 如果addToBackStack已被调用,则此方法将抛出IllegalStateException。
Returns | |
---|---|
FragmentTransaction |
FragmentTransaction hide (Fragment fragment)
隐藏现有片段。 这只与视图已添加到容器的片段相关,因为这会导致视图被隐藏。
Parameters | |
---|---|
fragment |
Fragment : The fragment to be hidden. |
Returns | |
---|---|
FragmentTransaction |
Returns the same FragmentTransaction instance. |
boolean isAddToBackStackAllowed ()
如果允许将此FragmentTransaction添加到后退堆栈,则返回true。 如果此方法返回false,则addToBackStack(String)
将抛出IllegalStateException
。
Returns | |
---|---|
boolean |
True if addToBackStack(String) is permitted on this transaction. |
boolean isEmpty ()
Returns | |
---|---|
boolean |
true if this transaction contains no operations, false otherwise. |
FragmentTransaction remove (Fragment fragment)
删除现有的片段。 如果将其添加到容器,则其视图也会从该容器中移除。
Parameters | |
---|---|
fragment |
Fragment : The fragment to be removed. |
Returns | |
---|---|
FragmentTransaction |
Returns the same FragmentTransaction instance. |
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. |
FragmentTransaction replace (int containerViewId, Fragment fragment)
使用空标签调用 replace(int, Fragment, String)
。
Parameters | |
---|---|
containerViewId |
int
|
fragment |
Fragment
|
Returns | |
---|---|
FragmentTransaction |
FragmentTransaction setBreadCrumbShortTitle (int res)
设置简短标题以显示为面包屑,当此事务处于反向堆栈时,由 FragmentBreadCrumbs
。
Parameters | |
---|---|
res |
int : A string resource containing the title. |
Returns | |
---|---|
FragmentTransaction |
FragmentTransaction setBreadCrumbShortTitle (CharSequence text)
像setBreadCrumbShortTitle(int)
但采取一个原始字符串; 不建议使用此方法,因为如果语言环境更改,以后无法更改该字符串。
Parameters | |
---|---|
text |
CharSequence
|
Returns | |
---|---|
FragmentTransaction |
FragmentTransaction setBreadCrumbTitle (int res)
将此完整标题设置为当此事务处于反向堆栈时显示为面包屑,如 FragmentBreadCrumbs
所使用。
Parameters | |
---|---|
res |
int : A string resource containing the title. |
Returns | |
---|---|
FragmentTransaction |
FragmentTransaction setBreadCrumbTitle (CharSequence text)
像setBreadCrumbTitle(int)
但采取一个原始字符串; 不建议使用此方法,因为如果语言环境更改,以后无法更改该字符串。
Parameters | |
---|---|
text |
CharSequence
|
Returns | |
---|---|
FragmentTransaction |
FragmentTransaction setCustomAnimations (int enter, int exit, int popEnter, int popExit)
设置特定的动画资源以针对在此事务中进入和退出的片段运行。 特别是在弹出后退堆栈时,会针对进入/退出操作播放popEnter
和popExit
动画。
Parameters | |
---|---|
enter |
int
|
exit |
int
|
popEnter |
int
|
popExit |
int
|
Returns | |
---|---|
FragmentTransaction |
FragmentTransaction setCustomAnimations (int enter, int exit)
设置特定的动画资源以针对在此事务中进入和退出的片段运行。 弹出背面堆叠时不会播放这些动画。
Parameters | |
---|---|
enter |
int
|
exit |
int
|
Returns | |
---|---|
FragmentTransaction |
FragmentTransaction setTransition (int transit)
为此交易选择一个标准过渡动画。 可能是一个TRANSIT_NONE
, TRANSIT_FRAGMENT_OPEN
, TRANSIT_FRAGMENT_CLOSE
,或TRANSIT_FRAGMENT_FADE
。
Parameters | |
---|---|
transit |
int
|
Returns | |
---|---|
FragmentTransaction |
FragmentTransaction setTransitionStyle (int styleRes)
设置将用于解析过境动画的自定义样式资源。
Parameters | |
---|---|
styleRes |
int
|
Returns | |
---|---|
FragmentTransaction |
FragmentTransaction show (Fragment fragment)
显示以前隐藏的片段。 这只与其视图已添加到容器的片段相关,因为这会导致显示视图。
Parameters | |
---|---|
fragment |
Fragment : The fragment to be shown. |
Returns | |
---|---|
FragmentTransaction |
Returns the same FragmentTransaction instance. |