Fragment Класс

Определение

Этот класс не рекомендуется использовать на уровне API 28.

[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
Наследование
Fragment
Производный
Атрибуты
Реализации

Комментарии

Этот класс не рекомендуется использовать на уровне API 28. Используйте фрагмент библиотеки фрагментов Jetpack для согласованного поведения на всех устройствах и доступа к жизненному циклу.

Фрагмент — это часть пользовательского интерфейса приложения или поведения, которую можно поместить в действие. Взаимодействие с фрагментами осуществляется через FragmentManager, который можно получить с помощью Activity.getFragmentManager() и Fragment.getFragmentManager(). Класс Fragment можно использовать множество способов достижения различных результатов. В его основе она представляет определенную операцию или интерфейс, выполняющийся в рамках более крупного действия. Фрагмент тесно связан с действием, в который он находится, и его нельзя использовать отдельно от одного. Хотя фрагмент определяет свой собственный жизненный цикл, этот жизненный цикл зависит от его действия: если действие остановлено, фрагменты внутри него не могут быть запущены; При уничтожении действия все фрагменты будут уничтожены. Все подклассы фрагмента должны включать открытый конструктор no-argument. Платформа часто повторно создает экземпляр класса фрагмента при необходимости, в частности во время восстановления состояния, и должен иметь возможность найти этот конструктор для создания экземпляра. Если конструктор без аргументов недоступен, исключение среды выполнения будет происходить в некоторых случаях во время восстановления состояния. Разделы, описанные здесь: руководства разработчика по макету жизненного цикла старых платформ для разработчиков стека стека для более ранних платформ см. в руководстве разработчика по фрагментам.

Хотя жизненный цикл фрагмента привязан к своему собственному действию, он имеет собственную морщину на стандартном жизненном цикле действий. Он включает основные методы жизненного цикла действий, такие как onResume(), но также важны методы, связанные с взаимодействием с действием и созданием пользовательского интерфейса. Основной ряд методов жизненного цикла, которые вызываются для возобновления состояния фрагмента (взаимодействия с пользователем), являются: onAttach(Activity) вызывается после того, как фрагмент связан с его действием. onCreate(Bundle) вызывается для первоначального создания фрагмента. onCreateView(LayoutInflater, ViewGroup, Bundle) создает и возвращает иерархию представлений, связанную с фрагментом. onActivityCreated(Bundle) сообщает фрагменту, что его действие завершило собственное действие.onCreate(). onViewStateRestored(Bundle) сообщает фрагменту, что все сохраненное состояние иерархии представлений было восстановлено. onStart() делает фрагмент видимым пользователю (на основе запускаемого действия). onResume() делает фрагмент начинает взаимодействовать с пользователем (на основе его возобновления действия). Поскольку фрагмент больше не используется, он проходит через обратный ряд обратных вызовов: фрагмент onPause() больше не взаимодействует с пользователем, так как его действие приостановлено или операция фрагмента изменяет ее в действии. Фрагмент onStop() больше не отображается пользователю, так как его действие останавливается или операция фрагмента изменяет его в действии. onDebuildView() позволяет фрагменту очистить ресурсы, связанные с его представлением. onDesk() вызывается для окончательной очистки состояния фрагмента. onDetach() вызывается непосредственно перед фрагментом, который больше не связан с его действием. Фрагменты макета можно использовать как часть макета приложения, что позволяет лучше модульизировать код и легко настраивать пользовательский интерфейс на экран, на котором он работает. Например, можно просмотреть простую программу, состоящую из списка элементов, и отобразить сведения о каждом элементе.

XML макета действия может включать <теги фрагментов> для внедрения экземпляров фрагментов внутри макета. Например, вот простой макет, который внедряет один фрагмент:

Макет устанавливается в действии обычным образом:

Фрагмент заголовков, показывающий список названий, довольно простой, опираясь на ListFragment для большей части своей работы. Обратите внимание на реализацию щелчка элемента: в зависимости от макета текущего действия он может создать и отобразить новый фрагмент, чтобы отобразить сведения на месте (дополнительные сведения об этом позже) или запустить новое действие для отображения сведений.

Фрагмент сведений, показывающий содержимое выбранного элемента, просто отображает строку текста на основе индекса массива строк, встроенного в приложение:

В этом случае, когда пользователь щелкает название, в текущем действии нет контейнера сведений, поэтому код щелчка заголовков запустит новое действие для отображения фрагмента сведений:

Однако экран может быть достаточно большим, чтобы отобразить список названий и подробных сведений о выбранном заголовке. Чтобы использовать такой макет на альбомном экране, этот альтернативный макет можно разместить под макетом земли:

Обратите внимание, как предыдущий код будет адаптироваться к этому альтернативному потоку пользовательского интерфейса: фрагмент заголовков теперь внедряет фрагмент сведений внутри этого действия, а действие сведений завершится, если он выполняется в конфигурации, где сведения могут отображаться на месте. При изменении конфигурации действие, в котором размещаются эти фрагменты, перезапускается, новый экземпляр может использовать другой макет, который не включает те же фрагменты, что и предыдущий макет. В этом случае все предыдущие фрагменты по-прежнему будут создаваться и выполняться в новом экземпляре. Однако любые, которые больше не связаны с тегом фрагмента> в иерархии представлений<, не будут созданы их представления содержимого и будут возвращать false из isInLayout(). (Здесь также показано, как определить, не работает ли фрагмент в контейнере в макете с этим контейнером и не создавать иерархию представлений в этом случае.) Атрибуты тега фрагмента <используются для управления LayoutParams, предоставляемых при присоединении представления фрагмента> к родительскому контейнеру. Они также могут анализироваться фрагментом в onInflate(Activity, AttributeSet, Bundle) в качестве параметров. Экземпляр фрагмента должен иметь какой-то уникальный идентификатор, чтобы его можно было повторно связать с предыдущим экземпляром, если родительская активность должна быть уничтожена и воссоздана. Это можно указать следующим образом: если ничего явно не указано, будет использоваться идентификатор представления контейнера. Android:tag можно использовать в <фрагменте> для предоставления определенного имени тега для фрагмента. android:id можно использовать в <фрагменте> для предоставления определенного идентификатора для фрагмента. Стек back Stack Транзакция, в которой изменяются фрагменты, можно поместить во внутренний стек обратной части действия владения. Когда пользователь нажимает кнопку обратно в действии, все транзакции на заднем стеке отображаются перед завершением действия. Например, рассмотрим этот простой фрагмент, созданный с помощью целочисленного аргумента, и отображает его в textView в пользовательском интерфейсе:

Функция, которая создает новый экземпляр фрагмента, заменяя любой текущий экземпляр фрагмента и отправляя это изменение в стек заднего стека, можно записать следующим образом: После каждого вызова этой функции новая запись находится в стеке и нажимает клавишу BACK, чтобы вернуть пользователю любое предыдущее состояние пользовательского интерфейса действия. Фрагменты, отображаемые или исчезающие, не создают системные события для специальных возможностей, поэтому задайте заголовок фрагментов с помощью View.setAccessibilityPaneTitle(CharSequence), чтобы уведомить пользователей о специальных возможностях этих переходов пользовательского интерфейса.

Справочник по Android для android.app.Fragment.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Конструкторы

Имя Описание
Fragment()

Конструктор по умолчанию.

Fragment(IntPtr, JniHandleOwnership)

Инициализирует управляемое представление существующего объекта Java Native Interface.

Свойства

Имя Описание
Activity

Возвращает действие, с которым в настоящее время связан этот фрагмент.

AllowEnterTransitionOverlap

Возвращает значение, перекрывающееся ли переход выхода и ввод перехода.

AllowReturnTransitionOverlap

Возвращает значение, перекрывающееся ли возвращаемое и повторное включение перехода.

Arguments

Возвращает аргументы, предоставленные для setArguments(Bundle), если таковые есть.

ChildFragmentManager

Верните частный фрагментManager для размещения фрагментов и управления ими внутри этого фрагмента.

Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
Context

Возвращает контекст, с которым в настоящее время связан этот фрагмент.

EnterTransition

Возвращает переход, который будет использоваться для перемещения представлений в начальную сцену.

ExitTransition

Возвращает переход, который будет использоваться для перемещения представлений из сцены при удалении, скрытии или отключении фрагмента, если не отображается стек назад.

FragmentManager

Возвращает Объект FragmentManager для взаимодействия с фрагментами, связанными с действием этого фрагмента.

Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
Host

Возвращает объект узла этого фрагмента.

Id

Возвращает идентификатор, по которым известен этот фрагмент.

IsAdded

Возвращает значение true, если фрагмент в данный момент добавляется в его действие.

IsDetached

Возвращает значение true, если фрагмент был явно отключен от пользовательского интерфейса.

IsHidden

Возвращает значение true, если фрагмент скрыт.

IsInLayout

Возвращает значение true, если макет включен в иерархию представлений действий с помощью тега фрагмента<>.

IsRemoving

Возвращает значение true, если этот фрагмент в настоящее время удаляется из его действия.

IsResumed

Возвращает значение true, если фрагмент находится в состоянии возобновления.

IsStateSaved

Возвращает значение true, если этот фрагмент добавлен и его состояние уже сохранено его узлом.

IsVisible

Возвращает значение true, если фрагмент в настоящее время отображается пользователю.

JniIdentityHashCode

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

(Унаследовано от Object)
JniPeerMembers

Предоставляет инфраструктуру привязки JNI для Android.App.Fragment.

LayoutInflater

Возвращает кэшированный макетInflater, используемый для раздувания представлений этого фрагмента.

LoaderManager

Этот метод является устаревшим.

ParentFragment

Возвращает родительский фрагмент, содержащий этот фрагмент.

PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

(Унаследовано от Object)
ReenterTransition

Возвращает переход, который будет использоваться для перемещения представлений в сцену при возврате из-за всплывающих стека назад.

Resources

Возвращает getActivity().getResources().

RetainInstance

Управление сохранением экземпляра фрагмента во время повторного создания действия (например, из изменения конфигурации).

ReturnTransition

Возвращает переход, который будет использоваться для перемещения представлений из сцены при подготовке фрагмента к удалению, скрытию или отключению из-за всплывающих стека назад.

SharedElementEnterTransition

Возвращает переход, который будет использоваться для общих элементов, передаваемых в сцену содержимого.

SharedElementReturnTransition

Верните переход, который будет использоваться для общих элементов, передаваемых обратно во время всплывающего окна заднего стека.

Tag

Получите имя тега фрагмента, если указано.

TargetFragment

Возвращает целевой фрагмент, заданный параметром setTargetFragment(Fragment, int).

TargetRequestCode

Возвращает код целевого запроса, заданный параметром setTargetFragment(Fragment, int).

ThresholdClass

Предоставляет инфраструктуру привязки JNI для Android.App.Fragment.

ThresholdType

Предоставляет инфраструктуру привязки JNI для Android.App.Fragment.

UserVisibleHint

См. также:

View

Получите корневое представление для макета фрагмента (который возвращается onCreateView(LayoutInflater, ViewGroup, Bundle)), если он указан.

Методы

Имя Описание
Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Dispose()

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
Dispose(Boolean)

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
Dump(String, FileDescriptor, PrintWriter, String[])

Печать состояния фрагментов в заданном потоке.

Equals(Object)
Устаревшие.

Подклассы не могут переопределить равно().

GetHashCode()
Устаревшие.

Подклассы не могут переопределить hashCode().

GetString(Int32, Object[])

Возвращает локализованную строку в строковой таблице пакета приложения по умолчанию, заменив аргументы формата, как определено в formatter и String.format(String, Object).

GetString(Int32)

Возвращает локализованную строку из таблицы строк пакета приложения по умолчанию.

GetText(Int32)

Возвращает локализованную, стильную CharSequence из строковой таблицы пакета приложения по умолчанию.

GetTextFormatted(Int32)

Возвращает локализованную, стильную CharSequence из строковой таблицы пакета приложения по умолчанию.

Instantiate(Context, String, Bundle)

Создайте новый экземпляр фрагмента с заданным именем класса.

Instantiate(Context, String)

Как и экземпляр (Context,String,Bundle), но с пакетом аргументов NULL.

JavaFinalize()

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
Notify()

Просыпается один поток, ожидающий монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
OnActivityCreated(Bundle)

Вызывается при создании действия фрагмента и создании экземпляра иерархии представлений этого фрагмента.

OnActivityResult(Int32, Result, Intent)

Получение результата из предыдущего вызова startActivityForResult(Intent,int).

OnAttach(Activity)

Этот метод не рекомендуется использовать на уровне API 23.

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

Вызывается при отключении представления, созданного ранее onCreateView(LayoutInflater, ViewGroup, Bundle).

OnDetach()

Вызывается, когда фрагмент больше не подключен к его активности.

OnGetLayoutInflater(Bundle)

Возвращает объект LayoutInflater, используемый для раздувания представлений этого фрагмента.

OnHiddenChanged(Boolean)

Вызывается при изменении скрытого состояния (возвращаемого isHidden() фрагмента.

OnInflate(Activity, IAttributeSet, Bundle)

Этот метод не рекомендуется использовать на уровне API 23.

OnInflate(Context, IAttributeSet, Bundle)

Вызывается при создании фрагмента в рамках инфляции макета представления, как правило, из настройки представления действия.

OnInflate(IAttributeSet, Bundle)
Устаревшие.

Этот метод не рекомендуется использовать на уровне API 15.

OnLowMemory()

Это вызывается, когда общая система работает с низкой памятью, и активно выполняемые процессы должны обрезать их использование памяти.

OnMultiWindowModeChanged(Boolean, Configuration)

Вызывается, когда действие фрагмента изменяется с полноэкранного режима на режим с несколькими окнами и наоборот.

OnMultiWindowModeChanged(Boolean)

Этот метод не рекомендуется использовать на уровне API 26.

OnOptionsItemSelected(IMenuItem)

Этот перехват вызывается всякий раз, когда выбран элемент в меню параметров.

OnOptionsMenuClosed(IMenu)

Этот перехват вызывается всякий раз, когда меню параметров закрывается (либо пользователь отменяет меню с помощью кнопки "Назад или меню", либо при выборе элемента).

OnPause()

Вызывается, когда фрагмент больше не возобновляется.

OnPictureInPictureModeChanged(Boolean, Configuration)

Вызывается системой, когда действие изменяется на режим рисунка и из режима рисунка.

OnPictureInPictureModeChanged(Boolean)

Этот метод не рекомендуется использовать на уровне API 26.

OnPrepareOptionsMenu(IMenu)

Подготовьте стандартное меню параметров экрана для отображения.

OnRequestPermissionsResult(Int32, String[], Permission[])

Обратный вызов для результата запроса разрешений.

OnResume()

Вызывается, когда фрагмент отображается пользователю и активно выполняется.

OnSaveInstanceState(Bundle)

Вызывается для того, чтобы спросить фрагмент сохранить текущее динамическое состояние, чтобы его позже можно было восстановить в новом экземпляре его процесса.

OnStart()

Вызывается, когда фрагмент отображается пользователю.

OnStop()

Вызывается, когда фрагмент больше не запущен.

OnTrimMemory(TrimMemory)

Вызывается, когда операционная система определила, что это хорошее время для процесса, чтобы обрезать ненужимую память от своего процесса.

OnViewCreated(View, Bundle)

Вызывается сразу после возврата onCreateView(LayoutInflater,ViewGroup,Bundle), но до восстановления в представлении любого сохраненного состояния.

OnViewStateRestored(Bundle)

Вызывается, когда все сохраненные состояния восстановлены в иерархию представлений фрагмента.

PostponeEnterTransition()

Отложите переход с вводом фрагмента до вызова startPostponedEnterTransition() или FragmentManager.executePendingTransactions().

RegisterForContextMenu(View)

Регистрирует контекстное меню для данного представления (несколько представлений могут отображать контекстное меню).

RequestPermissions(String[], Int32)

Запрашивает разрешения, предоставляемые этому приложению.

SetEnterSharedElementCallback(SharedElementCallback)

Когда пользовательские переходы используются с фрагментами, обратный вызов перехода вызывается при присоединении или отключении этого фрагмента, если не отображается стек назад.

SetExitSharedElementCallback(SharedElementCallback)

Когда пользовательские переходы используются с фрагментами, обратный вызов перехода выхода вызывается при присоединении или отключении этого фрагмента при всплывающем стеке назад.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetHasOptionsMenu(Boolean)

Сообщите, что этот фрагмент хотел бы участвовать в заполнении меню параметров, получив вызов onCreateOptionsMenu(Menu, MenuInflater) и связанные методы.

SetInitialSavedState(Fragment+SavedState)

Задайте исходное сохраненное состояние, которое этот фрагмент должен восстановить после первого создания, как возвращается в FragmentManager.saveFragmentInstanceState.

SetMenuVisibility(Boolean)

Задайте указание, должно ли отображаться меню этого фрагмента.

SetTargetFragment(Fragment, Int32)

Необязательный целевой объект для этого фрагмента.

ShouldShowRequestPermissionRationale(String)

Возвращает значение, указывающее, следует ли отображать пользовательский интерфейс с обоснованием перед запросом разрешения.

StartActivity(Intent, Bundle)

Вызов Activity.startActivity(Намерение, пакет) из содержащего действия фрагмента.

StartActivity(Intent)

Вызов Activity.startActivity(Намерение) из содержащего действия фрагмента.

StartActivityForResult(Intent, Int32, Bundle)

Вызов Activity.startActivityForResult(Intent,int,Bundle) из содержащего действия фрагмента.

StartActivityForResult(Intent, Int32)

Вызов Activity.startActivityForResult(Intent,int) из содержащего действия фрагмента.

StartIntentSenderForResult(IntentSender, Int32, Intent, ActivityFlags, ActivityFlags, Int32, Bundle)

Вызов Activity.startIntentSenderForResult(IntentSender,int,intent,int,int,int,int,bundle) из содержащего действия фрагмента.

StartPostponedEnterTransition()

Начать отложенные переходы после вызова отложенной отложенной передачи().

ToArray<T>()

Создает управляемый массив из этого Java оболочки массива.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterForContextMenu(View)

Запрещает отображение контекстного меню для данного представления.

UnregisterFromRuntime()

Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия.

(Унаследовано от Object)
Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.>

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

Имя Описание
IJavaPeerable.Disposed()

Уведомляет среду выполнения взаимодействия об удалении управляемого однорангового узла.

(Унаследовано от Object)
IJavaPeerable.DisposeUnlessReferenced()

Освобождает этот Java одноранговый узел, если он не сохраняется другой управляемой ссылкой.

(Унаследовано от Object)
IJavaPeerable.Finalized()

Уведомляет среду выполнения взаимодействия о завершении этого управляемого однорангового узла.

(Унаследовано от Object)
IJavaPeerable.JniManagedPeerState

Возвращает состояние, описывающее связь между этим управляемым одноранговым узлом и ссылкой на JNI.

(Унаследовано от Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Задает хэш-код удостоверения взаимодействия для этого Java однорангового узла.

(Унаследовано от Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Задает управляемое и JNI-состояние однорангового узла для этого Java однорангового узла.

(Унаследовано от Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Задает ссылку на объект JNI, используемую этим управляемым одноранговым узлом.

(Унаследовано от Object)

Методы расширения

Имя Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Этот класс не рекомендуется использовать на уровне API 28.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к