Меню для андроид навигатора

Содержание
  1. Навигация для Android с использованием Navigation Architecture Component: пошаговое руководство
  2. Часть 1. Подготовительные работы
  3. 1.1. Создание проекта
  4. 1.2. Зависимости (Dependencies)
  5. 1.3. Страницы: создание фрагментов
  6. 1.4. Адреса: файл ресурсов типа «Navigation»
  7. 1.5. Фрейм: виджет NavHostFragment
  8. Часть 2. Элементы навигации
  9. 2.1. Навигация с помощью кнопок
  10. 2.2. Боковое меню (drawer)
  11. 2.2.1. Ресурсный файл меню
  12. 2.2.2. Шаблон DrawerLayout и виджет NavigationView в макете активности
  13. 2.2.3. Подключение бокового меню в классе активности
  14. 2.3. Кнопка и название фрагмента на панели инструментов
  15. 2.4. Нижнее меню (Bottom Navigation)
  16. 2.5. Всплывающее меню (Overflow Menu)
  17. Краткие выводы и ссылка на github
  18. Как настроить и пользоваться Яндекс.Навигатором на Android
  19. Обзор функций и интерфейса приложения
  20. Функции
  21. Интерфейс
  22. Инструкция по работе с навигатором
  23. Первый запуск
  24. Выбор карты
  25. Построение маршрута
  26. Движение по маршруту
  27. Использование дополнительных функций

Попробуем, пользуясь официальным руководством и примерами кода, построить работающую систему навигации для будущего многоэкранного приложения в соответствии со стандартами Navigation Architecture Component. Статья включает следующие разделы:

Часть 1. Подготовительные работы
— 1.1. Создание проекта
— 1.2. Зависимости (Dependencies)
— 1.3. Страницы: создание фрагментов
— 1.4. Адреса: файл ресурсов типа «Navigation»
— 1.5. Фрейм: виджет NavHostFragment

Часть 2. Элементы навигации
— 2.1. Навигация с помощью кнопок
— 2.2. Боковое меню (Drawer)
— 2.3. Панель инструментов: Toolbar вместо ActionBar
— 2.4. Нижнее меню (Bottom Navigation)
— 2.5. Всплывающее меню (Overflow Menu)

Краткие выводы и ссылка на github

Часть 1. Подготовительные работы

1.1. Создание проекта

Нам понадобятся базовые знания Котлина, IDE Android Studio версии не ниже 3.3, смартфон или эмулятор с версией API 14 или выше.

Создадим в Android Studio новый проект под названием «Navigation2019».

IDE создаст файл главной активности «MainActivity.kt» и его макет (шаблон) «activity_main.xml».

1.2. Зависимости (Dependencies)

Откроем файл «build.gradle» модуля (не проекта, а именно модуля) и в блок «dependencies» добавим необходимые зависимости:

Мы использовали библиотеки версии 1.0.0, но в будущем ситуация может измениться. Проверить, какие версии библиотек являются актуальными, можно здесь.

1.3. Страницы: создание фрагментов

Фрагменты — это «страницы» нашего будущего приложения. Кликнув правой кнопкой на каталоге с файлами классов, командой «New -> Fragment -> Fragment(Blank)» создадим «Fragment1».

IDE создаст kt-файл с классом фрагмента и xml-файл с макетом фрагмента. Таким же образом сгенерируем ещё три фрагмента («Fragment2», «Fragment3», «Fragment4»). Мы будем использовать их для создания четырёх разных типов навигации по приложению.

1.4. Адреса: файл ресурсов типа «Navigation»

Кликнув правой кнопкой мыши по папке «res», создадим файл ресурсов типа «Navigation» с названием «routes.xml» («маршруты»).

Откроем созданный файл и с помощью кнопки «New Destination» добавим в навигационную схему наши фрагменты.

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

В соответствии с их названиями, наши фрагменты получат идентификаторы (id) «fragment1», «fragment2», «fragment3», «fragment4». Это «адреса», которые будут использоваться при указании пунктов назначения («destinations») в инструкциях навигационному контроллеру.

Кроме «id», каждый тег «fragment» содержит ещё три параметра: «name», «label» и «layout». Параметры «name» и «layout» нас сейчас не интересуют. Единственное, что стоит отредактировать в файле «routes.xml» — это названия («label») фрагментов. Заменим их на «Фрагмент №1», «Фрагмент №2», «Фрагмент №3» и «Фрагмент №4».

1.5. Фрейм: виджет NavHostFragment

