From de81619dea3439d917c0b84024b3516abb47fa5e Mon Sep 17 00:00:00 2001 From: David Friedman Date: Tue, 30 Jun 2015 13:09:48 -0700 Subject: Docs: Localization of Design pages on DAC. Bug: 20503708 Change-Id: Id3a4f5900d99125a1475d939d43444f46555018c --- .../intl/ru/design/patterns/navigation.jd | 213 +++++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 docs/html-intl/intl/ru/design/patterns/navigation.jd (limited to 'docs/html-intl/intl/ru/design/patterns/navigation.jd') diff --git a/docs/html-intl/intl/ru/design/patterns/navigation.jd b/docs/html-intl/intl/ru/design/patterns/navigation.jd new file mode 100644 index 0000000..a65a8f6 --- /dev/null +++ b/docs/html-intl/intl/ru/design/patterns/navigation.jd @@ -0,0 +1,213 @@ +page.title=Навигация с помощью кнопок "Назад" и "Вверх" +page.tags="navigation","activity","task","up navigation","back navigation" +page.image=/design/media/navigation_between_siblings_gmail.png +@jd:body + + +
+

Документация для разработчиков

+

Обеспечение эффективной навигации

+
+
+ +

Внутренне непротиворечивая навигация является важнейшей составляющей пользовательского интерфейса. Мало что так раздражает +пользователей, как несогласованное или непредсказуемое поведение элементов навигации. В Android 3.0 +глобальное поведение навигации претерпело значительные изменения. Тщательное следование +инструкциям по применению кнопок "Назад" и "Вверх" сделает навигацию в вашем приложении предсказуемой и надежной с точки зрения пользователей.

+

В Android 2.3 и в более ранних версиях для навигации внутри приложения использовалась системная кнопка Назад. + С появлением панели действий в Android 3.0 стал доступен второй механизм +навигации, — кнопка Вверх, содержащая значок приложения и левую угловую скобку.

+ + + +

Кнопки "Вверх" и "Назад"

+ +

Кнопка "Вверх" используется для навигации внутри приложения по иерархической структуре его +экранов. Например, если на экране A отображается некоторый список, и при выборе какого-либо элемента открывается +экран B (с подробной информацией об этом элементе), то на экране B должна присутствовать кнопка "Вверх" + для возврата к экрану A.

+

Если экран является самым верхним в приложении (то есть главным), он не должен содержать кнопку +"Вверх".

+ +

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

+ +

Если предыдущий экран одновременно является иерархическим родителем текущего, +кнопка "Назад" имеет то же действие, что и кнопка "Вверх"—, и это случается довольно +часто. Однако, в отличие от кнопки "Вверх", гарантирующей, что пользователь остается в приложении, кнопка "Назад" +может перевести его на главный экран или даже в другое приложение.

+ + + +

Кроме того, кнопка "Назад" проявляет поведение, не связанное напрямую с навигацией между экранами. Она +

+ +

Навигация внутри приложения

+ +

Переход на экраны с несколькими точками входа

+

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

+

Изменение представления содержимого на экране

+

Изменение параметров представления содержимого на экране не сказывается на поведении кнопок "Вверх" и "Назад", — экран остается +на прежнем месте в иерархии приложения, а история навигации не меняется.

+

Примерами изменения представления являются

+ +

Навигация между экранами одного уровня

+

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

+ + + +

Однако существует важное исключение из этого правила во время просмотра подробных представлений элементов, не связанных +вместе ссылающимся списком, например—, приложений +одного разработчика или альбомов одного исполнителя в Play Store. В этих случаях переход по каждой ссылке создает +историю навигации, что заставляет кнопку "Назад" перебирать все ранее просмотренные экраны. Кнопка "Вверх" должна по-прежнему +игнорировать эти связанные по смыслу экраны и осуществлять переход на последний просмотренный контейнерный экран.

+ + + +

Разработчик может сделать поведение кнопки "Вверх" еще более интеллектуальным, исходя из своих знаний о структуре подробного +представления. Вернемся к примеру с просмотром Play Store. Представьте, что пользователь перешел от информации о +книге к информации о ее экранизации. Тогда кнопка "Вверх" могла бы переводить пользователя в контейнер +(Фильмы), в котором он еще не был.

