Убрать кнопку меню с экрана андроид

Попрощайтесь с кнопкой «Меню»

До появления Honeycomb (Android 3.0) все Android устройства имели кнопку «меню» под экраном. Разработчики могли использовать ее по своему усмотрению, интерфейсы многих приложений были выстроены именно вокруг этой кнопки. В ориентированном на планшеты Honeycomb был сделан шаг в сторону отказа от механических (и сенсорных) кнопок, в связи с этим, в третьей версии Android появился класс ActionBar, который позволял дать пользователю быстрый доступ к настройкам приложения через специальную панель, называемую action bar. По мнению разработчиков Google будущее за Action Bar-ом и программисты должны отказаться от использования кнопки «меню». В настоящее время на рынке доминируют смартфоны с механической или сенсорной кнопкой под экраном, но с появлением Ice Cream Sandwich ситуация может резко измениться. Вам, как разработчику, важно заранее подготовиться к появлению таких устройств, и использовать концепцию Action bar уже сегодня.

На первый взгляд может показаться, что использование Action Bar-а вызовет проблемы при разработке программ для Android 2.x, в котором эта панель еще не была реализована. Однако здесь нет проблемы. Никто не запрещает Вам продолжать использовать кнопку «меню» на тех устройствах, где она присутствует, добавление же Action Bar-а потребует от вас написания всего нескольких строк кода.

Если бы я попытался сжать эту статью в одно предложение, оно бы звучало так: «Установите targetSdkVersion в 14, и пометьте тегом showAsAction=»ifRoom» элементы меню, которые должны быть вынесены на Action Bar«.

Окончательный отказ от меню настроек в Android

Недостаточно просто отказаться от использования кнопки «меню», нужно полностью выкинуть эту концепцию из своей головы. Не создавайте меню, создайте все необходимые кнопки непосредственно внутри деятельностей (activity). Если какие-то действия не помещаются на панель, вынесите их в дополнительное выпадающее меню (action overflow). На приведенной картинке показан action bar с кнопкой для поиска и дополнительное меню с правой стороны панели.

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

Терминология довольно запутанная, но выпадающее меню (action overflow) предполагает абсолютно другую концепцию использования, нежели простое меню настроек. Вместо того, чтобы рассматривать меню как вместилище всех настроек приложения, вы создаете панель, на которую помещаете основные настройки. Все второстепенное выносится в выпадающее меню, которое вызывается при нажатии кнопки с тремя точками (Action overflow button) в правой стороны панели.

Action overflow button

Если Вы запускали приложения, написанные для Android 2.3 и ниже на устройствах без кнопок под экраном (например, на планшете с Honeycomb или на Galaxy Nexus), Вы наверно заметили, что рядом с изображением трех кнопок на панели внизу появляется и Action overflow кнопка (три точки друг над другом). Это некий компромисса, однако, не очень удачный. В приложениях, которые вообще не используется меню настроек эта кнопка ничего не делает, раздражая пользователей. Поэтому, весьма неплохим решением было бы следить за версией Android-а, и если Ваша программа запускается под Android 3.0+, убирать эту кнопку с навигационной панели и использовать Action Bar. Такой подход позволяет сохранить совместимость программы со старыми аппаратами и сделать ее более привлекательной для новых.

Читайте также:  Imediashare personal android 4pda

Если ваша программа запущена на устройствах без кнопок, система решает, нужно ли добавить action overflow на навигационную панель в зависимости от значения поля в манифесте. Логика следующая

  • Если Вы установили в minSdkVersion или targetSdkVersion значение больше 11, то система не добавляет эту кнопку.
  • С другой стороны, система создает эту кнопку, когда Вы запускаете приложение на Android 3.0 и выше.
  • Единственное исключение: когда Вы установите minSdkVersion в 10 или ниже; targetSdkVersion в 11, 12 или 13, и не будете использовать ActionBar, система добавит эту кнопку на телефонах (не планшетах) под управлением Android 4.0 и выше. В основе этого исключения лежит следующая идея: если Вы разрабатываете приложение одновременно для телефонов второй ветки и для планшетов третьей, то Вы предполагаете, что у телефонов должна быть кнопка меню, а у планшетов ее нет.

