Канонические макеты

Канонические макеты — это проверенные, универсальные макеты, обеспечивающие оптимальное взаимодействие с пользователем на различных форм-факторах.

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

Стандартные макеты поддерживают телефоны с маленькими экранами, а также планшеты, складные устройства и устройства ChromeOS. Созданные в соответствии с принципами Material Design , эти макеты являются одновременно эстетичными и функциональными.

Фреймворк Android включает в себя специализированные компоненты, которые упрощают и делают надежной реализацию макетов.

Стандартные макеты создают привлекательные, повышающие производительность пользовательские интерфейсы, которые лежат в основе отличных приложений.

Подробный список

Макет структуры "список-детали".

Формат «список-подробности» позволяет пользователям просматривать списки элементов, содержащих описательную, пояснительную или другую дополнительную информацию — подробную информацию об элементе.

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

Расширенные по ширине окна (см. раздел «Использование классов размеров окна ») позволяют одновременно отображать список и подробную информацию. Выбор элемента списка обновляет панель с подробной информацией, отображая связанное с выбранным элементом содержимое.

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

Изменения конфигурации, такие как изменение ориентации устройства или размера окна приложения, могут изменить класс размера окна дисплея. Макет «список-подробности» реагирует соответствующим образом, сохраняя состояние приложения:

  • Если расширенное окно, отображающее одновременно список и подробную информацию, сужается до среднего или компактного размера, подробная информация остается видимой, а список скрывается.
  • Если на экране средней или компактной ширины видна только панель с подробной информацией, и размер окна увеличивается до «расширен», то список и подробная информация отображаются одновременно, при этом в списке указывается, что выбран элемент, соответствующий содержимому панели с подробной информацией.
  • Если на экране средней или компактной ширины видна только панель списка, а при расширении отображается список и панель с подробной информацией в качестве заполнителя, то список и панель с подробными сведениями отображаются одновременно.

Функция «Список-подробности» идеально подходит для мессенджеров , менеджеров контактов , интерактивных медиабраузеров или любых приложений, где контент может быть организован в виде списка элементов, раскрывающих дополнительную информацию.

Рисунок 1. Приложение для обмена сообщениями, отображающее список переписок и подробную информацию о выбранной переписке.

Выполнение

The declarative paradigm of Compose supports window size class logic that determines whether to show the list and detail panes at the same time (when the width window size class is expanded) or just the list or detail pane (when the width window size class is medium or compact).

To ensure unidirectional data flow, hoist all state, including current window size class and detail of the selected list item (if any), so all composables have access to the data and can render correctly.

When showing just the detail pane on small window sizes, add a BackHandler to remove the detail pane and display just the list pane. The BackHandler is not part of the overall app navigation since the handler is dependent on the window size class and selected detail state.

For an example implementation, see the List-detail with Compose sample.

Кормить

Макет схемы расположения элементов на экране.

Макет ленты располагает эквивалентные элементы контента в настраиваемой сетке для быстрого и удобного просмотра большого объема контента.

Размер и расположение определяют взаимосвязь между элементами контента.

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

Карточки и списки — распространенные элементы оформления ленты новостей.

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

Ленты новостей особенно хорошо подходят для новостных приложений и социальных сетей .

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

Выполнение

A feed consists of a large number of content elements in a vertical scrolling container laid out in a grid. Lazy lists efficiently render a large number of items in columns or rows. Lazy grids render items in grids, supporting configuration of the item sizes and spans.

Configure the columns of the grid layout based on the available display area to set the minimum allowable width for grid items. When defining grid items, adjust column spans to emphasize some items over others.

For section headers, dividers, or other items designed to occupy the full width of the feed, use maxLineSpan to take up the full width of the layout.

On compact-width displays that don't have enough space to show more than one column, LazyVerticalGrid behaves just like a LazyColumn.

For an example implementation, see the Feed with Compose sample.

Вспомогательная панель

Макет расположения вспомогательных панелей.

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

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

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

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

Варианты использования вспомогательной панели включают:

Рисунок 3. Приложение для покупок с описанием товаров во вспомогательной панели.

Выполнение

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

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

Для дисплеев компактной ширины размещайте вспомогательный контент под основным контентом или внутри нижнего листа. Для средней и расширенной ширины размещайте вспомогательный контент рядом с основным контентом, размер которого соответствует размеру контента и доступному пространству. Для средней ширины разделите пространство дисплея поровну между основным и вспомогательным контентом. Для увеличения ширины отведите 70 % места для основного контента и 30 % для вспомогательного контента.

Пример реализации см. в разделе «Поддержка» с примером Compose .

,

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

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

Для дисплеев компактной ширины размещайте вспомогательный контент под основным контентом или внутри нижнего листа. Для средней и расширенной ширины размещайте вспомогательный контент рядом с основным контентом, размер которого соответствует размеру контента и доступному пространству. Для средней ширины разделите пространство дисплея поровну между основным и вспомогательным контентом. Для увеличения ширины отведите 70 % места для основного контента и 30 % для вспомогательного контента.

Пример реализации см. в разделе «Поддержка» с примером Compose .

Дополнительные ресурсы

,

Канонические макеты — это проверенные, универсальные макеты, обеспечивающие оптимальное взаимодействие с пользователем на различных форм-факторах.

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

Стандартные макеты поддерживают телефоны с маленькими экранами, а также планшеты, складные устройства и устройства ChromeOS. Созданные в соответствии с принципами Material Design , эти макеты являются одновременно эстетичными и функциональными.

Фреймворк Android включает в себя специализированные компоненты, которые упрощают и делают надежной реализацию макетов.

Стандартные макеты создают привлекательные, повышающие производительность пользовательские интерфейсы, которые лежат в основе отличных приложений.

Подробный список

Макет структуры "список-детали".

Формат «список-подробности» позволяет пользователям просматривать списки элементов, содержащих описательную, пояснительную или другую дополнительную информацию — подробную информацию об элементе.

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

Расширенные по ширине окна (см. раздел «Использование классов размеров окна ») позволяют одновременно отображать список и подробную информацию. Выбор элемента списка обновляет панель с подробной информацией, отображая связанное с выбранным элементом содержимое.

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

Изменения конфигурации, такие как изменение ориентации устройства или размера окна приложения, могут изменить класс размера окна дисплея. Макет «список-подробности» реагирует соответствующим образом, сохраняя состояние приложения:

  • Если расширенное окно, отображающее одновременно список и подробную информацию, сужается до среднего или компактного размера, подробная информация остается видимой, а список скрывается.
  • Если на экране средней или компактной ширины видна только панель с подробной информацией, и размер окна увеличивается до «расширен», то список и подробная информация отображаются одновременно, при этом в списке указывается, что выбран элемент, соответствующий содержимому панели с подробной информацией.
  • Если на экране средней или компактной ширины видна только панель списка, а при расширении отображается список и панель с подробной информацией в качестве заполнителя, то список и панель с подробными сведениями отображаются одновременно.

Функция «Список-подробности» идеально подходит для мессенджеров , менеджеров контактов , интерактивных медиабраузеров или любых приложений, где контент может быть организован в виде списка элементов, раскрывающих дополнительную информацию.

Рисунок 1. Приложение для обмена сообщениями, отображающее список переписок и подробную информацию о выбранной переписке.

Выполнение

The declarative paradigm of Compose supports window size class logic that determines whether to show the list and detail panes at the same time (when the width window size class is expanded) or just the list or detail pane (when the width window size class is medium or compact).

To ensure unidirectional data flow, hoist all state, including current window size class and detail of the selected list item (if any), so all composables have access to the data and can render correctly.

When showing just the detail pane on small window sizes, add a BackHandler to remove the detail pane and display just the list pane. The BackHandler is not part of the overall app navigation since the handler is dependent on the window size class and selected detail state.

For an example implementation, see the List-detail with Compose sample.

Кормить

Макет схемы расположения элементов на экране.

Макет ленты располагает эквивалентные элементы контента в настраиваемой сетке для быстрого и удобного просмотра большого объема контента.

Размер и расположение определяют взаимосвязь между элементами контента.

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

Карточки и списки — распространенные элементы оформления ленты новостей.

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

Ленты новостей особенно хорошо подходят для новостных приложений и социальных сетей .

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

Выполнение

A feed consists of a large number of content elements in a vertical scrolling container laid out in a grid. Lazy lists efficiently render a large number of items in columns or rows. Lazy grids render items in grids, supporting configuration of the item sizes and spans.

Configure the columns of the grid layout based on the available display area to set the minimum allowable width for grid items. When defining grid items, adjust column spans to emphasize some items over others.

For section headers, dividers, or other items designed to occupy the full width of the feed, use maxLineSpan to take up the full width of the layout.

On compact-width displays that don't have enough space to show more than one column, LazyVerticalGrid behaves just like a LazyColumn.

For an example implementation, see the Feed with Compose sample.

Вспомогательная панель

Макет расположения вспомогательных панелей.

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

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

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

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

Варианты использования вспомогательной панели включают:

Рисунок 3. Приложение для покупок с описанием товаров во вспомогательной панели.

Выполнение

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

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

Для дисплеев компактной ширины размещайте вспомогательный контент под основным контентом или внутри нижнего листа. Для средней и расширенной ширины размещайте вспомогательный контент рядом с основным контентом, размер которого соответствует размеру контента и доступному пространству. Для средней ширины разделите пространство дисплея поровну между основным и вспомогательным контентом. Для увеличения ширины отведите 70 % места для основного контента и 30 % для вспомогательного контента.

Пример реализации см. в разделе «Поддержка» с примером Compose .

,

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

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

Для дисплеев компактной ширины размещайте вспомогательный контент под основным контентом или внутри нижнего листа. Для средней и расширенной ширины размещайте вспомогательный контент рядом с основным контентом, размер которого соответствует размеру контента и доступному пространству. Для средней ширины разделите пространство дисплея поровну между основным и вспомогательным контентом. Для увеличения ширины отведите 70 % места для основного контента и 30 % для вспомогательного контента.

Пример реализации см. в разделе «Поддержка» с примером Compose .

Дополнительные ресурсы