Most visited

Recently visited

FragmentManager

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

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)

检索先前放置在 putFragment(Bundle, String, Fragment)的参考的当前片段实例。

abstract boolean isDestroyed()

如果最后的 Activity.onDestroy()调用已经在FragmentManager的Activity上进行,则返回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

int POP_BACK_STACK_INCLUSIVE

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

常数值:1(0x00000001)

Public constructors

FragmentManager

FragmentManager ()

Public methods

addOnBackStackChangedListener

void addOnBackStackChangedListener (FragmentManager.OnBackStackChangedListener listener)

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

Parameters
listener FragmentManager.OnBackStackChangedListener

beginTransaction

FragmentTransaction beginTransaction ()

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

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

Returns
FragmentTransaction

dump

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

void enableDebugLogging (boolean enabled)

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

Parameters
enabled boolean

executePendingTransactions

boolean executePendingTransactions ()

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

如果您提交的单个事务不修改碎片返回堆栈,请强烈考虑使用commitNow() 当您的应用中的其他代码具有期待不同时间的未决提交事务时,这可以帮助避免不必要的副作用。

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

findFragmentById

Fragment findFragmentById (int id)

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

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

findFragmentByTag

Fragment findFragmentByTag (String tag)

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

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

getBackStackEntryAt

FragmentManager.BackStackEntry getBackStackEntryAt (int index)

返回堆栈中索引索引处的BackStackEntry; 条目开始索引0是堆栈的底部。

Parameters
index int
Returns
FragmentManager.BackStackEntry

getBackStackEntryCount

int getBackStackEntryCount ()

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

Returns
int

getFragment

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.

isDestroyed

boolean isDestroyed ()

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

Returns
boolean

popBackStack

void popBackStack ()

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

popBackStack

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

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

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

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

boolean popBackStackImmediate ()

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

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

putFragment

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

void removeOnBackStackChangedListener (FragmentManager.OnBackStackChangedListener listener)

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

Parameters
listener FragmentManager.OnBackStackChangedListener

saveFragmentInstanceState

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!