Откроем файл макета «res/layout/activity_main.xml» и удалим текстовый виджет «Hello World!», он нам не понадобится. В палитре (Palette) выберем раздел «Контейнеры» (Containers) и перетащим оттуда на макет активности виджет NavHostFragment (указав наш файл «routes» в качестве источника информации для него). Он выполнит роль фрейма, в котором будут выводиться различные фрагменты приложения.

Изменим id фрагмента на «navFragment». Код макета главной активности будет выглядеть теперь так:

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

Читайте также:  Wifi unlocker для андроид trashbox

Часть 2. Элементы навигации

2.1. Навигация с помощью кнопок

Откроем макет первого фрагмента («fragment_fragment1.xml»). Удалим ненужный текстовый виджет, изменим тип макета с «FrameLayout» на линейный вертикальный и добавим три кнопки с идентификаторами «button2», «button3», «button4» и соответствующими названиями «Фрагмент 2», «Фрагмент 3», «Фрагмент 4».

В методе «onCreateView» фрагмента получим ссылку на навигационный контроллер (объект «NavController») и запрограммируем поведение при нажатии на кнопки: командой «setOnClickListener» для каждой кнопки создадим слушателя кнопки, который при клике по кнопке будет передавать навигационному контроллеру адрес (id) точки назначения вместе с командой переместиться (navigate) на указанный адрес.

Проверим, как работают наши кнопки.

Одна кнопка — одна строчка кода — и клик по кнопке перемещает нас к указанному фрагменту. Просто, не так ли?

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

2.2. Боковое меню (drawer)

2.2.1. Ресурсный файл меню

