Most visited

Recently visited

Added in API level 11

FragmentManager

public abstract class FragmentManager
extends Object

java.lang.Object
   ↳ android.app.FragmentManager


用于与 Fragment内部的 Fragment对象进行交互的 Activity

Developer Guides

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

While the FragmentManager API was introduced in HONEYCOMB, a version of the API at is also available for use on older platforms through FragmentActivity. See the blog post Fragments For All for more details.

Summary

Nested classes

interface FragmentManager.BackStackEntry

FragmentTransaction.addToBackStack()创建的片段返回堆栈中的条目FragmentTransaction.addToBackStack()

interface FragmentManager.OnBackStackChangedListener

用于监视后端堆栈变化的接口。

Constants

int POP_BACK_STACK_INCLUSIVE

标志为 popBackStack(String, int)popBackStack(int, int) :如果已设置,并且已提供返回堆栈条目的名称或ID,则会查找所有匹配的条目,直至找到不匹配的条目或达到堆栈底部为止。

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()

FragmentTransactionFragmentTransaction.commit()一起 FragmentTransaction.commit() ,它被安排在进程的主线程上异步执行。

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)

检索当前的Fragment实例,以查找先前使用 putFragment(Bundle, String, Fragment)放置的参考。

void invalidateOptionsMenu()

根据需要使附加活动的选项菜单无效。

abstract boolean isDestroyed()

如果在FragmentManager的活动上进行了最后的 Activity.onDestroy()调用,则返回true,所以此实例现在已经死亡。

abstract void popBackStack()

将顶部状态从背面堆叠弹出。

abstract void popBackStack(int id, int flags)

弹出所有返回堆栈状态直到具有给定标识符的状态。

abstract void popBackStack(String name, int flags)

从管理器的片段返回栈中弹出最后一个片段转换。

abstract boolean popBackStackImmediate(int id, int flags)

popBackStack(int, int)一样,但在呼叫内部立即执行操作。

abstract boolean popBackStackImmediate(String name, int flags)

popBackStack(String, int)一样,但在呼叫内部立即执行操作。

abstract boolean popBackStackImmediate()

popBackStack()一样,但在呼叫内部立即执行操作。

abstract void putFragment(Bundle bundle, String key, Fragment fragment)

将一个片段的引用放入Bundle中。

abstract void removeOnBackStackChangedListener(FragmentManager.OnBackStackChangedListener listener)

删除以前使用 addOnBackStackChangedListener(OnBackStackChangedListener)添加的侦听 addOnBackStackChangedListener(OnBackStackChangedListener)

abstract Fragment.SavedState saveFragmentInstanceState(Fragment f)

保存给定Fragment的当前实例状态。

Inherited methods

From class java.lang.Object

Constants

POP_BACK_STACK_INCLUSIVE

Added in API level 11
int POP_BACK_STACK_INCLUSIVE

标志为popBackStack(String, int)popBackStack(int, int) :如果已设置,并且提供了返回堆栈条目的名称或标识,则会消耗所有匹配的条目,直至找到不匹配的条目或达到堆栈底部为止。 否则,直到但不包括该条目的所有条目都将被删除。

常数值:1(0x00000001)

Public constructors

FragmentManager

Added in API level 11
FragmentManager ()

Public methods

addOnBackStackChangedListener

Added in API level 11
void addOnBackStackChangedListener (FragmentManager.OnBackStackChangedListener listener)

为更改片段返回堆栈添加一个新侦听器。

Parameters
listener FragmentManager.OnBackStackChangedListener

beginTransaction

Added in API level 11
FragmentTransaction beginTransaction ()

在与此FragmentManager关联的碎片上启动一系列编辑操作。

