DialogFragment 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
顯示對話框視窗的片段,其活動視窗頂端浮動。
[Android.Runtime.Register("android/app/DialogFragment", DoNotGenerateAcw=true)]
public class DialogFragment : Android.App.Fragment, Android.Content.IDialogInterfaceOnCancelListener, Android.Content.IDialogInterfaceOnDismissListener, IDisposable
[<Android.Runtime.Register("android/app/DialogFragment", DoNotGenerateAcw=true)>]
type DialogFragment = class
inherit Fragment
interface IDialogInterfaceOnCancelListener
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IDialogInterfaceOnDismissListener
- 繼承
- 屬性
- 實作
備註
此類別在 API 等級 28 時被棄用。 使用支援函式庫對話片段,讓所有裝置的行為一致,並存取生命週期。
顯示對話框視窗的片段,其活動視窗頂端浮動。 此片段包含 Dialog 物件,其會根據片段的狀態適當顯示。 對話框的控制(決定何時要顯示、隱藏、關閉對話框)應該透過 API 完成,而不是透過對話框的直接呼叫來完成。 實作應覆蓋此類別,並實作 onCreateView(LayoutInflater, ViewGroup, Bundle) 以提供對話內容。 或者,他們也可以覆寫 onCreateDialog(Bundle),建立一個完全自訂的對話框,例如 AlertDialog,並擁有自己的內容。 此處涵蓋主題:生命週期基本對話框 警示對話框 選擇對話框與嵌入生命週期對話 Fragment 透過多種方式保持片段生命週期驅動,而非對話框本身。 請注意,對話通常是自發實體 -- 它們是自己的視窗、接收自己的輸入事件,而且通常會自行決定何時消失(藉由接收返回鍵事件或使用者按兩下按鈕)。 DialogFragment 需要確保片段和對話框狀態所發生的情況保持一致。 若要這樣做,它會監看對話框的關閉事件,並負責在發生時移除自己的狀態。 這表示你應該使用 show(FragmentManager,String) 或 show(FragmentTransaction,String) 來將 DialogFragment 的實例加入你的 UI 中,因為這些實例會記錄 DialogFragment 在對話框被關閉時如何移除。 基本對話 DialogFragment 最簡單的用途是作為片段視圖階層的浮動容器。 一個簡單的實作可以是這樣:Activity 上的 showDialog() 方法範例可以是:這會移除目前顯示的任何對話框,建立一個新的 DialogFragment 並帶有參數,並在後堆疊中顯示為新狀態。 當交易被彈出時,當前的對話片段及其對話會被銷毀,並重新顯示先前的對話片段(如有的話)。 請注意,在這種情況下,DialogFragment 會處理 Dialog 被 dismiss 的交易彈出。 警示對話框 你可以不(或加之)實作 Fragment.onCreateView(LayoutInflater, ViewGroup, Bundle)來產生對話框內的視圖階層,而是實作 onCreateDialog(Bundle) 來建立你自己的自訂對話框物件。 這對於建立 AlertDialog 最有用,讓你能向使用者顯示由分段管理的標準警報。 一個簡單的實作範例是:建立此片段的活動可能有以下方法來顯示對話並接收結果:請注意,此時片段並未被放入後堆疊,而是作為無限期執行的片段加入。 由於對話通常是模態式的,這仍會作為後堆運作,因為對話會捕捉使用者輸入直到被關閉。 當它被關閉時,DialogFragment 會自動從其片段管理器中移除。 在對話或嵌入對話之間選擇對話片段,若有需要,仍可選擇作為一般片段使用。 如果你有一個片段,有些情況下應該以對話框形式顯示,有些則嵌入在較大的介面中,這很有用。 這個行為通常會根據你如何使用片段自動選擇,但也可以用 setShowsDialog(boolean)來自訂。 例如,這裡有一個簡單的對話片段:可以建立並以對話框形式顯示這個片段的實例:也可以作為視圖階層中的內容加入:
Android 參考資料。android.app.DialogFragment
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
| 名稱 | Description |
|---|---|
| DialogFragment() | |
| DialogFragment(IntPtr, JniHandleOwnership) |
初始化現有 Java 原生介面物件的受管理表示。 |
屬性
| 名稱 | Description |
|---|---|
| Activity |
傳回此片段目前相關聯的活動。 (繼承來源 Fragment) |
| AllowEnterTransitionOverlap |
傳回結束轉換和輸入轉換是否重疊。 -或- 設定出口轉換與進入轉換是否重疊。 (繼承來源 Fragment) |
| AllowReturnTransitionOverlap |
傳回傳回轉換和重新輸入轉換是否重疊。 -或- 設定返回轉換與再入轉換是否重疊。 (繼承來源 Fragment) |
| Arguments |
將提供 |
| Cancelable |
傳回的目前值 |
| ChildFragmentManager |
傳回私人 FragmentManager,以便在此片段內放置和管理片段。 (繼承來源 Fragment) |
| Class |
傳回這個 |
| Context |
回歸 |
| Dialog | |
| EnterTransition |
傳回轉換,用來將檢視移至初始場景。 -或- 設定將用於將視圖移動到初始場景的過渡。 (繼承來源 Fragment) |
| ExitTransition |
會傳回轉換,當片段移除、隱藏或中斷連結時,將檢視移出場景。 -或- 設定轉換,當片段被移除、隱藏或分離時,將視圖移出場景,且不彈出後堆疊。 (繼承來源 Fragment) |
| FragmentManager |
傳回 FragmentManager,以便與與此片段活動相關聯的片段互動。 (繼承來源 Fragment) |
| Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
| Host |
傳回這個片段的主機物件。 (繼承來源 Fragment) |
| Id |
傳回這個片段所知道的標識碼。 (繼承來源 Fragment) |
| IsAdded |
如果片段目前已新增至其活動,則傳回 true。 (繼承來源 Fragment) |
| IsDetached |
如果片段已從UI明確中斷連結,則傳回 true。 (繼承來源 Fragment) |
| IsHidden |
如果片段已隱藏,則傳回 true。 (繼承來源 Fragment) |
| IsInLayout |
如果該版面作為活動檢視階層的一部分,透過 <片段>捉人。 (繼承來源 Fragment) |
| IsRemoving |
如果此片段目前正在從其活動中移除,則傳回 true。 (繼承來源 Fragment) |
| IsResumed |
如果片段處於繼續狀態,則傳回 true。 (繼承來源 Fragment) |
| IsStateSaved |
如果新增此片段,且其狀態已由其主機儲存,則傳回 true。 (繼承來源 Fragment) |
| IsVisible |
如果使用者目前可以看到片段,則傳回 true。 (繼承來源 Fragment) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
顯示對話框視窗的片段,其活動視窗頂端浮動。 (繼承來源 JavaObject) |
| JniPeerMembers |
提供 Android.App.DialogFragment 的 JNI 綁定基礎架構。 |
| LayoutInflater |
傳回用來擴充此片段檢視的快取 LayoutInflater。 (繼承來源 Fragment) |
| LoaderManager |
回傳此片段的 LoaderManager,必要時建立它。 (繼承來源 Fragment) |
| ParentFragment |
傳回包含此片段的父片段。 (繼承來源 Fragment) |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ReenterTransition |
會傳回轉換,當傳回時,會因為快顯返回堆疊而用來將檢視移至場景。 -或- 設定轉換,將用於在回傳時將視圖移入場景,因為彈出後堆疊。 (繼承來源 Fragment) |
| Resources |
返回 |
| RetainInstance |
控制是否在活動重新建立之間保留片段實例(例如從組態變更)。 (繼承來源 Fragment) |
| ReturnTransition |
傳回轉換,當片段正準備移除、隱藏或中斷連結時,轉換將用來將檢視移出場景,因為快顯返回堆疊。 -或- 設定轉換,當碎片準備被移除、隱藏或因後堆疊彈出而分離時,將視圖移出場景。 (繼承來源 Fragment) |
| SharedElementEnterTransition |
傳回轉換,用於傳輸至內容場景的共享元素。 -或- 設定將用於傳輸到內容場景的共享元素的轉換。 (繼承來源 Fragment) |
| SharedElementReturnTransition |
傳回轉換,此轉換將用於在返回堆疊快顯期間傳回的共享元素。 -或- 設定在後方堆疊彈出時,將用於傳回共享元素的轉換。 (繼承來源 Fragment) |
| ShowsDialog |
傳回的目前值 |
| Tag |
如果指定,請取得片段的標籤名稱。 (繼承來源 Fragment) |
| TargetFragment |
回傳由 設定的 |
| TargetRequestCode |
回傳由 設定的 |
| Theme | |
| ThresholdClass |
提供 Android.App.DialogFragment 的 JNI 綁定基礎架構。 |
| ThresholdType |
提供 Android.App.DialogFragment 的 JNI 綁定基礎架構。 |
| UserVisibleHint |
向系統設定提示,告訴使用者是否可以看到這個片段的使用者介面。 (繼承來源 Fragment) |
| View |
如果有提供,請取得片段配置的根視圖(由 |
方法
| 名稱 | Description |
|---|---|
| Clone() |
建立並傳回這個 對象的複本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
顯示對話框視窗的片段,其活動視窗頂端浮動。 (繼承來源 JavaObject) |
| Dismiss() |
關閉片段及其對話框。 |
| DismissAllowingStateLoss() |
該版本 |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
顯示對話框視窗的片段,其活動視窗頂端浮動。 (繼承來源 JavaObject) |
| Dump(String, FileDescriptor, PrintWriter, String[]) |
將片段的狀態列印到指定的數據流中。 (繼承來源 Fragment) |
| Equals(Object) |
顯示對話框視窗的片段,其活動視窗頂端浮動。 (繼承來源 JavaObject) |
| Equals(Object) |
已淘汰.
子類別無法覆寫 equals()。 (繼承來源 Fragment) |
| GetHashCode() |
已淘汰.
子類別無法覆寫hashCode()。 (繼承來源 Fragment) |
| GetString(Int32, Object[]) |
從應用程式套件的預設字串表回傳一個本地化格式化的字串,並以 Formatter 和 String.format(String, Object) 中定義的格式參數替換。 (繼承來源 Fragment) |
| GetString(Int32) |
從應用程式套件的預設字串數據表傳回本地化的字串。 (繼承來源 Fragment) |
| GetText(Int32) |
從應用程式套件的預設字串數據表傳回本地化樣式的 CharSequence。 (繼承來源 Fragment) |
| GetTextFormatted(Int32) |
從應用程式套件的預設字串數據表傳回本地化樣式的 CharSequence。 (繼承來源 Fragment) |
| JavaFinalize() |
已淘汰.
當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。 (繼承來源 Object) |
| Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
| NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
| OnActivityCreated(Bundle) |
建立片段的活動並具現化此片段的檢視階層時呼叫。 (繼承來源 Fragment) |
| OnActivityResult(Int32, Result, Intent) |
接收先前呼叫的 |
| OnAttach(Activity) |
已淘汰.
此方法在 API 等級 23 中被棄用。 (繼承來源 Fragment) |
| OnAttach(Context) |
當片段第一次附加至其內容時呼叫。 (繼承來源 Fragment) |
| OnAttachFragment(Fragment) |
當片段附加為此片段的子系時呼叫。 (繼承來源 Fragment) |
| OnCancel(IDialogInterface) |
取消對話框時,將會叫用這個方法。 |
| OnConfigurationChanged(Configuration) |
當元件執行時裝置組態變更時,由系統呼叫。 (繼承來源 Fragment) |
| OnContextItemSelected(IMenuItem) |
每當選取操作功能表中的專案時,就會呼叫此勾點。 (繼承來源 Fragment) |
| OnCreate(Bundle) |
呼叫 以執行片段的初始建立。 (繼承來源 Fragment) |
| OnCreateAnimator(FragmentTransit, Boolean, Int32) |
當片段載入動畫時呼叫。 (繼承來源 Fragment) |
| OnCreateContextMenu(IContextMenu, View, IContextMenuContextMenuInfo) |
當視圖的右鍵選單即將顯示時會被呼叫。 (繼承來源 Fragment) |
| OnCreateDialog(Bundle) |
覆寫以建置您自己的自定義對話框容器。 |
| OnCreateOptionsMenu(IMenu, MenuInflater) |
初始化活動標準選項功能表的內容。 (繼承來源 Fragment) |
| OnCreateView(LayoutInflater, ViewGroup, Bundle) |
呼叫 以讓片段具現化其使用者介面檢視。 (繼承來源 Fragment) |
| OnDestroy() |
當片段不再使用時呼叫。 (繼承來源 Fragment) |
| OnDestroyOptionsMenu() |
當這個片段的選項功能表項不再包含在整體選項功能表中時呼叫。 (繼承來源 Fragment) |
| OnDestroyView() |
當先前由 所 |
| OnDetach() |
當片段不再附加至其活動時呼叫。 (繼承來源 Fragment) |
| OnDismiss(IDialogInterface) |
關閉對話框時,將會叫用這個方法。 |
| OnGetLayoutInflater(Bundle) |
傳回用來擴充此片段檢視的 LayoutInflater。 (繼承來源 Fragment) |
| OnHiddenChanged(Boolean) |
當隱藏狀態(片段回傳的 ) |
| OnInflate(Activity, IAttributeSet, Bundle) |
已淘汰.
此方法在 API 等級 23 中被棄用。 (繼承來源 Fragment) |
| OnInflate(Context, IAttributeSet, Bundle) |
當片段建立為檢視版面配置通貨膨脹的一部分時呼叫,通常是從設定活動的內容檢視。 (繼承來源 Fragment) |
| OnInflate(IAttributeSet, Bundle) |
已淘汰.
此方法在 API 等級 15 中被棄用。 (繼承來源 Fragment) |
| OnLowMemory() |
當整體系統在記憶體不足時呼叫,且主動執行的進程應該會修剪其記憶體使用量。 (繼承來源 Fragment) |
| OnMultiWindowModeChanged(Boolean, Configuration) |
當片段的活動從全螢幕模式變更為多視窗模式,反之亦然時呼叫。 (繼承來源 Fragment) |
| OnMultiWindowModeChanged(Boolean) |
當片段的活動從全螢幕模式變更為多視窗模式,反之亦然時呼叫。 (繼承來源 Fragment) |
| OnOptionsItemSelected(IMenuItem) |
每當選取選項功能表中的專案時,就會呼叫此勾點。 (繼承來源 Fragment) |
| OnOptionsMenuClosed(IMenu) |
每當選項功能表關閉時,就會呼叫這個勾點(使用者取消具有上一頁/功能表按鈕的功能表,或選取專案時)。 (繼承來源 Fragment) |
| OnPause() |
當片段不再繼續時呼叫。 (繼承來源 Fragment) |
| OnPictureInPictureModeChanged(Boolean, Configuration) |
當活動變更為圖片中的圖片模式時,由系統呼叫。 (繼承來源 Fragment) |
| OnPictureInPictureModeChanged(Boolean) |
當活動變更為圖片中的圖片模式時,由系統呼叫。 (繼承來源 Fragment) |
| OnPrepareOptionsMenu(IMenu) |
準備要顯示的畫面標準選項功能表。 (繼承來源 Fragment) |
| OnRequestPermissionsResult(Int32, String[], Permission[]) |
要求許可權的結果回呼。 (繼承來源 Fragment) |
| OnResume() |
當使用者看到片段且正在執行時呼叫。 (繼承來源 Fragment) |
| OnSaveInstanceState(Bundle) |
呼叫 以要求片段儲存其目前的動態狀態,以便稍後在進程的新實例中重新建構它。 (繼承來源 Fragment) |
| OnStart() |
當使用者看到片段時呼叫。 (繼承來源 Fragment) |
| OnStop() |
當片段不再啟動時呼叫。 (繼承來源 Fragment) |
| OnTrimMemory(TrimMemory) |
當作業系統判斷行程從其行程修剪不需要的記憶體時,就會呼叫 。 (繼承來源 Fragment) |
| OnViewCreated(View, Bundle) |
在 Calling 立即回來後 |
| OnViewStateRestored(Bundle) |
當所有儲存的狀態都還原到片段的檢視階層時呼叫。 (繼承來源 Fragment) |
| PostponeEnterTransition() |
延後進入碎片的轉換,直到 |
| RegisterForContextMenu(View) |
註冊要針對指定檢視顯示的內容功能表(多個檢視可以顯示操作功能表)。 (繼承來源 Fragment) |
| RequestPermissions(String[], Int32) |
要求授與此應用程式的許可權。 (繼承來源 Fragment) |
| SetEnterSharedElementCallback(SharedElementCallback) |
當自定義轉換與片段搭配使用時,當未快顯返回堆疊時,就會呼叫輸入轉換回呼。 (繼承來源 Fragment) |
| SetExitSharedElementCallback(SharedElementCallback) |
當自定義轉換與片段搭配使用時,會在快顯返回堆疊時附加或中斷連結此片段時呼叫結束轉換回呼。 (繼承來源 Fragment) |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetHasOptionsMenu(Boolean) |
回報此片段希望透過接收 及 |
| SetInitialSavedState(Fragment+SavedState) |
設定初始儲存狀態,讓該碎片從建構時應自行恢復,該狀態由 FragmentManager.saveFragmentInstanceState 回傳。 (繼承來源 Fragment) |
| SetMenuVisibility(Boolean) |
設定是否應該顯示此片段功能表的提示。 (繼承來源 Fragment) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
顯示對話框視窗的片段,其活動視窗頂端浮動。 (繼承來源 JavaObject) |
| SetStyle(DialogFragmentStyle, Int32) |
呼叫 以自定義片段對話框的基本外觀和行為。 |
| SetTargetFragment(Fragment, Int32) |
此片段的選擇性目標。 (繼承來源 Fragment) |
| ShouldShowRequestPermissionRationale(String) |
取得在要求許可權之前,是否應該以理由顯示UI。 (繼承來源 Fragment) |
| Show(FragmentManager, String) |
顯示對話框,將片段新增至指定的 FragmentManager。 |
| Show(FragmentTransaction, String) |
顯示對話框,使用現有的交易新增片段,然後認可交易。 |
| StartActivity(Intent, Bundle) |
來自 |
| StartActivity(Intent) |
來自 |
| StartActivityForResult(Intent, Int32, Bundle) |
來自 |
| StartActivityForResult(Intent, Int32) |
來自 |
| StartIntentSenderForResult(IntentSender, Int32, Intent, ActivityFlags, ActivityFlags, Int32, Bundle) |
來自 |
| StartPostponedEnterTransition() |
接到通知後 |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
| UnregisterForContextMenu(View) |
防止顯示給定檢視的操作功能表。 (繼承來源 Fragment) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
| Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
| Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
顯示對話框視窗的片段,其活動視窗頂端浮動。 (繼承來源 JavaObject) |
| IJavaPeerable.Finalized() |
顯示對話框視窗的片段,其活動視窗頂端浮動。 (繼承來源 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
顯示對話框視窗的片段,其活動視窗頂端浮動。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
顯示對話框視窗的片段,其活動視窗頂端浮動。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
顯示對話框視窗的片段,其活動視窗頂端浮動。 (繼承來源 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
顯示對話框視窗的片段,其活動視窗頂端浮動。 (繼承來源 JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
顯示對話框視窗的片段,其活動視窗頂端浮動。 |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
| JavaCast<TResult>(IJavaObject) |
顯示對話框視窗的片段,其活動視窗頂端浮動。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |