Виджеты являются важным компонентом настройки рабочего стола пользователя. Они часто могут помочь пользователям одним касанием выполнить критически важный путь пользователя к приложению или предоставить краткую сводку наиболее важных фрагментов данных приложения. Они также могут быть настроены в соответствии с потребностями пользователя и адаптированы к индивидуальным предпочтениям.
Качество виджета определяет вероятность взаимодействия пользователя с ним. Существует три основные категории качества виджетов:
- Уровень 3: Низкое качество: низкая производительность, устаревшее качество и неудовлетворительное взаимодействие с пользователем.
- Уровень 2: Стандарт качества — удовлетворяет все основные потребности и обеспечивает удовлетворительное качество обслуживания.
- Уровень 1: Дифференцированный — превосходит основные ожидания пользователя и обеспечивает оптимальный пользовательский опыт.
Уровень 3: Низкое качество
Виджет считается некачественным, если он не соответствует стандартным критериям макета, цвета, обнаружения и содержания. Дополнительные сведения о превышении уровня низкого качества см. в приведенных ниже рекомендациях.
Уровень 2 — Стандарт качества
Виджет считается качественным, если он соответствует всем следующим критериям макета, цвета, обнаружения и содержания:
Макет
- Виджет должен заполнять границы, установленные сеткой запуска при размещении на главном экране. Если он не соответствует приведенным ниже спецификациям, он классифицируется как уровень 3, низкое качество.
- Виджет должен правильно выравниваться по отношению к другим элементам главного экрана по вертикальной или горизонтальной оси и не занимать лишнего места.
- Виджет должен касаться как минимум двух противоположных краев сетки. Другими словами, виджеты не обязательно должны быть прямоугольными, они могут иметь произвольную форму, при условии, что края фигуры соприкасаются хотя бы с двумя краями сетки.
- При возможности изменения размера виджеты должны иметь соответствующий минимальный/максимальный размер, который можно установить с помощью minWidth, minHeight, maxResizeWidth и maxResizeHeight в XML-файле AppWidgetProviderInfo.
- Максимальный размер должен быть установлен, если изменение размера виджета только добавляет пустое пространство.
- Минимальный размер должен быть установлен на основе минимального размера, который ваш виджет по-прежнему представляет ценность и соответствует требованиям к сенсорному экрану (48x48).

Цвет
- Текст виджета и кнопки со значками должны иметь достаточную степень контрастности для соответствия требованиям доступности (кроме миниатюр и изображений).

Открытие
- Виджет должен иметь точный предварительный просмотр в средстве выбора виджетов (подходит статический ресурс). Это можно установить с помощью PreviewImage и PreviewLayout в XML-файле AppWidgetProviderInfo или с помощью Generated Previews.
- Предварительный просмотр виджета соответствует функциональности, которая будет предложена при добавлении на главный экран.

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

Уровень 1 – Дифференцированный
Лучшие виджеты соответствуют всем критериям уровня 2 и всем следующим критериям макета, цвета, обнаружения и согласованности системы.
Макет
- Виджет заполняет границы и правильно выравнивается по другим элементам главного экрана по вертикальной или горизонтальной оси и не занимает ненужного места.
- Все фигуры ДОЛЖНЫ касаться всех четырех краев границ сетки.

Виджет поддерживает предпочтительный размер
- Размер виджета можно изменить как минимум до одного из следующих размеров: 2x2, 4x2.
Заголовок виджета используется и применяется последовательно
- Рекомендуется использовать заголовок, если:
- Виджет содержит прокручиваемый контент (список, сетка и т. д.)
- Содержимое заголовка обеспечивает полезный контекст (название списка дел).
- Заголовок не является обязательным, если:
- Виджет представляет собой изображение без полей (фотографии)
- Пространство ограничено (высота < 2 рядов)
- Когда содержимое заголовка является избыточным.
- Если вы используете заголовок, соответствуйте нашей спецификации:
- Значок, заголовок, действия.
- Значок всегда присутствует
- Заголовок появляется, когда достаточно места
- Действия на основе контекста виджета.
- Высота 48 dp, отступы – 14 dp.
- Значок, заголовок, действия.
- Рекомендуется использовать заголовок, если:

Цвет
- Виджет поддерживает цветовую тему в зависимости от контекста устройства или приложения.
- Динамический цвет — пример темирования контекста устройства.
- Локальное извлечение цвета — пример темирования на основе контента приложения.
- Семантический цвет — это пример темирования на основе контента приложения.

- Виджет поддерживает светлые и темные палитры режимов.
Открытие
- Предварительная версия включает пользовательский контент и/или применяет системную тему (API Generated Previews или PreviewLayout в AppWidgetProviderInfo XML ).

- Виджет имеет имя или описание, которое помогает пользователям понять ценность виджета.
- Длина имени менее 50 символов.
- Имя и описание уникальны в приложении (например, в приложении не может быть нескольких виджетов с одинаковыми именами).

Согласованность системы
- Прямоугольные виджеты должны использовать угловой радиус, предусмотренный системой (зависит от OEM).

- Показывает состояние загрузки с индикатором выполнения (в пределах
initialLayout
с тематическим цветом или фирменным эквивалентом).

- Использует конфигурацию системы вместо точки входа в настройки пользовательского виджета.
- Использует переход запуска системы при входе/выходе из приложения в виджет.
Помните о советах, предлагаемых в этом руководстве, при создании виджета. Вы хотите обеспечить лучшее качество и отличный пользовательский опыт. Многие качественные панели можно встретить с помощью Canonical Layouts. Чтобы узнать больше о полосах качества, дизайнеры обращаются к разделу «Шаблоны виджетов Android» , а разработчики — к примерам кода макета в наших примерах платформы и руководстве для разработчиков макетов .