注:片段事务只能在活动保存其状态之前创建/提交。 如果您尝试在Activity.onSaveInstanceState()之后提交事务(并且在之前的Activity.onStartActivity.onResume() ,您将会看到一个错误,这是因为框架负责将当前碎片保存在状态中,并且如果在状态为那么他们将会失去。

Returns
FragmentTransaction

dump

Added in API level 11
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.

enableDebugLogging

Added in API level 11
void enableDebugLogging (boolean enabled)

控制框架的内部片段管理器调试日志是否已打开。 如果启用,当框架执行片段操作时,您将在logcat中看到输出。

Parameters
enabled boolean

executePendingTransactions

Added in API level 11
boolean executePendingTransactions ()

FragmentTransactionFragmentTransaction.commit()一起FragmentTransaction.commit() ,它被安排在进程的主线程上异步执行。 如果你想立即执行任何这样的挂起操作,你可以调用这个函数(仅限于主线程)来完成。 请注意,所有回调和其他相关行为都将在此调用中完成,因此请注意这是从哪里调用的。

Returns
boolean Returns true if there were any pending transactions to be executed.

findFragmentById

Added in API level 11
Fragment findFragmentById (int id)

查找由XML填充时由给定ID标识的片段,或在事务中添加时作为容器标识的片段。 这首先搜索当前添加到经理活动的片段; 如果没有找到这样的片段,则搜索当前在与该ID相关联的背堆栈中的所有片段。

Parameters
id int
Returns
Fragment The fragment if found or null otherwise.

findFragmentByTag

Added in API level 11
Fragment findFragmentByTag (String tag)

查找由XML给出的给定标记所标识的片段,或者在事务中添加时给出的片段。 这首先搜索当前添加到经理活动的片段; 如果没有找到这样的片段,则搜索当前在返回栈上的所有片段。

Parameters
tag String
Returns
Fragment The fragment if found or null otherwise.

getBackStackEntryAt

Added in API level 11
FragmentManager.BackStackEntry getBackStackEntryAt (int index)

返回堆栈中索引索引处的BackStackEntry; 其中堆栈底部的项目具有索引0。

Parameters
index int
Returns
FragmentManager.BackStackEntry

getBackStackEntryCount

Added in API level 11
int getBackStackEntryCount ()

返回当前在回栈中的条目数。

Returns
int

getFragment

Added in API level 11
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.

invalidateOptionsMenu

Added in API level 14
void invalidateOptionsMenu ()

根据需要使附加活动的选项菜单无效。 这可能最终被推迟到我们进入恢复状态。

isDestroyed

Added in API level 17
boolean isDestroyed ()

如果在FragmentManager的活动上进行了最后的 Activity.onDestroy()调用,则返回true,所以此实例现在已经死亡。

Returns
boolean

popBackStack

Added in API level 11
void popBackStack ()

将顶部状态从背面堆叠弹出。 这个函数是异步的 - 它将请求排入队列,但是直到应用程序返回到它的事件循环才会执行该动作。

popBackStack

Added in API level 11
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.

popBackStack

Added in API level 11
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.

popBackStackImmediate

Added in API level 11
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.

popBackStackImmediate

Added in API level 11
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.

popBackStackImmediate

Added in API level 11
boolean popBackStackImmediate ()

popBackStack()一样,但是在调用内部立即执行操作。 这就像之后调用executePendingTransactions()

Returns
boolean Returns true if there was something popped, else false.

putFragment

Added in API level 11
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.

removeOnBackStackChangedListener

Added in API level 11
void removeOnBackStackChangedListener (FragmentManager.OnBackStackChangedListener listener)

删除先前使用 addOnBackStackChangedListener(OnBackStackChangedListener)添加的侦听 addOnBackStackChangedListener(OnBackStackChangedListener)

Parameters
listener FragmentManager.OnBackStackChangedListener

saveFragmentInstanceState

Added in API level 13
Fragment.SavedState saveFragmentInstanceState (Fragment f)

保存给定Fragment的当前实例状态。 这可以在稍后创建Fragment的新实例并将其添加到片段管理器时使用,以使其创建自己以匹配此处返回的当前状态。 请注意,可以如何使用它有限制:

  • The Fragment must currently be attached to the FragmentManager.
  • A new Fragment created using this saved state must be the same class type as the Fragment it was created from.
  • The saved state can not contain dependencies on other fragments -- that is it can't use 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.

Hooray!