Состав и структура контента

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

1. Базовая структура: сетка макета для размещения контента

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

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

На этом этапе вы также можете задать безопасные зоны или отступы. Отступы системных строк предотвращают попадание важных действий под системные строки. Контент должен отображаться за системными строками.

Поля (1) и вставка системной строки (2)

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

Экраны мобильных устройств часто делятся на четыре столбца

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

Модульная сетка хорошо подходит для одинаково важного, но очень структурированного контента и макета, например фотогалереи.

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

Независимо от типа, сетка макета также должна адаптироваться к размерам и форм-факторам.

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

Размещение контента

Начало добавления текста в структуру макета. Поля защищают контент от краев экрана. Столбцы обеспечивают согласованную структуру интервалов и выравнивания.

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

Начните с согласованной сетки макета. Если этого требует контент, сетку можно нарушить. Но даже в этом случае вы можете обнаружить, что другая сетка лучше подходит для вашего контента.

Подробнее о контейнерах макетов, таких как пейджеры и макеты потока.

Другие типы сеток макета

Рукопись и кладка – это другие типы сеток макета.

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

2. Применить ограничение

Используйте контейнеры, чтобы визуально группировать элементы.

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

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

Разделение контента на две большие группы: заголовок и основной текст

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

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

Пример неявного контейнера для маленьких карточек и явного контейнера для пустого пространства с инструкциями по уходу.

3. Позиция контента

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

Подумайте, является ли ваш контент одномерным или двумерным. Например, контент может прокручиваться по горизонтали, по вертикали или в обоих направлениях.

Как показано на рисунке ниже, в макете аутентификации можно использовать двухмерную сетку.

макет аутентификации, в котором можно использовать сетку

Элементы пользовательского интерфейса также могут изгибаться и перетекать в одном измерении, например фильтры или теги контента. Подробнее о Flexbox…

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

Макет, состоящий из горизонтальной сетки и фида

Вы можете представить контент в виде прокручиваемых строк или столбцов с помощью LazyRow и LazyColumn.

Выравнивание

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

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

Установите одинаковое расстояние между похожими элементами.
Нарушать читаемость, используя непоследовательные интервалы между элементами, что может сделать дизайн бессистемным.

4. Масштабирование и кадрирование контента

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

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

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

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

Макет, состоящий из горизонтальной сетки и фида

Например, главное изображение во всю ширину занимает весь экран телефона в горизонтальной ориентации.

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

Если соотношение сторон должно быть сохранено, например для вертикального видео, ограничьте его и сбалансируйте пустое пространство.

Внешний экран с вертикально ориентированным контентом.

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

Закрепленный контент

Многие компоненты имеют встроенные взаимодействия, прокрутку и позиционирование с помощью слотов или каркасов, например панели приложений. Некоторые элементы можно изменить, чтобы они оставались фиксированными, а не реагировали на прокрутку, например плавающие кнопки действий (FAB), в которых размещаются критические действия. Закрепляйте элементы, чтобы лучше фокусироваться на них в определенных сценариях. Например, закрепите поле ввода текста на клавиатуре, чтобы оно не скрывалось.

Внешний экран с вертикально ориентированным контентом.

Для ввода текста, например сообщений и аутентификации, ввод прикрепляется к клавиатуре и получает единственный фокус.

Компоненты в макете

Компоненты Material 3 имеют собственные конфигурации и состояния для взаимодействия и контента.

Compose предоставляет удобные макеты для объединения компонентов Material в общие шаблоны экрана. Такие composable-функции, как Scaffold, предоставляют слоты для различных компонентов и других элементов экрана. Подробнее о компонентах и макетах Material Design…