+ + + +

Навигация внутрь приложения с помощью уведомлений и виджетов главного экрана

+ +

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

+ +

В обоих этих случаях реализуйте следующее поведение кнопки "Вверх":

+ + + +

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

+ +

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

+ + + +

Косвенные уведомления

+ +

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

+ +

Кнопка "Назад" действует не так, как в случае со стандартными (прямыми) уведомлениями. Нажав ее на промежуточном экране косвенного уведомления, +пользователь вернется в точку, где было сгенерировано уведомление, —поскольку +в стеке переходов назад не появились никакие дополнительные экраны. Если пользователь перейдет в приложение с +промежуточного экрана, поведение кнопок "Вверх" и "Назад" будет таким же, как и при стандартных уведомлениях: +навигация внутри приложения, а не возврат к промежуточному экрану.

+ +

Например, предположим, что пользователь получил косвенное уведомление от приложения Calendar при открытом приложении Gmail. Если он коснется +этого уведомления, откроется промежуточный экран с напоминаниями о нескольких +событиях. Касание кнопки "Назад" на промежуточном экране возвратит пользователя в Gmail. Если пользователь коснется конкретного +события, он перейдет с промежуточного экрана в приложение Calendar к подробной информации о +событии. Оттуда кнопки "Вверх" и "Назад" переведут его на верхний уровень приложения Calendar.

+ + + +

Всплывающие уведомления

+ +

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

+ +

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

+ + + +

Навигация между приложениями

+ +

Одним из фундаментальных достоинств системы Android является способность приложений активировать друг +друга, что дает пользователю возможность переходить непосредственно из одного приложения в другое. Например, +приложение, которому нужно сделать снимок, может активировать приложение Camera, которое передаст фотографию +вызвавшему приложению. Это огромное преимущество, как для разработчика, имеющего возможность без проблем воспользоваться +кодом других приложений, так и для пользователя, получающего согласованный интерфейс для часто выполняемых +действий.

+ +

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

+ +

Действия, задачи и намерения

+ +

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

+ +

Задача — последовательность действий, выполняемых пользователем для достижения цели. Отдельная +задача может использовать действия, заимствованные у одного или у нескольких +различных приложений.

+ +

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

+ +

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

+ +

Чтобы понять, как действия, задачи и намерения взаимодействуют друг с другом, разберемся, как одно приложение позволяет пользователям +поделиться содержимым с помощью другого приложения. Например, запуск приложения Play Store из главного экрана создает +новую задачу, Task A (см. рисунок ниже). Когда пользователь выполнит навигацию по Play Store и коснется интересующей его книги, +чтобы просмотреть информацию о ней, он останется в том же приложении, расширив его возможности с помощью добавленных действий. Запуск +действия "Поделиться" выводит перед пользователем диалоговое окно со списком действий (из разных приложений), +зарегистрированных для выполнения намерения "Поделиться".

+ + + +

Если пользователь предпочтет поделиться информацией через Gmail, действие "Написать" приложения Gmail добавляется как продолжение задачи +Task A—, и никакая новая задача не создается. Если в фоновом режиме работает собственная задача Gmail, на нее это никак +не повлияет.

+ +

Если во время действия "Составление сообщения" пользователь отправит сообщение или коснется кнопки "Назад", он вернется к + действию "Просмотр информации о книге". Продолжая нажимать на "Назад", пользователь будет совершать переходы назад в Play +Store, пока, наконец, не вернется на главный экран.

+ + + +

Однако, коснувшись кнопки "Вверх" во время действия "Составление сообщения", пользователь выскажет пожелание остаться в приложении +Gmail. Откроется экран действия "Переписка" приложения Gmail, и для него будет создано новая задача Task B. Новые задачи +всегда имеют корень на главном экране, поэтому касание кнопки "Назад" на экране переписки возвращает пользователя именно туда.

+ + + +

Задача Task A остается в фоновом режиме, и пользователь может вернуться к ней впоследствии (например, с помощью +экрана с последними приложениями). Если в фоновом режиме уже работает собственная задача Gmail, она будет замещена +задачей Task B. Произойдет отказ от предыдущего контекста ради новой цели пользователя.

+ +

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

-- cgit v1.1