Site icon AppTractor

Кнопка «назад» в Android: точки над i

Каждый раз, когда речь заходит об Android интерфейсе, возникает вопрос, как должна работать кнопка «назад». Давайте ещё раз разберёмся.

Жесть от Google

Зачем я поднял заезженную тему? В приложении контактов Android 5 наткнулся на неочевидный момент. На экране создания контакта нет кнопки сохранения. Контакт сохраняет кнопка ← в App Bar. Я ожидаю, что по нажатию на эту кнопку данные потеряются. Google, никогда так не делай.

Платформенная «назад»

Здесь всё понятно, кнопка ведёт на один экран назад.

«Назад» вверху экрана

Гайды Material не описывают, как должна работать ← в App Bar. Есть старые рекомендации из Android 4. Здесь есть два варианта поведения: «back» и «up». В простом варианте «back» кнопка ведет на один экран назад.

Более сложный вариант — «up». Если в приложении глубокая вложенность экранов, кнопка «назад» может вести не на один экран назад, а на корневой экран логического уровня. Например, есть экран A — список книг. Мы переходим на экран B книги, далее на экран C другой книги и т.д. Кнопка «назад» должна вернуть пользователя на список книг, пропустив последовательность просмотренных книг.

Так Google подразумевал использование этой кнопке в Android 4. Однако, нет чёткого описания, что должно быть логическим уровнем в иерархии экранов. Все разработчики делают по-разному, кто-то использует «up», кто-то «back». А пользователь ожидает, что эта кнопка ведёт на один экран назад, как в iOS.

Проблема навигации Android

Как строить навигацию? Гамбургер — зло. Значит, надо использовать табы. Табы Android отличаются от iOS не только тем, что они вверху и могут переключаться свайпом. Отличие в том, что их нельзя использовать на вложенных экранах, в отличии от Tab Bar в iOS, который может быть на каждом экране приложения. Значит, в Android нельзя одним нажатием перейти в другой корневой раздел приложения. Вернуться на главный экран и выбрать другой раздел в одно-два нажатия помогает «up».

И что делать?

В простых случаях ← должна вести на один экран назад, как в iOS.

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

Оригинал статьи в блоге Владимира: http://vmakeev.com/android-back-button/

Exit mobile version