Макеты с вкладками с помощью панели действий

Макеты с вкладками с помощью панели действий

Панель действий — это шаблон пользовательского интерфейса Android, который используется для предоставления согласованного пользовательского интерфейса для ключевых функций, таких как вкладки, удостоверение приложения, меню и поиск. В Android 3.0 (уровень API 11) Google представил API ActionBar для платформы Android. API ActionBar представляют темы пользовательского интерфейса, чтобы обеспечить согласованный внешний вид и классы, которые позволяют использовать пользовательские интерфейсы с вкладками. В этом руководстве описывается добавление вкладок панели действий в приложение Xamarin.Android. В нем также рассматривается использование библиотеки поддержки Android версии 7 для резервного копирования вкладок ActionBar в приложения Xamarin.Android, предназначенные для Android 2.1 до Android 2.3.

Обратите внимание, что Toolbar это более новый и более обобщенный компонент панели действий, который следует использовать вместо ActionBar ( Toolbar был разработан для замены ActionBar ). Дополнительные сведения см. на панели инструментов.

Требования

Любое приложение Xamarin.Android, предназначенное для API уровня 11 (Android 3.0) или более поздней версии, имеет доступ к API ActionBar в составе собственных API Android.

Некоторые API ActionBar были перенесены на api уровня 7 (Android 2.1) и доступны через библиотеку AppCompat версии 7, которая предоставляется приложениям Xamarin.Android через пакет поддержки Xamarin Android — V7 .

Общие сведения о вкладках на панели действий

Панель действий пытается одновременно отобразить все ее вкладки и сделать все вкладки равными по ширине самой широкой метки вкладок. Это показано на следующем снимок экрана:

Если панель действий не может отобразить все вкладки, она настроит вкладки в горизонтально прокручиваемом представлении. Пользователь может провести пальцем влево или вправо, чтобы увидеть остальные вкладки. На этом снимку экрана из Google Play показан пример:

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

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

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

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

Xamarin.Android упаковывает ActionBar.ITabListener события в ActionBar.Tab класс. Приложения могут назначать обработчики событий одному или нескольким из этих событий. Существует три события (по одному для каждого метода в ActionBar.ITabListener ), которые будет вызывать вкладка панели действий:

  • Вкладкавыбранная
  • TabReselected
  • TabUnselected
Добавление вкладок на панель действий

ActionBar является собственным для Android 3.0 (уровень API 11) и выше и доступен для любого приложения Xamarin.Android, предназначенного для этого API как минимум.

Ниже показано, как добавить вкладки ActionBar в действие Android:

В методе OnCreate действия перед инициализацией мини-приложений пользовательского интерфейса приложение должно задать NavigationMode для него ActionBar ActionBar.NavigationModeTabs значение, как показано в этом фрагменте кода:

Создание новой вкладки с помощью ActionBar.NewTab() .

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

Добавьте вкладку, созданную на предыдущем шаге. ActionBar

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

Обработчики событий и ActionBar.ITabListener

Приложения должны использовать обработчики событий и ActionBar.ITabListener для различных сценариев. Обработчики событий предоставляют определенное количество синтаксического удобства; они спасают вас от необходимости создавать класс и реализовывать ActionBar.ITabListener . Это удобство дает затраты. Xamarin.Android выполняет это преобразование для вас, создавая один класс и реализуя ActionBar.ITabListener для вас. Это нормально, если приложение имеет ограниченное количество вкладок.

При работе с несколькими вкладками или совместном использовании общих функций между вкладками ActionBar можно повысить эффективность с точки зрения памяти и производительности для создания пользовательского класса, реализующего ActionBar.ITabListener и совместного использования одного экземпляра класса. Это приведет к уменьшению числа объектов GREF, которые использует приложение Xamarin.Android.

Обратная совместимость для старых устройств

Вкладки ActionBar для библиотеки поддержки Android версии 7 appCompat обратно в Android 2.1 (уровень API 7). Вкладки доступны в приложении Xamarin.Android после добавления этого компонента в проект.

Чтобы использовать ActionBar, действие должно быть подклассом ActionBarActivity и использовать тему AppCompat, как показано в следующем фрагменте кода:

📎📎📎📎📎📎📎📎📎📎