public class DialogFragment
extends Fragment
implements DialogInterface.OnCancelListener, DialogInterface.OnDismissListener
java.lang.Object | ||
↳ | android.support.v4.app.Fragment | |
↳ | android.support.v4.app.DialogFragment |
Known Direct Subclasses |
Known Indirect Subclasses |
静态库支持版本的框架DialogFragment
。 用于编写在Android 3.0之前的平台上运行的应用程序。 在Android 3.0或更高版本上运行时,此实现仍在使用; 它不会尝试切换到框架的实现。 请参阅框架SDK文档以了解类概述。
Constants |
|
---|---|
int |
STYLE_NORMAL 样式为 |
int |
STYLE_NO_FRAME 风格为 |
int |
STYLE_NO_INPUT 样式为 |
int |
STYLE_NO_TITLE 样式为 |
Public constructors |
|
---|---|
DialogFragment() |
Public methods |
|
---|---|
void |
dismiss() 关闭片段及其对话框。 |
void |
dismissAllowingStateLoss() 版本 |
Dialog |
getDialog() |
boolean |
getShowsDialog() 返回当前值 |
int |
getTheme() |
boolean |
isCancelable() 返回 |
void |
onActivityCreated(Bundle savedInstanceState) 当片段的活动已经创建并且该片段的视图层次被实例化时调用。 |
void |
onAttach(Context context) 当片段首次附加到其上下文时调用。 |
void |
onCancel(DialogInterface dialog) 这个方法将在对话框被取消时被调用。 |
void |
onCreate(Bundle savedInstanceState) 被调用来做一个片段的初始创建。 |
Dialog |
onCreateDialog(Bundle savedInstanceState) 重写以构建您自己的自定义Dialog容器。 |
void |
onDestroyView() 删除对话框。 |
void |
onDetach() 当片段不再附加到其活动时调用。 |
void |
onDismiss(DialogInterface dialog) 该方法将在对话框关闭时调用。 |
void |
onSaveInstanceState(Bundle outState) 打电话询问片段以保存其当前的动态状态,以便稍后可以在重新启动其进程的新实例时重新构建它。 |
void |
onStart() 当片段对用户可见时调用。 |
void |
onStop() 当片段不再启动时调用。 |
void |
setCancelable(boolean cancelable) 控制显示的对话框是否可取消。 |
void |
setShowsDialog(boolean showsDialog) 控制这个片段是否应该显示在对话框中。 |
void |
setStyle(int style, int theme) 调用来自定义片段对话框的基本外观和行为。 |
int |
show(FragmentTransaction transaction, String tag) 显示对话框,使用现有事务添加片段,然后提交事务。 |
void |
show(FragmentManager manager, String tag) 显示对话框,将片段添加到给定的FragmentManager。 |
Inherited methods |
|
---|---|
From class android.support.v4.app.Fragment
|
|
From class java.lang.Object
|
|
From interface android.content.ComponentCallbacks
|
|
From interface android.view.View.OnCreateContextMenuListener
|
|
From interface android.content.DialogInterface.OnCancelListener
|
|
From interface android.content.DialogInterface.OnDismissListener
|
int STYLE_NO_FRAME
样式为setStyle(int, int)
:根本不画任何框架; 由onCreateView(LayoutInflater, ViewGroup, Bundle)
返回的视图层次结构完全负责绘制对话框。
常量值:2(0x00000002)
int STYLE_NO_INPUT
样式为setStyle(int, int)
:与STYLE_NO_FRAME
类似,但也禁用对话框的所有输入。 用户不能触摸它,并且其窗口不会接收输入焦点。
常量值:3(0x00000003)
DialogFragment ()
void dismiss ()
关闭片段及其对话框。 如果片段被添加到后端堆栈,则将弹出所有后退堆栈状态直到并包括该条目。 否则,一个新的事务将被提交去除片段。
void dismissAllowingStateLoss ()
版本dismiss()
使用FragmentTransaction.commitAllowingStateLoss()
。 查看链接的文档以获取更多详细信
int getTheme ()
Returns | |
---|---|
int |
void onActivityCreated (Bundle savedInstanceState)
当片段的活动已经创建并且该片段的视图层次被实例化时调用。 一旦这些部分到位,它就可以用来进行最终的初始化,例如检索视图或恢复状态。 对于使用setRetainInstance(boolean)
保留其实例的片段也很有用,因为此回调告诉片段何时与新活动实例完全关联。 这是在onCreateView(LayoutInflater, ViewGroup, Bundle)
之后和onViewStateRestored(Bundle)
之前调用的。
Parameters | |
---|---|
savedInstanceState |
Bundle : If the fragment is being re-created from a previous saved state, this is the state. |
void onAttach (Context context)
当片段首次附加到其上下文时调用。 此后将调用onCreate(Bundle)
。
Parameters | |
---|---|
context |
Context
|
void onCancel (DialogInterface dialog)
这个方法将在对话框被取消时被调用。
Parameters | |
---|---|
dialog |
DialogInterface : The dialog that was canceled will be passed into the method. |
void onCreate (Bundle savedInstanceState)
被调用来做一个片段的初始创建。 这是在onAttach(Activity)
之后和onCreateView(LayoutInflater, ViewGroup, Bundle)
之前调用的。
请注意,这可以在片段的活动仍处于创建过程中时调用。 因此,您不能依赖于此时正在初始化活动的内容视图层次结构。 如果您想在创建活动本身后进行工作,请参阅onActivityCreated(Bundle)
。
任何恢复的子片段将在基本 Fragment.onCreate
方法返回之前创建。
Parameters | |
---|---|
savedInstanceState |
Bundle : If the fragment is being re-created from a previous saved state, this is the state. |
Dialog onCreateDialog (Bundle savedInstanceState)
重写以构建您自己的自定义Dialog容器。 这通常用于显示AlertDialog而不是通用的Dialog; 当这样做时,由于AlertDialog处理其自己的内容,因此不需要实施onCreateView(LayoutInflater, ViewGroup, Bundle)
。
此方法将在onCreate(Bundle)
之后和onCreateView(LayoutInflater, ViewGroup, Bundle)
之前调用。 默认实现只是实例化并返回一个Dialog
类。
注意:DialogFragment拥有Dialog.setOnCancelListener
和Dialog.setOnDismissListener
回调。 你不能自己设置它们。 要了解这些事件,请覆盖onCancel(DialogInterface)
和onDismiss(DialogInterface)
。
Parameters | |
---|---|
savedInstanceState |
Bundle : The last saved instance state of the Fragment, or null if this is a freshly created Fragment. |
Returns | |
---|---|
Dialog |
Return a new Dialog instance to be displayed by the Fragment. |
void onDestroyView ()
删除对话框。
void onDismiss (DialogInterface dialog)
该方法将在对话框关闭时调用。
Parameters | |
---|---|
dialog |
DialogInterface : The dialog that was dismissed will be passed into the method. |
void onSaveInstanceState (Bundle outState)
打电话询问片段以保存其当前的动态状态,以便稍后可以在重新启动其进程的新实例时重新构建它。 如果片段的新实例后需要创建,您的包放在这里的数据将提供给包可onCreate(Bundle)
, onCreateView(LayoutInflater, ViewGroup, Bundle)
,并onActivityCreated(Bundle)
。
这对应于Activity.onSaveInstanceState(Bundle)
,其中的大部分讨论也适用于此。 但请注意: 此方法可能在onDestroy()
之前的任何时间被调用 。 有很多情况下,碎片可能大部分被拆除(例如,当放置在背堆栈上而没有UI显示时),但是它的状态不会被保存直到其拥有的活动实际上需要保存其状态。
Parameters | |
---|---|
outState |
Bundle : Bundle in which to place your saved state. |
void setCancelable (boolean cancelable)
控制显示的对话框是否可取消。 使用它而不是直接调用Dialog.setCancelable(boolean)
,因为DialogFragment需要根据这个改变它的行为。
Parameters | |
---|---|
cancelable |
boolean : If true, the dialog is cancelable. The default is true. |
void setShowsDialog (boolean showsDialog)
控制这个片段是否应该显示在对话框中。 如果未设置,则不会在onActivityCreated(Bundle)
创建对话框,因此不会将片段的视图层次添加到该对话框中。 这使您可以将其用作普通片段(嵌入到其活动的内部)。
这通常是基于片段是否与传递给FragmentTransaction.add(int, Fragment)
的容器视图ID相关联而设置的。 如果片段添加了容器,则setShowsDialog将被初始化为false; 否则,这将是真实的。
Parameters | |
---|---|
showsDialog |
boolean : If true, the fragment will be displayed in a Dialog. If false, no Dialog will be created and the fragment's view hierarchly left undisturbed. |
void setStyle (int style, int theme)
调用来自定义片段对话框的基本外观和行为。 这可以用于一些常见的对话行为,为您选择标志,主题和其他选项。 通过自己手动设置对话框和窗口属性可以达到同样的效果。 在片段的对话框创建后调用它将不起作用。
Parameters | |
---|---|
style |
int : Selects a standard style: may be STYLE_NORMAL , STYLE_NO_TITLE , STYLE_NO_FRAME , or STYLE_NO_INPUT . |
theme |
int : Optional custom theme. If 0, an appropriate theme (based on the style) will be selected for you. |
int show (FragmentTransaction transaction, String tag)
显示对话框,使用现有事务添加片段,然后提交事务。
Parameters | |
---|---|
transaction |
FragmentTransaction : An existing transaction in which to add the fragment. |
tag |
String : The tag for this fragment, as per FragmentTransaction.add . |
Returns | |
---|---|
int |
Returns the identifier of the committed transaction, as per FragmentTransaction.commit() . |
void show (FragmentManager manager, String tag)
显示对话框,将片段添加到给定的FragmentManager。 这对于显式创建事务来说很方便,可以使用给定的标记添加片段并提交它。 这并不事务添加到后退堆栈。 当片段被解散时,将执行新的事务以将其从活动中移除。
Parameters | |
---|---|
manager |
FragmentManager : The FragmentManager this fragment will be added to. |
tag |
String : The tag for this fragment, as per FragmentTransaction.add . |