ФрагментыFragments

Android 3.0 введены фрагментов, в котором показано, как для поддержки более гибкие макеты для многих экранах различных размеров, найденных на телефонах и планшетах. Здесь мы рассмотрим, как использовать фрагменты для разработки приложений Xamarin.Android, а также поддержка фрагментов в предварительно Android 3.0 устройств (уровень API 11).Android 3.0 introduced Fragments, showing how to support more flexible designs for the many different screen sizes found on phones and tablets. This article will cover how to use Fragments to develop Xamarin.Android applications, and also how to support Fragments on pre-Android 3.0 (API Level 11) devices.

Общие сведения о фрагментахFragments Overview

Больший размер экрана, найденных на большинстве планшетов добавлен дополнительный уровень сложности разработки приложений Android, макет, предназначенные для небольших экрана не обязательно будут работать также для больших экранов и наоборот.The larger screen sizes found on most tablets added an extra layer of complexity to Android development—a layout designed for the small screen does not necessarily work as well for larger screens, and vice-versa. Для сокращения числа, это вызывает сложности, в Android 3.0 добавлены две новые функции, фрагментов и пакеты поддержки.To reduce the number of complications that this introduced, Android 3.0 added two new features, Fragments and Support Packages.

Фрагменты могут рассматриваться как модулей интерфейса пользователя.Fragments can be thought of as user interface modules. Они позволяют разработчику использовать разделения пользовательского интерфейса в изолированной, повторно используемых частей, которые могут выполняться в отдельных действиях.They let the developer divide up the user interface into isolated, reusable parts that can be run in separate Activities. Во время выполнения действия самостоятельно определит, какие фрагменты для использования.At run time, the Activities themselves will decide which Fragments to use.

Пакеты поддержки называли совместимости библиотек и допускается фрагментов для использования на устройствах под управлением версий Android до версии 3.0 Android (уровень API 11).Support Packages were originally called Compatibility Libraries and allowed Fragments to be used on devices that run versions of Android prior to Android 3.0 (API Level 11).

Например на следующем рисунке показано, как одно приложение использует фрагментов, на различных устройствах конструктивными.For example, the image below illustrates how a single application uses Fragments across varying device form factors.

Схема использования фрагментов в планшетных ПК и мобильные телефоныDiagram of how fragments are used in Tablets and Handsets

Фрагмент A со списком, хотя фрагмент B содержит подробные сведения об элементе, выбранном в этом списке.Fragment A contains a list, while Fragment B contains details for an item selected in that list. При запуске приложения на планшете, она может отображать обоих фрагментах на том же действии.When the application is run on a tablet, it can display both Fragments on the same Activity. При запуске того же приложения на мобильный телефон (с размер экрана) фрагментов размещаются в двух отдельных действий.When the same application is run on a handset (with its smaller screen size), the Fragments are hosted in two separate Activities. Фрагмент A и B фрагмент одинаковы на обоих форм-факторов, но действия, в которых они размещены различаются.Fragment A and Fragment B are the same on both form factors, but the Activities that host them are different.

Чтобы помочь действие координации и управления ими все фрагменты, Android появился новый класс с именем FragmentManager.To help an Activity coordinate and manage all these Fragments, Android introduced a new class called the FragmentManager. Каждое действие имеет свой собственный экземпляр FragmentManager для добавления, удаления и поиск размещенных фрагментов.Each Activity has its own instance of a FragmentManager for adding, deleting, and finding hosted Fragments. Следующей схеме показана связь между фрагментов и действиями.The following diagram illustrates the relationship between Fragments and Activities:

Схема, иллюстрирующая связи между активности, диспетчер фрагментов и фрагментовDiagram illustrating relationships between Activity, Fragment Manager, and Fragments

Существуют некоторые особые фрагментов можно рассматривать как составных элементов управления или как мини действия.In some regards, Fragments can be thought of as composite controls or as mini-Activities. Они включать части пользовательского интерфейса в многократно используемых модули, которые могут затем использоваться независимо друг от друга разработчиками в действиях.They bundle up pieces of UI into reusable modules that can then be used independently by developers in Activities. Фрагмент имеет представление иерархии — так же, как действие, но в отличие от действия, его можно использовать совместно на экранах.A Fragment does have a view hierarchy—just like an Activity—but, unlike an Activity, it can be shared across screens. Представления отличаются от фрагментов, что фрагменты имеют свои собственные жизненный цикл; Нет представлений.Views differ from Fragments in that Fragments have their own lifecycle; views do not.

Хотя действие является узлом для одного или нескольких фрагментов, не учитывает фрагментов, сами.While the Activity is a host to one or more Fragments, it is not directly aware of the Fragments themselves. Аналогично фрагменты не учитывает других фрагментов в действии размещения.Likewise, Fragments are not directly aware of other Fragments in the hosting Activity. Тем не менее, фрагменты и действий известно о FragmentManager в их действия.However, Fragments and Activities are aware of the FragmentManager in their Activity. С помощью FragmentManager, возможно, для действия или фрагмент получить ссылку к определенному экземпляру фрагмента, а затем вызывать методы на этом экземпляре.By using the FragmentManager, it is possible for an Activity or a Fragment to obtain a reference to a specific instance of a Fragment, and then call methods on that instance. Таким образом действие или фрагментов можно общения и взаимодействия с других фрагментах.In this way, the Activity or Fragments can communicate and interact with other Fragments.

Это руководство содержит полное описание по использованию фрагментов, включая:This guide contains comprehensive coverage about how to use Fragments, including:

  • Создание фрагментов — как создать базовый фрагмент и основные методы, которые должны быть реализованы.Creating Fragments – How to create a basic Fragment and key methods that must be implemented.
  • Фрагмент, управление и транзакции — способы управления фрагментов во время выполнения.Fragment Management and Transactions – How to manipulate Fragments at run time.
  • Пакет поддержки Android — о том, как использовать библиотеки, которые позволяют фрагментов для использования в старых версиях Android.Android Support Package – How to use the libraries that allow Fragments to be used on older versions of Android.

ТребованияRequirements

Фрагменты доступны в пакете SDK для Android, начиная с API уровня 11 (Android 3.0), как показано на следующем снимке экрана:Fragments are available in the Android SDK starting with API level 11 (Android 3.0), as shown in the following screenshot:

Выбор уровня API Android SDK ManagerSelecting the API level in the Android SDK Manager

Фрагменты являются в Xamarin.Android версии 4.0 и более поздних версий.Fragments are available in Xamarin.Android 4.0 and higher. Приложения Xamarin.Android должны быть предназначены по крайней мере уровень API 11 (Android 3.0) или более поздней версии, чтобы использовать фрагменты.A Xamarin.Android application must target at least API level 11 (Android 3.0) or higher in order to use Fragments. Требуемая версия .NET Framework может быть задан в проект свойства, как показано ниже:The Target Framework may be set in the project Properties as shown below:

Установка уровня API целевой платформы в параметрах проектаSetting the Target Framework API level in the Project Options

Это можно использовать фрагменты в более старых версиях Android с помощью пакета Android поддержки и Xamarin.Android 4.2 или более поздней версии.It is possible to use Fragments in older versions of Android by using the Android Support Package and Xamarin.Android 4.2 or higher. В документах в этом разделе более подробно рассматривается как это сделать.How to do this is covered in more detail in the documents of this section.