- Android скрыть пункты меню
- Меню выбора опций (Options Menu)
- Создание меню при помощи ресурсов
- Выбор пунктов меню
- Программное создание меню
- Горячие клавиши
- Создание подменю
- Добавление флажков и переключателей
- Программное открытие или закрытие меню
- Программное удаление пункта меню
- Определить наличие кнопки Menu
- Разметка для меню
- Меню в фрагментах
- Как скрыть и убрать с дисплея смартфона или планшете Android навигационную панель.
- Как вернуть их обратно?
- Как убрать значок с экрана телефона для всех устройств Android
- На главном экране Android
- С других экранов
- Как убрать кружок с экрана Honor или Huawei
- GMD Auto Hide Soft Keys
- Как убрать строку поиска Google с экрана телефона
- Способ 1: перетаскиваем виджет
- Способ 2: отключаем приложение
- Способ 3: устанавливаем сторонний лаунчер
- Способ 4: удаляем поисковую строку полностью
- Full!screen
Android скрыть пункты меню
Статья проплачена кошками — всемирно известными производителями котят.
Если статья вам понравилась, то можете поддержать проект.
Вы уже работали с меню в одном из первых уроков первого месяца обучения. Рассмотрим работу с меню глубже. Будут рассмотрены как старые устройства под Android 2.3, так и новые телефоны на Android 4.0.
Меню выбора опций (Options Menu)
За меню отвечает класс android.view.Menu. Каждая активность связана с одним объектом меню. Само меню содержит пункты меню (класс android.view.MenuItem) и подменю (класс android.view.SubMenu).
При нажатии кнопки Menu на старых телефонах появляется набор пунктов меню, прикрепляемый к активности. Меню может содержать значки. Такое меню может содержать шесть пунктов (как правило). При наличии более шести пунктов используется расширенное меню — в этом случае вместо шестого пункта появляется пункт Опции (More). При нажатии данного пункта показывается расширенное меню со списком пунктов, которые не поместились в основной части меню выбора опций.
Когда меню открывается впервые, Android вызывает метод onCreateOptionsMenu(), передавая в качестве параметра объект Menu. Меню можно создавать в виде ресурсов в XML-файле или использовать метод add().
В стандартном проекте при выборе обычного шаблона уже есть заготовка для меню из одного пункта Settings и вызов метода для меню (вы об этом уже знаете).
Создание меню при помощи ресурсов
Рассмотрим работу с меню через ресурсы. Для создания меню используются ресурсы, которые должны храниться в XML-файле. Сам файл должен находиться в папке res/menu/ вашего проекта. Меню состоит из следующих элементов:
Определяет меню, которое будет содержать пункты меню. Элемент должен быть корневым элементом в XML-структуре файла и может содержать один или несколько элементов и Создает непосредственно пункты меню. Данный элемент может иметь вложенный элемент для создания подменю При желании можете также использовать невидимый контейнер для элементов . Это позволяет достичь некоторых эффектов
Предположим, мы решили использовать меню для какой-нибудь игры. Создадим новый файл game_menu.xml:
Мы создали меню с двумя пунктами. Каждый пункт включает в себя следующие атрибуты:
android:id Идентификатор пункта меню, по которому приложение может распознать при выделении пункта меню пользователем android:title Текст, который будет выводиться в меню
Существуют и другие атрибуты для элемента item, например android:icon=»@drawable/home» позволит также вывести значок для пункта меню, а android:enabled=»false» позволяет сделать пункт меню недоступным.
Атрибут android:titleCondensed применяется в том случае, если обычный заголовок слишком широкий и не «помещается» в выбранном элементе меню.
Атрибут android:orderInCategory определяет порядок, в котором отображаются элементы меню MenuItems.
Кстати, вы можете использовать встроенные системные значки Android. Например, android:icon=»@android:drawable/ic_menu_help» позволит вам вывести значок помощи, который зашит в систему. Подробнее о системных значках почитайте в статье Системные графические ресурсы
При создании меню мы указали на строковые ресурсы @string/new_game и @string/help. Необходимо добавить новые строки в файле strings.xml:
Теперь нужно внести изменения в классе активности, в котором будет выводиться меню. Программа должна сконвертировать созданный нами ресурс меню в программный объект. Для этой цели существует специальный метод MenuInflater.inflate(), который вызывается в специальном методе обратного вызова onCreateOptionsMenu(). Данный метод и предназначен для вывода меню при нажатии кнопки MENU на устройстве:
После вставки кода среда разработки попросит импортировать недостающие пространства имен.
Метод onCreateOptionsMenu() метод инициирует первое появление меню на экране и принимает в качестве параметра объект Menu (для старых устройств). Вы можете сохранить ссылку на меню и использовать ее в любом месте кода, пока метод onCreateOptionsMenu() опять не будет вызван. Вам необходимо всегда использовать реализацию этого обработчика из родительского класса, потому как она при необходимости автоматически включает в меню дополнительные системные пункты. В новых устройствах метод вызывается при создании активности. Метод должен возвращать значение true, чтобы меню было видимым на экране.
Запустив программу, нажмите кнопку MENU на эмуляторе, чтобы увидеть созданное меню.
Метод getMenuInflater() возвращает экземпляр класса MenuInflater, который мы используем для чтения данных меню из XML.
Как видите, меню появляется в нижней части экрана. Всего можно одновременно вывести на экран шесть пунктов меню. Если пунктов больше, то будет выведено пять пунктов плюс шестой пункт More, который позволит увидеть остальные пункты. Давайте проверим и добавим новые пункты меню.
Сначала добавим шесть пунктов.
Добавим еще один пункт к меню, чтобы их стало семь.
Выбор пунктов меню
Мы научились создавать меню. Но пока оно бесполезно, так как пункты меню никак не реагируют на наши нажатия. Для обработки нажатий пунктов меню служит метод onOptionsItemSelected(). Метод распознает пункт, выбранный пользователем, через MenuItem. Мы можем теперь определить выбранный пункт через вызов getItemId(), который возвращает идентификатор пункта меню. Далее через оператор switch нам остается определить нужные команды:
Запустите приложение, вызовите меню и выберите первый или второй пункт меню. В текстовом поле должно появиться сообщение.
В приведенном примере getItemId() запрашивает ID для выбранного пункта меню и начинает сравнивать через оператор выбора switch с идентификаторами, которые мы задали в XML-ресурсах. При обнаружении нужного идентификатора выполняется обработчик для заданного пункта меню. Если программа ничего не обнаружит, то выполняется оператор default, который возвращает super class.
В Android 3.0 можно добавить атрибут android:onClick в ресурсах меню, и вам уже не нужно использовать onOptionsItemSelected(). При помощи android:onClick вы можете указать нужный метод при выборе пункта меню.
Программное создание меню
Рассмотрим программное создание меню для полноты картины. Нам понадобится определить несколько констант для пунктов меню:
У метода add() есть четыре параметра:
- идентификатор группы — позволяет связывать пункт меню с группой других пунктов этого меню
- идентификатор пункта для обработчика события выбора пункта меню
- порядок расположения пункта в меню — позволяет определять позицию в меню. По умолчанию (Menu.NONE или 0) пункты идут в том порядке, как задано в коде
- заголовок — текст, который выводится в пункте меню. Можно использовать строковый ресурс
Метод возвращает объект MenuItem, который можно использовать для установки дополнительных свойств, например, для установить значок, горячую клавишу и т.д.
Если вы хотите создать меню со значками, то воспользуйтесь методом setIcon()
Напомним еще раз, что значки можно добавить только к шести пунктам меню (или к пяти, если пунктов больше шести).
Метод onCreateOptionsMenu вызывается системой только один раз при создании меню. Если вам требуется обновить меню во время работы программы, то используйте метод обратного вызова onPrepareOptionsMenu().
При выборе пункта меню вызывается метод onOptionsItemSelected, который передает объект MenuItem — пункт меню, выбранный пользователем. При помощи метода getItemId можно получить идентификатор выбранного пункта меню. После идентификации пункта меню можно написать код для обработки события выбора меню:
Горячие клавиши
Также можно задавать горячие клавиши для быстрого доступа, используя символы клавиатуры, при помощи нескольких методов:
- setAlphabeticShortcut(char) — добавляет символ
- setNumericShortcut(int) — добавляет число
- setShortcut(char, int) — добавляет комбинацию символа и числа
Например, если задать горячую клавишу setAlphabeticShortcut(‘q’);, то при открытии меню (или при удерживании клавиши MENU) нажатие клавиши Q выберет данный пункт меню. Эта горячая клавиша (или сочетание клавиш) будет показана как подсказка, отображающая ниже имени пункта меню. В новых клавиатурах есть отдельная клавиша Ctrl, которая работает также, как на обычных клавиатурах.
Горячие клавиши можно создать и через XML: android:alphabeticShortcut=»c».
Обрабатывать нажатия можно через метод активности onKeyShortcut():
Создание подменю
Подменю можно добавить в любое меню, кроме другого подменю. Подменю создается в методе обратного вызова onCreateOptionsMenu() с помощью метода addSubMenu(), который возвращает объект SubMenu. В объект SubMenu можно добавить дополнительные пункты к этому меню, используя метод add(). Например:
Теперь при выборе пункта меню появится еще одно окно с подменю. Попробуйте сами.
Добавление флажков и переключателей
В пункты меню возможно добавление флажков или переключателей. Чтобы добавить флажок или переключатель для отдельного элемента меню, необходимо использовать метод setCheckable():
Если есть необходимость добавить несколько пунктов меню с флажками или переключателями, то можно объединить их в группы меню, создав отдельный идентификатор. Пункт меню добавляется в группу через метод add(), передав ему в качестве первого параметра идентификатор группы меню. Допустим, мы объявили идентификаторы для группы меню Цвет и элементов меню для установки цвета:
Теперь для создания группы меню с флажками нужно назначить идентификатор группы на каждый пункт меню и вызвать метод setGroupCheckable() для всей группы (этом случае нет необходимости вызывать метод setCheckable() для каждого пункта меню):
У метода setGroupCheckable() три параметра:
- первый параметр — идентификатор группы меню;
- второй параметр — true, если в группе разрешены переключатели или флажки;
- третий параметр — устанавливает единственный (true) или множественный (false) выбор пунктов меню. Этот параметр фактически определяет внешний вид меню — это будет меню с переключателями или флажками.
Для управления состоянием флажков и переключателей в обработчике события выбора пункта меню нужно написать следующее:
Запустите проект, вызовите меню и выберите пункт меню Цвет. У вас появится подменю с тремя пунктами (Красный, Зеленый, Синий) в виде флажков. Состояние флажков и переключателей обрабатывается в коде программы и сохраняется при повторных вызовах меню.
Можно сразу назначить намерение выбранному пункту меню через метод setIntent(), которое сработает при нажатии этого пункта, если данное событие не было перехвачено обработчиками onMenuItemClickListener (устар.) или onOptionsItemSelected. Сработав, намерение передается в метод startActivity.
Программное открытие или закрытие меню
Если вам по каким-то причинам нужно программно открыть меню (например, в демонстрационных целях), то используйте метод openOptionsMenu():
Для программного закрытия меню используйте метод closeOptionsMenu(), впрочем у меня повторный вызов метода openOptionsMenu() также закрывает меню.
Программное удаление пункта меню
Допустим, мы определили пункт меню в xml-файле:
Чтобы удалить явно лишний пункт меню из нашей программы о котах, нужно получить доступ к пункту меню через метод findItem() и сделать его невидимым. Ссылку на объект Menu нужно передать в метод onCreateOptionsMenu, чтобы программа узнала об изменении состава меню.
Но у данного решения есть недостаток, если мы повернём экран, то активность пересоздатся и удалённое меню снова появится. Как же нам избавиться от сранного пёсика?
Надо запомнить состояние пункта меню и сохранить его в объекте типа Bundle в методе onSaveInstanceState, а в методе onCreate() извлечь сохранённое состояние и передать методу onPrepareOptionsMenu, который вызывается перед показом меню на экране:
Определить наличие кнопки Menu
На старых устройствах использовалась реальная кнопка Menu. В новых версиях Android меню убрали в ActionBar и её наличие в виде отдельной кнопки стало необязательным. Но многие производители по-прежнему выпускают телефоны с кнопкой для меню. Чтобы определить, есть ли такая кнопка, в Android 14 добавили новый метод, который позволит определить наличие этой кнопки.
Разметка для меню
В современных устройствах меню является частью ActionBar. И вы можете настроить разметку меню через XML.
Допустим, вы выбрали такой вариант:
В атрибуте showAsAction не используйте значение never, иначе разметку не увидите. Сама разметка задана через атрибут actionLayout. Код для разметки:
Меню в фрагментах
Меню может быть не только частью активности, но и частью фрагмента. Принцип работы практически не отличается. У фрагмента есть соответствующий метод.
FragmentManager отвечает за вызов onCreateOptionsMenu() при получении активностью обратного вызова onCreateOptionsMenu() от системы. Вы должны явно сообщить менеджеру FragmentManager, что фрагмент должен получить вызов onCreateOptionsMenu(). Для этого вызывается метод setHasOptionsMenu():
Источник
Как скрыть и убрать с дисплея смартфона или планшете Android навигационную панель.
Как вернуть их обратно?
ОС Андроид – гибкая система. При желании скрытые элементы можно быстро вернуть. Для выполнения подобной операции не нужно скачивать сторонние приложения. Одним из самых популярных приложений считается Ultimate Dynamic Navbar. Используя его, пользователь должен выполнить такие действия:
Если у Вас остались вопросы — сообщите нам Задать вопрос
- Приложение нужно скачать и установить.
- Производится его запуск.
- Осуществляется переход в настройки.
- Далее следует поставить верхний переключатель в рабочее положение.
- Ставится галка на нижний раздел автозапуска.
Остальные необходимые настройки следует установить по собственному усмотрению. Если все действия выполнить правильно, появится плавающая панель. При этом стандартная никуда не исчезает. Чтобы скрыть ее, потребуется задействовать утилиту Xposed Framework.
Если появится желание вернуть обратно, потребуется действовать по противоположной схеме. Зайти в настройки, проверить, чтобы были отключены ранее включенные опции. Главное, следовать подобной инструкции. Можно будет установить или убрать панель с регулирующими кнопками.
Как убрать значок с экрана телефона для всех устройств Android
Чтобы поддерживать порядок на рабочем столе, нужно стараться хранить на его поверхности ярлыки тех приложений, которые используются чаще других. Остальные же за ненадобностью, можно удалить, а заодно сделать так, чтобы при скачивании новых программ их значки не появлялись на экране автоматически. К счастью, очистить экран без потери функциональности можно с помощью различных инструментов.
На главном экране Android
На всех смартфонах под управлением OS Android присутствуют стандартные функции удаления значков установленных приложений. Разобраться в них сможет даже новичок. Вне зависимости от способа потребуется разблокировать смартфон и отыскать экран, где находится интересующий ярлык.
- Вариант 1. Коснуться значка и удерживать его в течение 1-2 секунд, а затем плавно перетащить его в меню «Удалить» с изображением корзины.
- Вариант 2. Нажать и удерживать свободную область экрана или кнопку «Домой», чтобы вызвать строку меню. Затем перетащить все ненужные значки в корзину, находящуюся в правом нижнем углу.
Если вместо стандартного главного экрана используется «Nova Launcher» понадобится действовать по-другому.
- Коснуться нужного значка и удерживать его, пока не появится контекстное меню.
- Выбрать и раскрыть категорию «Сведения» (длинным тапом).
- Здесь выбрать команду «Удалить», и подтвердить действие кнопкой «Ок».
Такими способами можно удалить лишние ярлыки (ссылки), не причинив вреда самим приложениям.
С других экранов
Для решения подобных задач иногда целесообразно использовать сторонние лаунчеры, например, «Apex Launcher».
- Скачать и установить на смартфон Android утилиту «Apex Launcher».
- Запустить лаунчер и на главном экране выполнить двойной клик в любом свободном месте.
- В появившемся меню выбрать «Настройки Apex».
- Внутри раздела отыскать вкладку «Настройки меню приложений» и развернуть ее.
- Далее найти папку «Скрытые приложения».
- В отобразившемся перечне отметить галочками программы, значки которых требуется удалить с экрана меню.
Как убрать кружок с экрана Honor или Huawei
Итак, чтобы убрать белый круг с экрана Honor или Huawei необходимо отключить данную функцию в настройках самого смартфона. Чтобы не ошибиться с разделом, воспользуйтесь пошаговой инструкцией, представленной чуть ниже:
- Открываем настройки.
- Переходим в раздел «Система».
Переходим в раздел «Система»
- Заходим в подкатегорию «Системная навигация».
Заходим в подкатегорию «Системная навигация»
- Нажимаем по пункту «Кнопка навигации».
Нажимаем по пункту «Кнопка навигации»
- Переводим ползунок влево возле строки «Кнопка навигации». После выполнения этого действия индикатор должен изменить свой цвет с синего на серый.
Переводим ползунок влево возле строки «Кнопка навигации»
Как видите, очистить экран от постороннего кружка довольно легко. Сложностей с выполнением подробного руководство не должно возникнуть даже у самых начинающих пользователей операционной системы Android.
GMD Auto Hide Soft Keys
Утилита, аналогичная по функциям Fulscrn Free. Позволяет скрывать панели навигации и состояния. В шторке уведомлений есть панель, в которой в 1 клик можно выбрать разные комбинации скрытия/отображения панелей. Требует наличия root-прав, не очень стабильно работает на Android 6.
- отображает в полноэкранном режиме на месте панелей небольшие триггеры;
- имеет большой «арсенал» настроек: можно изменять размер панели управления в шторке уведомлений, настраивать расположение и размер триггера, добавлять приложение в автозагрузку и другое;
- очень похоже на GMD Full Screen Immersive Mode по функциям, вот только работает стабильнее;
- в платной версии можно отключать отображение триггера и панели в шторке уведомлений.
- гибкие настройки, особенно в полной версии;
- функциональная панель в шторке уведомлений, которая позволяет выбирать один из 4 режимов отображения (у Fulscrn Free там доступен только переключатель вкл/выкл);
- минимальные ограничения в бесплатной версии по сравнению с платной.
- плохая работа с Android 6 Marshmallow;
- для работы необходимо наличие root-прав;
- обязательное отображение триггера в бесплатной версии;
- отсутствие обновлений от производителя после 2015 года.
После установки приложения и его запуска нужно включить полноэкранный режим, затем вариант отображения можно будет настраивать через шторку уведомлений.
Как убрать строку поиска Google с экрана телефона
Существует несколько вариантов удаления поисковой строки с рабочего стола смартфона, каждый из которых зависит от установленной прошивки и версии Android. Все методы расположены в порядке возрастания своей популярности, поэтому начинайте прочтение текста с самого начала.
Способ 1: перетаскиваем виджет
Этот метод зачастую работает на телефонах со свежей версией операционной системы. Для его выполнения не требуется производить каких-то сложных манипуляций и удалять программы. Всё что нужно – выполнить рекомендации следующей инструкции:
- Удерживаем палец на поисковой строке до того момента, пока она не начнёт перемещаться по дисплею.
- Затем переносим её на иконку корзины, расположенной в верхней части экрана.
Убираем строку поиска Google с экрана
Подтверждать удаление блока не нужно, потому что это не программа, а всего лишь обычный виджет. При желании поисковую строку можно вернуть, посетив вкладку со всеми виджетами.
Способ 2: отключаем приложение
Следующим вариантом удаления поисковой строки Google с экрана является временное отключение соответствующего приложения. Представленная далее инструкция подойдёт для смартфонов под управлением Андроид 6 и ниже, однако возможны и исключения. Итак, первым делом открываем настройки, а далее следуем указаниям пошагового руководства:
- Переходим в раздел «Все приложения» или «Установленные программы».
Переходим в раздел «Все приложения»
- Среди списка с софтом находим утилиту «Google Поиск» или просто «Google» и переходим на страницу с ней.
Находим утилиту «Google Поиск» или просто «Google»
- Здесь нажимаем по кнопке «Остановить», а далее подтверждаем процедуру, кликнув в открывшемся окошке «Ок».
Казалось бы, что поисковая строка исчезла, но это не навсегда. При перезагрузке телефона ненужный блок снова появится на экране, поэтому данные метод несовершенный.
Способ 3: устанавливаем сторонний лаунчер
Если стандартными возможностями системы не удалось избавиться от строки с голосовым вводом Google, то можно установить сторонний лаунчер, и уже с помощью него выполнить удаление. На сегодняшний день в Play Маркете имеется множество лончеров, некоторые из которых работают даже лучше стандартных. Например, себя неплохо зарекомендовали такие приложения, как POCO Launcher, Nova Launcher и Microsoft launcher. При желании вы можете использовать другие программы, найденные посредством ввода соответствующего запроса в Google Play.
Устанавливаем сторонний лаунчер
После установки лаунчера необходимо применить изменения. Для этого открываем приложение и нажимаем по кнопке «Домой». Система предложить выбрать утилиту, которую вы хотите использовать в качестве рабочего стола. Отмечаем нужное приложение и в появившемся окне выбираем «Всегда». Теперь просто нажимаем или удерживаем палец на поисковой строке Google и удаляем её. Всё опять-таким зависит от установленного лаунчера.
Способ 4: удаляем поисковую строку полностью
Устанавливаем программу ADB Run
Далее активируем на телефоне откладку по USB. Чтобы сделать всё правильно, обратимся к подробной инструкции:
- Заходим в настройки.
- Открываем вкладку «О телефоне» или «Моё устройство».
- Получаем права разработчика, несколько раз нажав по номеру сборки или версии прошивки.
- Возвращаемся назад и заходим в подкатегорию «Расширенные настройки».
- Открываем меню «Для разработчиков» и напротив пункта «Откладка по USB» переводим ползунок вправо.
Включаем отладку по USB
Подключаем телефон к компьютеру и запускаем на нём программу. Вводим команду a и нажимаем по кнопке «Enter».
Вводим команду a и нажимаем по кнопке «Enter»
Теперь вписываем комбинацию adb shell и также нажимаем «Enter».
Вписываем комбинацию adb shell
А далее указываем имя пакета удаляемого приложения. В нашем случае – это com.android.google.quicksearchbox, однако оно может быть другим, поэтому перед началом процедуру уточните информацию в настройках. Нажимаем по клавише «Enter» и видим, как поисковая строка исчезла с экрана телефона. При желании можно изменить принцип действий, вернувшись на стартовое окно программы. В нём вписываем цифру 12, а затем 7. Так же вводим имя пакета и нажимаем «Enter».
Пример удаления приложения
Остаётся отключить телефон от компьютера, воспользовавшись режимом безопасного извлечения устройства.
Full!screen
Приложение, которое отличается от двух приведённых выше, поскольку оно изменяет вид панели навигации, превращая её в две отдельные кнопки по бокам гаджета. Требует наличия root-прав для работы. Работает стабильно, постоянно обновляется и дорабатывается.
- превращает панели навигации и состояния в две отдельные кнопки;
- позволяет настраивать содержимое кнопок и их местоположение;
- имеет огромное количество параметров для точной настройки, за счёт чего для каждого движения пальцем по экрану можно предусмотреть своё действие.
- можно превращать панели как в отдельные кнопки, так и в радиальные меню по бокам девайса, в которых будет содержаться несколько кнопок;
- в платной версии можно выбрать приложения, для которых полноэкранный режим включится автоматически;
- не скрывает полностью панели с дисплея гаджета, что упрощает работу с ним для посторонних людей;
- можно настроить отображение полноценной панели по свайпу.
- в некоторых приложениях «ползёт» разметка — отрисовка кнопок не соответствует их реальному положению;
- всегда скрывается статус-бар вместе с панелью навигации.
После установки приложения панели навигации и состояния превращаются в две кнопки по углам дисплея, изменить назначение и функции которых можно через настройки Full!screen.
Источник