В каталоге «res/menu» создадим ресурсный файл меню «drawer_menu.xml». Добавим в него пункты меню, каждый из которых представляет собой тег «item» с параметрами «id» (должен соответствовать таковому в навигационном графе «routes.xml», «title» (заголовок, он может быть другим), «icon» (мы используем одну и ту же картинку для всех пунктов, но, конечно же, они могут быть разными) и др. Наше меню будет выглядеть так:

2.2.2. Шаблон DrawerLayout и виджет NavigationView в макете активности

Откроем файл макета активности «activity_main.xml».

После первого тега (xml version…) добавим начало тега «DrawerLayout».

В конец файла добавим виджет «NavigationView» и окончание тега «DrawerLayout».

2.2.3. Подключение бокового меню в классе активности

Откроем файл «MainActivity.kt» и в методе «onCreate» получим ссылку на «navController» (в активности это выглядит чуть сложнее, чем было во фрагментах).

Затем включим боковое меню:

Код класса теперь выглядит так:

Теперь меню появляется в ответ на свайп от левого края экрана:

Хорошо было бы добавить и кнопку слева-вверху для вызова бокового меню, верно?

2.3. Кнопка и название фрагмента на панели инструментов

Существующий по умолчанию ActionBar, как рекомендует официальное руководство, заменим на Toolbar.

Чтобы отключить существующий ActionBar, в файле «res/values/styles.xml» найдём строку

и заменим «DarkActionBar» на «NoActionBar».

Отлично, ActionBar мы отключили.

Теперь добавим Toolbar. Откроем файл «activity_main.xml», в палитре (Palette) выберем раздел «Контейнеры» (Containers) и перетащим оттуда на макет активности виджет «Toolbar». Панель инструментов добавлена, но она пока пуста.

Переходим в файл активности «MainActivity.kt». Чтобы на Toolbar вывести кнопку и название текущего фрагмента, в метод «onCreate()» добавим следующие строки:

Toolbar теперь выводит название фрагмента и кнопку «Вверх» (Up) для вложенных фрагментов.

Кнопка «вверх» в android’е почему-то обозначается стрелкой «влево»:

Чтобы на стартовом экране приложения выводилась кнопка-гамбургер, нам необходимо в конфигурацию панели инструментов добавить параметр «drawerLayout», который содержит id виджета DrawerLayout из файла «activity_main.xml».

Клик по этой кнопке выводит боковое меню.

2.4. Нижнее меню (Bottom Navigation)

Иногда бывает необходимо акцентировать внимание пользователя на определённых действиях, и эффективно сделать это помогает нижнее меню. Добавим его в третий фрагмент.

Сначала создадим ресурсный файл меню «bottom_nav_menu.xml» с парой ссылок. Затем откроем макет фрагмента №3 (файл «fragment_fragment3.xml») и перетащим на него виджет «BottomNavigationView», попутно согласившись с предложением IDE добавить в dependencies библиотеку «com.android.support:design».

Если бы мы создавали нижнее меню не для одного фрагмента, а сразу для всех, то в метод «onCreate» класса активности (файл «MainActivity.kt») нужно было бы включить следующий код:

Конечно, и виджет «BottomNavigationView» в таком случае надо было бы поместить в макет активности, а не фрагмента.

Но поскольку данное меню нам требуется только во фрагменте №3, то и редактировать мы будем класс фрагмента (файл «Fragment3.kt»), а код будет выглядеть чуть сложнее:

В итоге мы получим нижнее меню, которое будет выводиться только в 3-м фрагменте.

То же самое, но с другими ссылками, сделаем и в 4-м фрагменте.

Читайте также:  Умные браслеты для андроид что это такое

2.5. Всплывающее меню (Overflow Menu)

Ещё один вид меню — всплывающее меню, которое выводится при клике по кнопке (трём вертикально расположенным точкам) в правом верхнем углу экрана.

Создадим ресурсный файл меню «top_right_menu.xml» с необходимыми ссылками.

В файле «MainActivity» в метод «onCreate» перед «toolBar.setupWithNavController. » добавим строку «setSupportActionBar(toolBar)».

И далее в этом же классе переопределим два метода:

Нажатие на верхнюю правую кнопку теперь отображает всплывающее меню:

Краткие выводы и ссылка на github

Очевидно, что Navigation Architecture Component существенно облегчает труд разработчика. Сложные в прошлом задачи теперь решаются несколькими строчками кода.

Поскольку главной целью данной публикации было осветить базовые алгоритмы создания навигации в android-приложении, многие детали реализации были умышленно оставлены за кадром.

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

Источник

Как настроить и пользоваться Яндекс.Навигатором на Android

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

Обзор функций и интерфейса приложения

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

Данные о текущих дорожных условиях появляются в приложении благодаря совместным усилиям искусственного интеллекта, сотрудников ООО «Яндекс» и пользователей. Любой человек может добавить информацию о ДТП, ремонтных работах, камерах контроля скорости и засадах ГИБДД.

Функции

Основные функции приложения:

  • Построение оптимальных маршрутов. Если навигатор обнаружит несколько равнозначных вариантов, то укажет все, а итоговый выберете вы.
  • Сопровождение водителя в пути. Благодаря голосовым оповещениям вы не пропустите нужный поворот и успеете снизить скорость перед камерой ГИБДД. Время оповещения подбирается так, чтобы вы спокойно завершили маневр. Озвучиванием приложения занимались Дмитрий Нагиев, Вера Брежнева, Федор Бондарчук и другие известные личности.
  • Оценка дорожной обстановки. Даже если вы хорошо знаете маршрут, изучите информацию о пробках на нужных улицах перед выездом.

Чтобы облегчить поездку, Яндекс.Навигатор предлагает несколько дополнительных функций:

  • Голосовое управление. Достаточно произнести: «Слушай, Алиса», – или нажать на кнопку в виде микрофона, чтобы Яндекс.Навигатор воспринимал голосовые команды.
  • Автокорректировка маршрута. Если дорожная обстановка изменится по ходу езды, программа среагирует и найдет другой путь.
  • В программу добавлена информация о парковках в крупных городах стран СНГ и ближнего зарубежья.

Интерфейс

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

Если не можете найти себя на карте, нажмите на кнопку внизу экрана – и система переведет вас в нужную область.

Яндекс.Навигатор отмечает загруженность улиц тремя цветами:

  • зелёным – дорога свободна;
  • желтым – движение частично затруднено;
  • красным – пробки на маршруте.

Приложение также оценивает среднюю плотность движения на дорожном участке по шкале от 0 до 10, где 0 – свободно, а 10 – многочасовые пробки. Значение отображается в верхнем правом углу экрана на кнопке включения/выключения анализа загруженности дорог.

Дорожные происшествия отмечены значками в красной оправе. Например, на скриншоте ниже под №1 указана камера ГИБДД, №2 – ДТП, №3 – ремонтные работы, №4 – движение перекрыто. Если нажать на значок, система укажет дополнительную информацию, например, данные о количестве полос, перекрытых из-за ДТП.

Если вы запустили движение по маршруту, дополнительно в верхней части экрана появится информация о ближайшем маневре (1), значения текущей (2) и максимально допустимой скорости (3).

Инструкция по работе с навигатором

Чтобы установить приложение, зайдите на его страницу в Play Market.

Первый запуск

После включения приложения:

  1. Прочитайте Лицензионное соглашение программы и нажмите «Далее».
  2. Выберите «Далее» еще 2 раза и разрешите Яндекс.Навигатору доступ к данным о местоположении устройства, чтобы не вводить свой адрес каждый раз вручную.
  3. Отметьте пункт «Далее» в том же месте и разрешите приложению запись аудио, чтобы пользоваться голосовым управлением навигатора.
Читайте также:  Как устранить ошибку синхронизации аккаунта google android

Выбор карты

Чтобы изменять внешний вид и функции Яндекс.Навигатора, зайдите в раздел «Настройки». Для этого:

  1. Нажмите на кнопку меню в нижнем правом углу экрана.
  2. Откройте раздел «Настройки».
  3. Нажмите «Вид карты».
  4. Для наиболее удобного ориентирования выберите один из 2 видов карт – спутник или схема.

Чтобы пользоваться картой без интернета:

  1. Откройте меню.
  2. Нажмите «Загрузка карт».
  3. Выберите необходимую карту из перечня или воспользуйтесь поиском.
  4. Для скачивания нажмите на кнопку в виде вертикальной стрелки в круге.

Карта скачается, даже если вы перейдете на другую страницу навигатора. Её вес – 110-170 МБ для средних по площади областей.

Построение маршрута

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

Внести любую точку в маршрут можно 3 способами: с помощью поиска, карты или голосового управления.

С помощью поиска:

  1. Нажмите на кнопку в виде лупы.
  2. Введите адрес в текстовое поле.
  3. Выберите подходящий вариант в появившемся списке.
  4. Если выбираете пункт назначения, нажмите «Поехали».
  5. Если хотите указать промежуточный пункт, выберите «Заехать».
  6. Чтобы отметить пункт отправления, коснитесь синего значка и выберите «Отсюда».

С помощью карты:

  1. Найдите необходимое место на карте. Для изменения масштаба нажимайте на кнопки «+» и «-».
  2. Чтобы поставить точку в нужном месте, задержите на нем палец в течение 1 секунды.
  3. Выберите тип маршрутного пункта из списка:
    • сюда – конечный пункт назначения;
    • через – промежуточный пункт;
    • отсюда – пункт отправления.

С помощью голосового управления:

  1. Нажмите на кнопку в виде микрофона или произнесите: «Слушай, Алиса».
  2. Произнесите команду. Например, «Маршрут до Ленина, 3А».

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

После выбора всех точек:

  1. Выберите маршрут из предложенных приложением. Для этого нажимайте на вкладки со временем в пути. Они находятся в верхней части экрана. Выбранный вариант на карте обозначен красным, желтым и зеленым цветами, альтернативные пути – синим.
  2. Нажмите «Поехали».

Чтобы построить маршрут в обход платных дорог:

  1. Откройте раздел «Настройки», как мы описывали выше.
  2. Выберите пункт «Избегать платных дорог». При этом переключатель напротив надписи станет синим.

Даже после перезапуска приложение вспомнит незаконченный маршрут.

Движение по маршруту

Во время передвижения Яндекс.Навигатор заранее оповещает о поворотах. Информация отображается на экране и воспроизводится вслух.

В нижней части экрана система указывает расстояние до финиша (1) и примерное время в пути (2).

Использование дополнительных функций

Как найти ближайшую парковку:

  1. Нажмите на значок «P» в верхнем правом углу экрана.
  2. Теперь коснитесь кнопки, появившейся ниже предыдущей.
  3. Следуйте проложенному маршруту.

Как поменять голос оповещений:

  1. В разделе «Настройки» нажмите на кнопку «Голос».
  2. Выберите озвучку из списка «Загруженные».
  3. Если хотите скачать вариант из блока «Доступные для загрузки», нажмите на кнопку левее названия желаемой озвучки.

Как сохранять историю поездок:

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

Теперь в этом разделе будет доступна информация о построенных маршрутах.

Как добавить информацию о происшествии на дороге:

  1. Найдите нужное место на карте навигатора.
  2. Удерживайте палец на нем пару секунд.
  3. Нажмите «Установить».
  4. Выберите тип события из списка и нажмите на него. На скриншоте ниже: 1 – неопределенное событие, 2 – ДТП, 3 – дорожные работы, 4 – камера ГИБДД, 5 – внимание, 6 – проезд закрыт.
  5. Введите комментарий к дорожному событию в текстовое поле.
  6. Нажмите «Готово».
  7. Выберите «Установить».

Как проверить штрафы ГИБДД:

  1. В меню выберите пункт «Штрафы ГИБДД».
  2. Укажите номера СТС и водительского удостоверения.
  3. Нажмите «Проверить штрафы».

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

Источник

Оцените статью