QML-тип Cover

Обложка приложения. Подробнее...

Строка импорта: import Sailfish.Silica 1.0
Наследуется от: Item
Наследники: CoverBackground

Свойства

Подробное описание

Тип Cover реализует активную обложку — визуальное представление приложения, которое отображается на домашнем экране ОС Аврора, когда приложение работает в фоновом режиме.

Обложки используются для отображения статуса или другой важной информации, которая передает назначение приложения. Например, приложение «Почта» может показывать количество непрочитанных писем, а приложение «Галерея» — миниатюрные изображения случайных фотографий из коллекции пользователя. Обложка может поддерживать несколько действий, чтобы дать пользователю выполнять необходимые действия с приложением, когда оно работает в фоновом режиме.

Установить обложку можно с помощью свойства cover компонента ApplicationWindow.

Ниже приведен пример простого приложения, которое позволяет пользователю выбирать дату с помощью сетки календаря (DatePicker). Выбранная дата будет отображаться на обложке приложения:

 import QtQuick 2.2
 import Sailfish.Silica 1.0

 ApplicationWindow {
     initialPage: Component {
         Page {
             property string selectedDate: datePicker.dateText

             PageHeader {
                 id: header
                 title: datePicker.dateText
             }
             DatePicker {
                 id: datePicker
                 anchors.top: header.bottom
             }
         }
     }

     cover: Component {
         Cover {
             transparent: true

             Label {
                 anchors.centerIn: parent
                 font.pixelSize: Theme.fontSizeLarge
                 text: pageStack.currentPage.selectedDate
             }
         }
     }
 }

Рекомендации по оформлению обложки приложения

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

При создании обложки приложения следует обратить внимание на следующее:

  • Обложка должна выглядеть так, чтобы пользователь мог распознать нужное приложение среди других, показанных на домашнем экране. Например, если на обложке отображаются миниатюры фотографий, то пользователь легко определит, что перед ним обложка приложения «Галерея», приложение «Карты» будет отображать на обложке вид карты, а приложение «Погода» покажет на обложке графическое представление текущих погодных условий. Уникальность обложки поможет пользователям распознать приложение среди других на домашнем экране.
  • Обложка не должна быть перегружена большим количеством информации, все детали пользователь может увидеть, открыв приложение. Обложка должна предусматривать возможность масштабирования, т. к. ее размер может изменяться в зависимости от количества приложений, запущенных в фоновом режиме.
  • Для более точной передачи информации рекомендуется изменять содержимое обложки в зависимости от текущего состояния приложения. Например, когда приложение «Галерея» показывает основной вид браузера фотографий, его обложка показывает подборку случайных картинок из коллекции; когда это же приложение показывает какую-либо картинку в полноэкранном режиме, его обложка показывет только эту картинку, масштабированную до размеров обложки.
  • Для обеспечения лучшего восприятия информации следует избегать использования размеров шрифтов меньших, чем Theme.fontSizeMedium. Также может быть полезно затенять или обрезать часть содержимого обложки ввиду ограниченности пространства.
  • Элементы обложки (текст и значки) должны быть окрашены в цвет Theme.primaryColor. Цвет Theme.highlightColor обычно применяется для привлечения внимания к важной информации.

Если вся поверхность обложки заполнена только текстом, то содержимое должно быть отделено от краев отступами (слева и справа — Theme.paddingLarge, сверху и снизу — Theme.paddingMedium).

Выполнение ресурсоёмких задач на обложке приложения

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

Например, обложка приложения «Погода» должна обновляться только при поступлении с сервера новых данных о погоде, обложка приложения «Почта» — после синхронизации почтового аккаунта с сервером. Для приложения «Галерея» (с анимацией обложки в виде слайд-шоу из уменьшенных картинок) могут потребоваться более частые обновления обложки. Для экономии системных ресурсов запуск анимации может выполняться каждые 30 секунд и, разумеется, только если обложка реально отображается на экране.

Проверить текущее состояние обложки приложения можно с помощью свойства status. В приведенном ниже примере анимация на обложке запускается только при значении свойства status, равном Cover.Active, на 2 секунды через каждые 30 секунд:

 import QtQuick 2.2
 import Sailfish.Silica 1.0

 Cover {
     id: cover
     anchors.fill: parent
     transparent: true

     Label {
         anchors.centerIn: parent
         text: cover.status == Cover.Active ? "I'm active!" : "I'm sleeping"

         SequentialAnimation on rotation {
             running: cover.status == Cover.Active
             loops: Animation.Infinite

             RotationAnimation {
                 duration: 2000
                 from: 0; to: 360
             }

             PauseAnimation { duration: 30 * 1000 }
         }
     }
 }

См. также разделы CoverBackground и >Использование особенных функций ОС Аврора.

Описание свойств

allowResize : bool

Определяет, поддерживается ли масштабирование элементов на обложке. Если данное свойство установлено в значение false (по умолчанию), то размер обложки подразумевается равным Theme.coverSizeLarge, а сама обложка будет масштабироваться при необходимости. При значении свойства, равном true, элементы обложки будут менять свой порядок для оптимального заполнения доступного пространства.

coverActionArea : Item

Область, зарезервированная для действий, отображаемых на активной обложке приложения. Представляет собой элемент типа Item, который можно привязать к другим элементам. Геометрию области можно получить через такие свойства, как y или height.

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

size : enumeration

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

  • Cover.Large — если в фоне работает не более четырех приложений, то обложка имеет размер, равный Theme.coverSizeLarge;
  • Cover.Small — если в фоне работает не менее пяти приложений, то обложка имеет размер, равный Theme.coverSizeSmall.

status : enumeration

Содержит текущее состояние обложки. Данное свойство может принимать одно из следующих значений:

  • Cover.Inactive — обложка не видна и пользователь не может с ней взаимодействовать;
  • Cover.Activating — обложка переходит в статус активной (Cover.Active);
  • Cover.Active — обложка видна и пользователь может с ней взаимодействовать;
  • Cover.Deactivating — обложка переходит в статус неактивной (Cover.Inactive);

transparent : bool

Определяет прозрачность фона обложки.

При значении свойства, равном true, отображается стилизованный полупрозрачный фон обложки, в противном случае — фон отсутствует.

См. также CoverBackground.