public abstract class FragmentManager
extends Object
java.lang.Object | |
↳ | android.support.v4.app.FragmentManager |
静态库支持版本的框架FragmentManager
。 用于编写在Android 3.0之前的平台上运行的应用程序。 在Android 3.0或更高版本上运行时,此实现仍在使用; 它不会尝试切换到框架的实现。 有关课程概述,请参阅框架FragmentManager
文档。
你的活动必须来自FragmentActivity
以使用它。 从这样的活动,你可以获取FragmentManager
致电getSupportFragmentManager()
。
Nested classes |
|
---|---|
interface |
FragmentManager.BackStackEntry 用 |
interface |
FragmentManager.OnBackStackChangedListener 用于监视后端堆栈变化的接口。 |
Constants |
|
---|---|
int |
POP_BACK_STACK_INCLUSIVE 标记为 |
Public constructors |
|
---|---|
FragmentManager() |
Public methods |
|
---|---|
abstract void |
addOnBackStackChangedListener(FragmentManager.OnBackStackChangedListener listener) 为更改片段返回堆栈添加一个新侦听器。 |
abstract FragmentTransaction |
beginTransaction() 在与此FragmentManager关联的碎片上启动一系列编辑操作。 |
abstract void |
dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) 将FragmentManager的状态打印到给定的流中。 |
static void |
enableDebugLogging(boolean enabled) 控制框架的内部片段管理器调试日志是否已打开。 |
abstract boolean |
executePendingTransactions() 在 |
abstract Fragment |
findFragmentById(int id) 查找由XML填充时由给定ID标识的片段,或在事务中添加时作为容器标识的片段。 |
abstract Fragment |
findFragmentByTag(String tag) 查找由XML给出的给定标记所标识的片段,或者在事务中添加时给出的片段。 |
abstract FragmentManager.BackStackEntry |
getBackStackEntryAt(int index) 返回堆栈中索引索引处的BackStackEntry; 条目开始索引0是堆栈的底部。 |
abstract int |
getBackStackEntryCount() 返回当前在回栈中的条目数。 |
abstract Fragment |
getFragment(Bundle bundle, String key) 检索先前放置在 |
abstract boolean |
isDestroyed() 如果最后的 |
abstract void |
popBackStack() 将顶部状态从背面堆叠弹出。 |
abstract void |
popBackStack(int id, int flags) 弹出所有返回堆栈状态直到具有给定标识符的状态。 |
abstract void |
popBackStack(String name, int flags) 从管理器的片段返回栈中弹出最后一个片段转换。 |
abstract boolean |
popBackStackImmediate(int id, int flags) 像 |
abstract boolean |
popBackStackImmediate(String name, int flags) 像 |
abstract boolean |
popBackStackImmediate() 像 |
abstract void |
putFragment(Bundle bundle, String key, Fragment fragment) 将一个片段的引用放入Bundle中。 |
abstract void |
removeOnBackStackChangedListener(FragmentManager.OnBackStackChangedListener listener) 删除先前添加了 |
abstract Fragment.SavedState |
saveFragmentInstanceState(Fragment f) 保存给定Fragment的当前实例状态。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
int POP_BACK_STACK_INCLUSIVE
标记为popBackStack(String, int)
和popBackStack(int, int)
:如果已设置,并且已提供返回堆栈条目的名称或标识,则会消耗所有匹配的条目,直至找到不匹配的条目或达到堆栈底部为止。 否则,直到但不包括该条目的所有条目都将被删除。
常数值:1(0x00000001)
FragmentManager ()
void addOnBackStackChangedListener (FragmentManager.OnBackStackChangedListener listener)
为更改片段返回堆栈添加一个新侦听器。
Parameters | |
---|---|
listener |
FragmentManager.OnBackStackChangedListener
|
FragmentTransaction beginTransaction ()
在与此FragmentManager关联的碎片上启动一系列编辑操作。
注:片段事务只能在活动保存其状态之前创建/提交。 如果您尝试在FragmentActivity.onSaveInstanceState()
之后提交事务(并且在之前的FragmentActivity.onStart
或FragmentActivity.onResume()
,则会出现错误,这是因为框架负责将当前碎片保存在状态中,并且如果在状态为那么他们将会失去。
Returns | |
---|---|
FragmentTransaction |
void dump (String prefix, FileDescriptor fd, PrintWriter writer, String[] args)
将FragmentManager的状态打印到给定的流中。
Parameters | |
---|---|
prefix |
String : Text to print at the front of each line. |
fd |
FileDescriptor : The raw file descriptor that the dump is being sent to. |
writer |
PrintWriter : A PrintWriter to which the dump is to be set. |
args |
String : Additional arguments to the dump request. |
void enableDebugLogging (boolean enabled)
控制框架的内部片段管理器调试日志是否已打开。 如果启用,当框架执行片段操作时,您将在logcat中看到输出。
Parameters | |
---|---|
enabled |
boolean
|
boolean executePendingTransactions ()
在FragmentTransaction
与FragmentTransaction.commit()
一起FragmentTransaction.commit()
,它被安排在进程的主线程上异步执行。 如果你想立即执行任何这样的挂起操作,你可以调用这个函数(仅限于主线程)来完成。 请注意,所有回调和其他相关行为都将在此调用中完成,因此请注意这是从哪里调用的。
如果您提交的单个事务不修改碎片返回堆栈,请强烈考虑使用commitNow()
。 当您的应用中的其他代码具有期待不同时间的未决提交事务时,这可以帮助避免不必要的副作用。
Returns | |
---|---|
boolean |
Returns true if there were any pending transactions to be executed. |
Fragment findFragmentById (int id)
查找由XML填充时由给定ID标识的片段,或在事务中添加时作为容器标识的片段。 这首先搜索当前添加到经理活动的片段; 如果没有找到这样的片段,则搜索当前在与该ID相关联的背堆栈中的所有片段。
Parameters | |
---|---|
id |
int
|
Returns | |
---|---|
Fragment |
The fragment if found or null otherwise. |
Fragment findFragmentByTag (String tag)
查找由XML给出的给定标记所标识的片段,或者在事务中添加时给出的片段。 这首先搜索当前添加到经理活动的片段; 如果没有找到这样的片段,则搜索当前在返回栈上的所有片段。
Parameters | |
---|---|
tag |
String
|
Returns | |
---|---|
Fragment |
The fragment if found or null otherwise. |
FragmentManager.BackStackEntry getBackStackEntryAt (int index)
返回堆栈中索引索引处的BackStackEntry; 条目开始索引0是堆栈的底部。
Parameters | |
---|---|
index |
int
|
Returns | |
---|---|
FragmentManager.BackStackEntry |
int getBackStackEntryCount ()
返回当前在回栈中的条目数。
Returns | |
---|---|
int |
Fragment getFragment (Bundle bundle, String key)
检索当前使用 putFragment(Bundle, String, Fragment)
放置的参考的Fragment实例。
Parameters | |
---|---|
bundle |
Bundle : The bundle from which to retrieve the fragment reference. |
key |
String : The name of the entry in the bundle. |
Returns | |
---|---|
Fragment |
Returns the current Fragment instance that is associated with the given reference. |
boolean isDestroyed ()
如果在FragmentManager的活动上进行了最后的 Activity.onDestroy()
调用,则返回true,所以此实例现在已经死亡。
Returns | |
---|---|
boolean |
void popBackStack ()
将顶部状态从背面堆叠弹出。 如果有一个弹出,则返回true,否则返回false。 这个函数是异步的 - 它将请求排入队列,但是直到应用程序返回到它的事件循环才会执行该动作。
void popBackStack (int id, int flags)
弹出所有返回堆栈状态直到具有给定标识符的状态。 这个函数是异步的 - 它将请求排入队列,但是直到应用程序返回到它的事件循环才会执行该动作。
Parameters | |
---|---|
id |
int : Identifier of the stated to be popped. If no identifier exists, false is returned. The identifier is the number returned by FragmentTransaction.commit() . The POP_BACK_STACK_INCLUSIVE flag can be used to control whether the named state itself is popped. |
flags |
int : Either 0 or POP_BACK_STACK_INCLUSIVE . |
void popBackStack (String name, int flags)
从管理器的片段返回栈中弹出最后一个片段转换。 如果没有东西可以弹出,则返回false。 这个函数是异步的 - 它将请求排入队列,但是直到应用程序返回到它的事件循环才会执行该动作。
Parameters | |
---|---|
name |
String : If non-null, this is the name of a previous back state to look for; if found, all states up to that state will be popped. The POP_BACK_STACK_INCLUSIVE flag can be used to control whether the named state itself is popped. If null, only the top state is popped. |
flags |
int : Either 0 or POP_BACK_STACK_INCLUSIVE . |
boolean popBackStackImmediate (int id, int flags)
像popBackStack(int, int)
一样,但在呼叫内部立即执行操作。 这就像之后调用executePendingTransactions()
。
Parameters | |
---|---|
id |
int
|
flags |
int
|
Returns | |
---|---|
boolean |
Returns true if there was something popped, else false. |
boolean popBackStackImmediate (String name, int flags)
像popBackStack(String, int)
一样,但在呼叫内部立即执行操作。 这就像之后调用executePendingTransactions()
。
Parameters | |
---|---|
name |
String
|
flags |
int
|
Returns | |
---|---|
boolean |
Returns true if there was something popped, else false. |
boolean popBackStackImmediate ()
像popBackStack()
一样,但在呼叫内部立即执行操作。 这就像之后调用executePendingTransactions()
。
Returns | |
---|---|
boolean |
Returns true if there was something popped, else false. |
void putFragment (Bundle bundle, String key, Fragment fragment)
将一个片段的引用放入Bundle中。 这个Bundle可以作为保存状态持久化,并且在以后恢复时getFragment(Bundle, String)
将返回同一个片段的当前实例。
Parameters | |
---|---|
bundle |
Bundle : The bundle in which to put the fragment reference. |
key |
String : The name of the entry in the bundle. |
fragment |
Fragment : The Fragment whose reference is to be stored. |
void removeOnBackStackChangedListener (FragmentManager.OnBackStackChangedListener listener)
删除先前添加了 addOnBackStackChangedListener(OnBackStackChangedListener)
的侦听 addOnBackStackChangedListener(OnBackStackChangedListener)
。
Parameters | |
---|---|
listener |
FragmentManager.OnBackStackChangedListener
|
Fragment.SavedState saveFragmentInstanceState (Fragment f)
保存给定Fragment的当前实例状态。 这可以在稍后创建Fragment的新实例并将其添加到片段管理器时使用,以使其创建自己以匹配此处返回的当前状态。 请注意,可以如何使用它有限制:
putFragment(Bundle, String, Fragment)
to store a fragment reference because that reference may not be valid when this saved state is later used. Likewise the Fragment's target and result code are not included in this state. Parameters | |
---|---|
f |
Fragment : The Fragment whose state is to be saved. |
Returns | |
---|---|
Fragment.SavedState |
The generated state. This will be null if there was no interesting state created by the fragment. |