Fragment 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
片段是應用程式的使用者介面或行為片段,可以放在 中 Activity
。
[Android.Runtime.Register("android/app/Fragment", DoNotGenerateAcw=true)]
public class Fragment : Java.Lang.Object, Android.Content.IComponentCallbacks2, Android.Views.View.IOnCreateContextMenuListener, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/app/Fragment", DoNotGenerateAcw=true)>]
type Fragment = class
inherit Object
interface IComponentCallbacks2
interface IComponentCallbacks
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface View.IOnCreateContextMenuListener
- 繼承
- 衍生
- 屬性
- 實作
備註
片段是應用程式的使用者介面或行為片段,可以放在 中 Activity
。 與片段的互動是透過 FragmentManager
完成,可透過 Activity#getFragmentManager() Activity.getFragmentManager()
和 Fragment#getFragmentManager() Fragment.getFragmentManager()
取得。
Fragment 類別可以使用許多方法來達成各種不同的結果。 在其核心中,它代表在較大 Activity
中執行的特定作業或介面。 片段與它所在的活動緊密系結,而且不能與其中一個分開使用。 雖然 Fragment 會定義自己的生命週期,但該生命週期取決於其活動:如果活動已停止,就無法啟動其內部的片段;當活動終結時,將會終結所有片段。
Fragment 的所有子類別都必須包含公用無自變數建構函式。 架構通常會在需要時重新具現化片段類別,特別是在狀態還原期間,而且必須能夠找到此建構函式來具現化它。 如果無自變數建構函式無法使用,在狀態還原期間會發生運行時間例外狀況。
這裡涵蓋的主題:ol>li 舊版平臺<li 生命週期<li>>版面配置<li>Back Stack</ol><<>
<div class=“special reference”><h3>Developer Guides</h3>
如需使用片段的詳細資訊,請參閱 片段 開發人員指南。
</Div>
“OlderPlatforms”><h3>舊版平臺</h3>
雖然片段 API 是在 中 android.os.Build.VERSION_CODES#HONEYCOMB
引進,但的 API 版本也可透過 androidx.fragment.app.FragmentActivity
在較舊的平臺上使用。 如需詳細資訊,請參閱部落格文章片段。
“生命週期”><h3>生命週期</h3>
雖然片段的生命週期系結至其擁有的活動,但它有自己的標準活動生命週期。 它包含基本活動生命週期方法,例如 #onResume
,但與活動和UI產生互動相關的方法也很重要。
呼叫以啟動片段以繼續狀態 (與用戶互動) 的核心生命週期方法系列如下:
<ol><li>#onAttach
在片段與其活動相關聯之後呼叫。 <li>#onCreate
會呼叫 來執行片段的初始建立。 <li>#onCreateView
會建立並傳回與片段相關聯的檢視階層。 <li>#onActivityCreated
會告訴片段其活動已完成自己的 Activity#onCreate Activity.onCreate()
。 <li>#onViewStateRestored
會告知片段已還原其檢視階層的所有已儲存狀態。 <li>#onStart
會根據使用者的包含活動開始) ,讓使用者 (顯示片段。 <li>#onResume
會根據片段的包含活動繼續) ,開始與用戶互動 (。 </老>
當片段不再使用時,它會經歷一系列的反向回呼:
<ol><li>#onPause
片段不再與用戶互動,因為其活動已暫停,或片段作業正在活動中修改。 <用戶無法再看到 li>#onStop
片段,因為其活動正在停止,或片段作業正在活動中修改。 <li>#onDestroyView
可讓片段清除與其檢視相關聯的資源。 <li>#onDestroy
呼叫 以執行片段狀態的最終清除。 <li>#onDetach
會在片段不再與其活動相關聯之前立即呼叫。 </老>
“Layout”><h3>Layout</h3>
片段可用來做為應用程式版面配置的一部分,讓您更妥善地將程式代碼模組化,並更輕鬆地將使用者介面調整為執行所在的畫面。 例如,我們可以查看包含專案清單的簡單程式,以及顯示每個專案的詳細數據。
活動的版面配置 XML 可以包含 <fragment>
標記,以將片段實例內嵌在版面配置內。 例如,以下是內嵌一個片段的簡單版面配置:
{
已取代這個成員。 使用 Jetpack 片段連結庫androidx.fragment.app.Fragment
在所有裝置上保持一致的行為,並存取 生命週期。
此頁面的部分是根據 原始碼專案所建立和共用的工作進行修改,並根據 中所述的詞彙使用。
建構函式
Fragment() |
預設建構函式。 |
Fragment(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時所使用的建構函式;由運行時間呼叫。 |
屬性
Activity |
傳回此片段目前相關聯的活動。 |
AllowEnterTransitionOverlap |
傳回結束轉換和輸入轉換重疊。 -或- 設定結束轉換和輸入轉換是否重疊。 |
AllowReturnTransitionOverlap |
傳回轉換和重新輸入轉換是否重疊。 -或- 設定傳回轉換和重新輸入轉換是否重疊。 |
Arguments |
傳回提供給 |
ChildFragmentManager |
傳回私人 FragmentManager,以便在此片段內放置及管理片段。 |
Class |
傳回這個 |
Context |
|
EnterTransition |
傳回轉換,用來將檢視移至初始場景。 -或- 設定將用來將檢視移至初始場景的轉換。 |
ExitTransition |
傳回轉換,當片段移除、隱藏或中斷連結時,將會用來將檢視移出場景。 -或- 設定在移除、隱藏或中斷連結片段時,用來將檢視移出場景的轉換。 |
FragmentManager |
傳回 FragmentManager,以便與與此片段活動相關聯的片段互動。 |
Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
Host |
傳回這個片段的主機物件。 |
Id |
傳回這個片段已知的標識碼。 |
IsAdded |
如果片段目前已新增至其活動,則傳回 true。 |
IsDetached |
如果片段已明確從UI中斷連結,則傳回 true。 |
IsHidden |
如果片段已隱藏,則傳回 true。 |
IsInLayout |
如果配置是透過 < 納入活動檢視階層的一部分,則傳回 true;片段>標記。 |
IsRemoving |
如果目前已從其活動中移除此片段,則傳回 true。 |
IsResumed |
如果片段處於繼續狀態,則傳回 true。 |
IsStateSaved |
如果新增此片段,且其狀態已由其主機儲存,則傳回 true。 |
IsVisible |
如果使用者目前可以看到片段,則傳回 true。 |
JniIdentityHashCode |
片段是應用程式的使用者介面或行為片段,可以放在 中 |
JniPeerMembers |
片段是應用程式的使用者介面或行為片段,可以放在 中 |
LayoutInflater |
傳回用來擴充此片段檢視的快取 LayoutInflater。 |
LoaderManager |
傳回此片段的LoaderManager,視需要建立它。 |
ParentFragment |
傳回包含這個片段的父片段。 |
PeerReference |
片段是應用程式的使用者介面或行為片段,可以放在 中 |
ReenterTransition |
傳回轉換,此轉換會在傳回因返回堆疊而傳回時,用來將檢視移至場景中。 -或- 設定轉換,此轉換會在傳回時用來將檢視移至場景中,因為快顯返回堆棧。 |
Resources |
傳回 |
RetainInstance |
控制片段實例是否保留在活動重新建立 (,例如從組態變更) 。 |
ReturnTransition |
傳回轉換,當片段準備移除、隱藏或中斷連結時,將檢視移出場景,因為快顯回堆棧。 -或- 設定當片段準備移除、隱藏或中斷連結時,用來將檢視移出場景的轉換,因為快顯回堆棧。 |
SharedElementEnterTransition |
傳回將用於傳輸至內容場景之共用元素的轉換。 -或- 設定將用於傳輸至內容場景之共用元素的轉換。 |
SharedElementReturnTransition |
傳回轉換,此轉換將用於在返回堆疊快顯期間傳回的共享專案。 -或- 設定轉換,此轉換將用於在返回堆疊快顯期間傳回的共享專案。 |
Tag |
如果指定,請取得片段的標記名稱。 |
TargetFragment |
傳回 所 |
TargetRequestCode |
傳回 所 |
ThresholdClass |
此 API 支援 Mono for Android 基礎結構,並不適合直接從您的程式代碼使用。 |
ThresholdType |
此 API 支援 Mono for Android 基礎結構,並不適合直接從您的程式代碼使用。 |
UserVisibleHint |
將提示設定給系統,以瞭解此片段的UI目前是否對用戶可見。 |
View |
如果提供,請取得片段版面配置 () 傳 |
方法
Clone() |
建立並傳回這個 對象的複本。 (繼承來源 Object) |
Dispose() |
片段是應用程式的使用者介面或行為片段,可以放在 中 |
Dispose(Boolean) |
片段是應用程式的使用者介面或行為片段,可以放在 中 |
Dump(String, FileDescriptor, PrintWriter, String[]) |
將片段的狀態列印到指定的數據流中。 |
Equals(Object) |
已淘汰.
子類別無法覆寫等於 () 。 |
GetHashCode() |
已淘汰.
子類別無法覆寫hashCode () 。 |
GetString(Int32) |
從應用程式套件的預設字串數據表傳回當地語系化字串。 |
GetString(Int32, Object[]) |
從應用程式套件的預設字串數據表傳回當地語系化字串。 |
GetText(Int32) |
從應用程式套件的預設字串數據表傳回當地語系化、樣式的 CharSequence。 |
GetTextFormatted(Int32) |
從應用程式套件的預設字串數據表傳回當地語系化、樣式的 CharSequence。 |
Instantiate(Context, String) |
如同 |
Instantiate(Context, String, Bundle) |
使用指定的類別名稱建立 Fragment 的新實例。 |
JavaFinalize() |
當垃圾收集判斷對象沒有其他參考時,由物件上的垃圾收集行程呼叫。 (繼承來源 Object) |
Notify() |
喚醒正在等候此物件的監視器的單一線程。 (繼承來源 Object) |
NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
OnActivityCreated(Bundle) |
建立片段的活動並具現化此片段的檢視階層時呼叫。 |
OnActivityResult(Int32, Result, Intent) |
從先前對的呼叫 |
OnAttach(Activity) |
已取代這個成員。 |
OnAttach(Context) |
當片段第一次附加至其內容時呼叫。 |
OnAttachFragment(Fragment) |
當片段附加為這個片段的子系時呼叫。 |
OnConfigurationChanged(Configuration) |
當裝置組態在元件執行時變更時,由系統呼叫。 |
OnContextItemSelected(IMenuItem) |
每當選取操作功能表中的專案時,就會呼叫此勾點。 |
OnCreate(Bundle) |
呼叫 以執行片段的初始建立。 |
OnCreateAnimator(FragmentTransit, Boolean, Int32) |
當片段載入動畫時呼叫。 |
OnCreateContextMenu(IContextMenu, View, IContextMenuContextMenuInfo) |
即將顯示 的內容 |
OnCreateOptionsMenu(IMenu, MenuInflater) |
初始化活動標準選項功能表的內容。 |
OnCreateView(LayoutInflater, ViewGroup, Bundle) |
呼叫 以讓片段具現化其使用者介面檢視。 |
OnDestroy() |
當片段不再使用時呼叫。 |
OnDestroyOptionsMenu() |
當此片段的選項功能表項不再包含在整體選項功能表中時呼叫。 |
OnDestroyView() |
當先前建立 |
OnDetach() |
當片段不再附加至其活動時呼叫。 |
OnGetLayoutInflater(Bundle) |
傳回用來擴充此片段檢視的 LayoutInflater。 |
OnHiddenChanged(Boolean) |
當片段傳 |
OnInflate(Activity, IAttributeSet, Bundle) |
已取代這個成員。 |
OnInflate(Context, IAttributeSet, Bundle) |
當片段建立為檢視版面配置擴大的一部分時呼叫,通常是從設定活動的內容檢視。 |
OnInflate(IAttributeSet, Bundle) |
已淘汰.
已取代這個成員。 |
OnLowMemory() |
當整體系統記憶體不足時,就會呼叫這個值,而且主動執行的進程應該修剪其記憶體使用量。 |
OnMultiWindowModeChanged(Boolean) |
當片段的活動從全螢幕模式變更為多視窗模式,反之亦然時呼叫。 |
OnMultiWindowModeChanged(Boolean, Configuration) |
當片段的活動從全螢幕模式變更為多視窗模式,反之亦然時呼叫。 |
OnOptionsItemSelected(IMenuItem) |
每當選取選項功能表中的專案時,就會呼叫此勾點。 |
OnOptionsMenuClosed(IMenu) |
每當使用者取消具有返回/功能表按鈕的功能表,或選取專案) 時,就會呼叫這個勾點 (。 |
OnPause() |
當片段不再繼續時呼叫。 |
OnPictureInPictureModeChanged(Boolean) |
當活動變更為圖片內模式時,由系統呼叫。 |
OnPictureInPictureModeChanged(Boolean, Configuration) |
當活動變更為圖片內模式時,由系統呼叫。 |
OnPrepareOptionsMenu(IMenu) |
準備要顯示的畫面標準選項功能表。 |
OnRequestPermissionsResult(Int32, String[], Permission[]) |
要求許可權的結果回呼。 |
OnResume() |
當使用者看到片段並主動執行時呼叫。 |
OnSaveInstanceState(Bundle) |
呼叫 以要求片段儲存其目前的動態狀態,以便稍後可以在進程的新實例中重新建構。 |
OnStart() |
當使用者看到片段時呼叫。 |
OnStop() |
當片段不再啟動時呼叫。 |
OnTrimMemory(TrimMemory) |
當操作系統判斷進程從其進程修剪不需要的記憶體時,呼叫它。 |
OnViewCreated(View, Bundle) |
在傳回之後 |
OnViewStateRestored(Bundle) |
當所有已儲存的狀態都還原到片段的檢視階層時呼叫。 |
PostponeEnterTransition() |
延後進入片段轉換,直到 |
RegisterForContextMenu(View) |
註冊要針對指定檢視顯示的快捷功能表, (多個檢視可以顯示操作功能表) 。 |
RequestPermissions(String[], Int32) |
要求授與此應用程式的許可權。 |
SetEnterSharedElementCallback(SharedElementCallback) |
當自定義轉換與片段搭配使用時,當未彈出回溯堆棧時,就會呼叫輸入轉換回呼。 |
SetExitSharedElementCallback(SharedElementCallback) |
當自定義轉換與片段搭配使用時,會在卸除後端堆疊時呼叫結束轉換回呼。 |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
SetHasOptionsMenu(Boolean) |
回報此片段想要透過接收 |
SetInitialSavedState(Fragment+SavedState) |
設定第一次建構時,此片段應該從還原本身的初始儲存狀態,如 所 |
SetMenuVisibility(Boolean) |
設定是否應該顯示此片段功能表的提示。 |
SetTargetFragment(Fragment, Int32) |
此片段的選擇性目標。 |
ShouldShowRequestPermissionRationale(String) |
取得是否應該在要求許可權之前先以合理方式顯示 UI。 |
StartActivity(Intent) |
從片段的包含活動呼叫 |
StartActivity(Intent, Bundle) |
從片段的包含活動呼叫 |
StartActivityForResult(Intent, Int32) |
從片段的包含活動呼叫 |
StartActivityForResult(Intent, Int32, Bundle) |
從片段的包含活動呼叫 |
StartIntentSenderForResult(IntentSender, Int32, Intent, ActivityFlags, ActivityFlags, Int32, Bundle) |
從片段的包含活動呼叫 |
StartPostponedEnterTransition() |
呼叫 之後 |
ToArray<T>() |
片段是應用程式的使用者介面或行為片段,可以放在 中 |
ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
UnregisterForContextMenu(View) |
防止顯示指定檢視的操作功能表。 |
UnregisterFromRuntime() |
片段是應用程式的使用者介面或行為片段,可以放在 中 |
Wait() |
讓目前的線程等到喚醒為止,通常是藉由 <em>notified</em> 或 <em>interrupted</em> 來喚醒。 (繼承來源 Object) |
Wait(Int64) |
讓目前的線程等到喚醒為止,通常是<透過em>notified</em或em>interrupted</em>>,或<直到經過一定數量的實時為止。 (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是<透過em>notified</em或em>interrupted</em>>,或<直到經過一定數量的實時為止。 (繼承來源 Object) |
明確介面實作
IJavaPeerable.Disposed() |
片段是應用程式的使用者介面或行為片段,可以放在 中 |
IJavaPeerable.DisposeUnlessReferenced() |
片段是應用程式的使用者介面或行為片段,可以放在 中 |
IJavaPeerable.Finalized() |
片段是應用程式的使用者介面或行為片段,可以放在 中 |
IJavaPeerable.JniManagedPeerState |
片段是應用程式的使用者介面或行為片段,可以放在 中 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
片段是應用程式的使用者介面或行為片段,可以放在 中 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
片段是應用程式的使用者介面或行為片段,可以放在 中 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
片段是應用程式的使用者介面或行為片段,可以放在 中 |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
片段是應用程式的使用者介面或行為片段,可以放在 中 |
GetJniTypeName(IJavaPeerable) |
片段是應用程式的使用者介面或行為片段,可以放在 中 |