Таким образом, если вы хотите запретить overflow action кнопку в панели навигации, Вам нужно установить targetSdkVersion в 14 (В minSdkVersion можно записать более низкое значение, чтобы программа могла запускаться на старых устройствах).

Переход к концепции action bar-а

Если у Вас есть деятельности, которые используют меню настроек (созданное с помощью onCreateOptionsMenu()), то убрав кнопку с навигационной панели (установив targetSdkVersion=14) Вы должны предоставить пользователю альтернативное средство доступа к настройкам. К счастью, от Вас не потребуется много работы, поскольку в системе автоматически создается action bar.

Добавьте showAsAction=»ifRoom» в теги элементов, которые вы хотите поместить в action bar. Если вы не уверены, какой из элементов стоит включать в Action Bar, обратитесь кAndroid Design’s Action Bar guide.

Чтобы сделать восприятие вашей программы более целостным, рекомендуем Вам использовать в качестве иконок для Action bar-а иконки отAndroid UX Team. Архивприлагается.

Как удалить Action Bar из Android приложения

Если Вам не нужен Action bar, Вы можете удалить его из любой деятельности, либо вообще из приложения. Это может быть актуально для игр и программ, не использующих меню настроек. Вы можете удалить action bar, используя тему Theme.Holo.NoActionBar или Theme.DeviceDefault.NoActionBar.

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

Например, Вы можете объявить тему для своего приложения

(или для конкретной деятельности в теге ).

Для устройств, работающих на Android 2, включите следующую тему в res/values/themes.xml.

Для Honeycomb включите следующую тему в res/values-v11/themes.xml.

При запуске в зависимости от версии API система выберет подходящую тему.

Заключение

Повторим тезисно ключевые идеи и моменты статьи:

  • На новых Android устройствах может отсутствовать кнопка «menu», поэтому при разработке программ лучше вообще отказаться от ее использования.
  • Установите targetSdkVersion = 14 и протестируйте свое приложение на Android 4.0.
  • Добавьте тег showAsAction=»ifRoom» в элемент меню, если хотите, чтобы он автоматически попал на панель action bar.
  • Если в Вашем приложении не используется ActionBar, Вы можете убрать его, воспользовавшись темами Theme.Holo.NoActionBar и Theme.DeviceDefault.NoActionBar.

Дополнительную информацию по проектированию Action Bar можно найти в»Android Design’s Action Bar guide». Что касается программирования, посмотрите этот документ:»Action Bar developer guide».

Источник

[Конкурс] Альтернативные варианты управления Android, избавляемся от экранных кнопок

MaGog

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

Читайте также:  Proxy для андроид что это

Пролог

С презентацией Android 3.0 Honeycomb Google ввела новый метод управления устройствами – экранные кнопки. В то время они не особо привлекли внимание, да и доля устройств с третьим андроидом на борту была и остается очень маленькой. Но все изменилось с выходом версии 4.0 Ice Cream Sandwich и Samsung Galaxy Nexus. В этот раз общественность уже высказала бурное недовольство: эти кнопки отнимали драгоценное пространство на дисплее, не было настоящего HD на нексусе, экран терял пару десятых дюйма и все из-за трехклятых кнопок. Меня, как владельца этого устройства, эта система устраивала: в повседневной жизни мы имеем телефон с диагональю около 4,5 дюймов, им удобнее пользоваться одной рукой, чем Samsung galaxy s3 например, а когда хочешь посмотреть видео, то перед тобой уже полноценный HD экран 4.65 дюймов. Да, в играх кнопки оставались, но их было несложно убрать на время, да и с выходом 4.4 разработчики имеют возможность скрывать их в своих приложениях. Но с покупкой nexus 10 проблема кнопок встала ребром. В планшете они съели неоправданно большое количество площади и находятся в крайне неудобном месте. Немного покопавшись я выделил несколько интересных альтернативных вариантов управления андроидом.

GMD Gesture control

Цена: 167 рублей, существует бесплатная версия, в ней доступно лишь несколько стандартных жестов для пробы. Требования: root
Комментарий: не может быть полноценной альтернативой, позволяет быстро включить/отключить полноэкранный режим в любой момент.

Как следует из названия данная программа позволяет управлять телефоном с помощью жестов. На жесты можно назначить:

  • кнопки управления (назад, домой, запущенные приложения, меню, поиск)
  • вызов любого приложения
  • переключение на предыдущее/следующие приложение
  • закрыть приложение
  • управление настройками (wi-fi, bluetooth, звук, ориентация экрана, выключение телефона)
  • управление мультимедиа
  • управление браузером
  • вызов панели быстрого доступа — позволяет выбрать несколько «горячих» приложений, которые будут появляться с одной из четырех сторон или по центру.

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

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

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

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

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

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

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

Но главной функцией для нас в этом обзоре является «toggle status bar» или по-русски — полноэкранный режим, убирает кнопки и строку состояния. Включается и отключается одним и тем же жестом, но при вызове списка последних приложений автоматически отключается. Самый пригодный сценарий использования на мой взгляд — выключить кнопки на время чтения/игры/браузинга.

Читайте также:  Garmin для андроид нет

Full!screen

Цена: бесплатно. Платная версия за 60 р. предоставляет возможность выбрать приложения, в которых fullscreen не будет активироваться. Функционала бесплатной версии вполне достаточно
Требования:
root
Комментарий: пожалуй лучшая программная альтернатива на данный момент, включает полноэкранный режим и добавляет свои две кнопки в любые из 4-х углов. У full!screen небольшое количество настроек:

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

Что можно установить в качестве команды на кнопку:

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

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

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

CyanogenMod + button savior

Цена: CyanogenMod — бесплатно. Button savior — бесплатно или 62 рубля. Платная версия позволяет изменять количество и порядок отображаемых кнопок. Советую попробовать бесплатную версию, в случае надобности улучшить.
Требования:
Переустановка прошивки со всеми вытекающими.
Комментарий: на мой взгляд – это лучший вариант управления планшетом: и строка состояния жива и кнопки появляются по вашему желанию. Возможно у вашего устройства есть и другие прошивки с похожим функционалом, но в данном обзоре мы остановимся именно на CyanogenMod. Это самая распространенная прошивка, и с вероятностью 98% ваше устройство поддерживается либо официально, либо сообществом владельцев. У CyanogenMod есть множество фишек и отличий по сравнению с оригинальным андроидом, но мы остановимся именно на управлении, а тут все просто. Вы можете выбрать вариант полноэкранного режима со строкой состояния. Его можно включить зажав кнопку выключения на 2 секунды и выбрав нужный пункт в меню, таким же образом выключаем. Далее ставим программу button savior или аналог, коих несколько, и пользуем дополнительные кнопки.

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

Эпилог

Линейка Nexus сейчас очень популярна, да и многие крупные производители такие, как LG, Sony, Motorola и прочие вовсю используют экранные кнопки в своих устройствах, чтобы управлять устройством было удобно, а экран сделать больше при тех же размерах устройства, что и у конкурентов (htc one/galaxy s4 vs lg g2). Планшеты же вообще другого управления не знают, за исключением продуктов компании samsung. И тут уже перед вами стоит вопрос: устраивает вас подобный метод управления или нет. Благо Android дает огромный простор для кастомизации и каждый может выбрать то, что будет душе угодно. А на этом все, спасибо всем за внимание.

Источник

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