Android studio как убрать нижнюю панель

Панель навигации

В Android 4.0 (точнее в Android 3.0) появилась новая панель навигации. Рассмотрим несколько примеров взаимодействия с этой панелью. Как включить панель навигации в эмуляторе написано здесь.

Следует обратить внимание на следующие вещи. Первое — поведение панели навигации на планшетах под управлением Android 3.0 немного отличается от панели навигации для устройств под управлением Android 4.0 и представленный код может не работать. Второй момент — многие брендированные телефоны имеют собственную прошивку, в которой не предусмотрена панель навигации. Яркий пример — мой Galaxy SII. Учитывайте эти факты при разработке своих приложений.

Прячем системные кнопки навигации

Чтобы скрыть системную панель навигации с кнопками Home, Back, можно использовать код:

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

Прячем или затемняем панель навигации

Способов управления панелью навигации не так уж и много. Точнее их всего три. Мы можем скрыть панель или затемнить её (рекомендуется использовать в играх, чтобы не отвлекала). Управляется поведение панели при помощи метода setSystemUiVisibility(), который применим к элементам View. Например, мы можем запустить приложение с скрытой панелью, но как только мы коснёмся экрана (приложение получит фокус), то панель сразу появится. Для эффекта затемнения мы приготовим кнопку. Третий способ показа панели использовать не будем, так как она и так появляется без явного вызова метода.

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

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

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

Сначала мы узнаём текущие настройки с помощью метода getSystemUiVisibility(), а затем устанавливаем новые настройки.

Кстати, вы заметили, что на картинке два кота? Эх, вы. (источник)

При затемнении и скрытии мы использовали элемент ImageView в качестве компонента, который управляет флагами видимости. Сейчас в официальной документации используется другой пример, когда используется объект View, получаемый через метод getWindow().getDecorView(), хотя в комментариях говорится, что можно использовать и старый способ. Сейчас мы рассмотрим этот пример, заодно покажу, как сбросить все флаги. Для примера достаточно двух кнопок.

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

Прячем строку состояния

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

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

После нажатия на кнопку, самая верхняя полоска исчезнет и заголовок приложения сдвинется вверх.

Если хотите скрыть и заголовок приложения, то добавьте ещё две строчки кода:

Можно объединять флаги, например, можем скрыть панель навигации и строку состояния одновременно:

Следует помнить, что любое нажатие в области экрана заставит появиться панель навигации и строку состояния снова. Также имейте в виду, что когда пользователь нажмёт на кнопку HOME, а потом вернётся в ваше приложение, то панель и строка состояния будут видны, если вы расположение метод скрытия в метод onCreate(), который просто не сработает при возвращении. Поэтому используйте методы onResume() или onWindowFocusChanged().

Перекрыть разметку

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

Источник

Как убрать панель кнопок внизу экрана

Я создаю пользовательский образ. Я иду через источник Android, я хочу избавиться от панели кнопок софт-кнопок внизу в android, может ли кто-нибудь направить меня в исходный файл, чтобы изменить?

9 ответов

Чтобы включить/отключить их, насколько я знаю, вам просто нужно отредактировать файл build.prop:

Если строка в файле build.prop отсутствует, добавьте ее внизу.

Вы не можете скрывать его надолго:

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

Здесь вы можете найти .

Самый простой способ сделать снимок экрана без нижней навигационной панели — использовать эмулятор (AVD) и отредактировать его конфигурационный файл.

Перейдите в .android/avd/virtual-device.avd

Затем отредактируйте файл config.ini:

Оба должны быть установлены на «да»

Чтобы снова увидеть панель, верните их «нет».

В дополнение к ответу Aykut Burak SAFAK выше, вы можете поместить свой код в событие onWindowFocusChanged , чтобы убедиться, что всякий раз, когда Activity получает фокус (например, после разблокировки), он сохраняет полноэкранный режим без состояния программных клавиш.

Источник

Как навсегда скрыть панель навигации в активности Android?

Как скрыть строку состояния и панель навигации | Android-студия

Я хочу постоянно скрывать панель навигации в своей деятельности (а не в пользовательском интерфейсе всей системы). теперь я использую этот кусок кода

Он скрывает панель, но когда пользователь касается экрана, она снова отображается. есть ли способ скрыть это навсегда до активности onStop() ;

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

Фрагменты:

Это для Android 4.4+

Попробуйте иммерсивный режим https://developer.android.com/training/system-ui/immersive.html

Быстрый фрагмент (для Деятельность класс):

Если при нажатии кнопки увеличения или уменьшения громкости возникают проблемы, отображается панель навигации. Я добавил код в onCreate см. setOnSystemUiVisibilityChangeListener

Вот еще один связанный с этим вопрос:

Навигация в режиме погружения становится липкой после нажатия кнопки громкости или минимизации-восстановления

  • 4 Когда пользователь проводит пальцем вверх / вниз по экрану, полупрозрачные панели навигации временно появляются, а затем снова скрываются. МОЖНО ЛИ ЭТО СКРЫТЬ?
  • @KarthickRamu Я нашел способ, просто посмотрите на мой ответ 🙂
  • 1 @MuhammedRefaat Для вашей подсказки требуется устройство с root-доступом 🙁
  • 1 @DawidDrozd Спасибо, но у меня проблема. Корневой макет моей активности — RelativeLayout, и у него есть дочернее представление, для которого установлено android: layout_alignParentBottom = «true», панель навигации исчезает, но дочернее представление не перемещается вниз край экрана, как будто панель навигации установлена ​​на невидимку, не исчезла, не могли бы вы помочь?
  • 1 Если вы хотите использовать пространство, занимаемое панелью навигации, необходимо удалить все вхождения android:fitsSystemWindows=’true’ с ваших взглядов. Android Studio включает этот атрибут при создании некоторых макетов. См. Stackoverflow.com/a/42501330/650894
Читайте также:  Bitmap resize android java

Это работает на 100%, и вы можете сделать то же самое для более низких версий API, даже если это запоздалый ответ, я надеюсь, что это поможет кому-то другому.

Если вы хотите, чтобы это было навсегда, просто позвоните FullscreenCall() внутри твоего onResume() метод.

  • 2 Я рекомендую взглянуть на developer.android.com/training/system-ui/immersive.html, где объясняется, что ваш метод просто скрывает панель до тех пор, пока не произойдет взаимодействие, и снова вскоре после завершения взаимодействия.
  • Большое вам спасибо — вот и все! : D: +1

Для людей, ищущих более простое решение, я думаю, вы можете просто добавить эту строку кода в onStart()

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

Согласно сайту разработчика Android

Я думаю, вы не можете (насколько я знаю) скрыть панель навигации навсегда.

Однако вы можете сделать одну уловку. Заметьте, это уловка.

Просто когда navigation bar появляется, когда пользователь касается экрана. Немедленно снова спрячьте это. Это весело.

Проверь это.

См. Это для получения дополнительной информации об этом ..

Скрыть системную панель в планшетах

В планшетах под управлением Android 4+ скрыть панель системы / навигации невозможно.

SYSTEM_UI_FLAG_HIDE_NAVIGATION — это новый флаг, который запрашивает полное скрытие панели навигации. Имейте в виду, что это работает только для панели навигации, используемой некоторыми телефонами (она не скрывает системную панель на планшетах).

Это мое решение:

Сначала определите логическое значение, которое указывает, отображается ли панель навигации или нет.

Второй метод создания, скрывающий панель навигации.

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

Теперь установите OnClickListener на свое представление. Я использую Surfaceview, поэтому для меня:

Также мы должны вызывать этот метод при запуске активности. Потому что мы хотим скрыть это вначале.

Это проблема безопасности: https://stackoverflow.com/a/12605313/1303691

поэтому невозможно навсегда скрыть навигацию на планшете одним единственным вызовом в начале создания представления. Он будет скрыт, но всплывет при касании экрана. Таким образом, всего лишь второе прикосновение к экрану может вызвать событие onClickEvent в макете. Поэтому вам нужно перехватить этот вызов, но я еще не успел это сделать, я обновлю свой ответ, когда узнаю об этом. Или вы уже ответили?

Я думаю, что код удара поможет вам, и добавьте этот код перед setContentView ()

Читайте также:  Dr web security space ключики 2021 android

Добавьте этот код за setContentView () getWindow (). GetDecorView (). SetSystemUiVisibility (View.SYSTEM_UI_FLAG_LOW_PROFILE);

  • 1 Поле требует API уровня 21+
  • НЕТ, это даст мне тот же результат

Думаю, этот код решит вашу проблему. Скопируйте и вставьте этот код в свой MainActivity.java

Он будет работать на Android-10. Надеюсь, это поможет.

В других ответах в основном используются флаги для setSystemUiVisibility() метод в View . Однако этот API устарел с Android 11. Дополнительные сведения см. В моей статье об изменении видимости пользовательского интерфейса системы. В статье также объясняется, как правильно обрабатывать вырезки или как прислушиваться к изменениям видимости.

Вот фрагменты кода для отображения / скрытия системных панелей с новым API, а также устаревшим для обратной совместимости:

Источник

Как скрыть панель навигации постоянно в Android активность?

Я хочу, чтобы скрыть панель навигации постоянно в моей деятельности(не весь интерфейс системы). теперь я использую этот фрагмент кода

он скрывает панель, но когда пользователь касается экрана, он снова отображается. есть ли способ скрыть его навсегда, пока activity onStop() ;

8 ответов

фрагменты:

Это для Android 4.4+

быстрый фрагмент (для активность класс):

Если у вас возникли проблемы при нажатии кнопки увеличения громкости или Уменьшите громкость, которую показывает панель навигации. Я добавил код onCreate посмотреть setOnSystemUiVisibilityChangeListener

вот еще один вопрос:

это работает на 100% , и вы можете сделать то же самое для более низких версий API, даже если это поздний ответ, я надеюсь, что это поможет кому-то другому.

Если вы хотите, чтобы это было постоянным, просто позвоните FullscreenCall() внутри onResume() метод.

в планшетах под управлением Android 4+ невозможно скрыть панель системы / навигации.

SYSTEM_UI_FLAG_HIDE_NAVIGATION-это новый флаг, который запрашивает панель навигации полностью скрыта. Помните, что это работает только для панель навигации, используемая некоторыми телефонами (она не скрывает системную панель на таблетки.)

Я думаю, что вы не можете(насколько я знаю) скрыть панель навигации постоянно..

однако вы можете сделать один трюк. Это трюк, заметь.

как раз когда navigation bar отображается, когда пользователь касается экрана. Немедленно спрячьте его снова. Это весело.

проверить это.

Посмотреть больше информации об этом ..

Я думаю, что код удара поможет вам и добавит этот код перед setContentView ()

добавьте этот код за setContentView() getWindow().getDecorView().setSystemUiVisibility(просмотр.SYSTEM_UI_FLAG_LOW_PROFILE);

поэтому невозможно скрыть навигацию на планшете постоянно с одним вызовом в начале создания представления. Он будет скрыт, но он будет всплывать при касании экрана. Таким образом, только второе касание экрана может вызвать onClickEvent на вашем макете. Поэтому вам нужно перехватить этот вызов, но мне еще не удалось, я обновлю свой ответ, когда найду его. Или ты уже знаешь ответ?

дайте мне знать, если это помогает. 🙂

Это мое решение:

во-первых, определите логическое значение, указывающее, видна или нет панель навигации.

Второй метод создания, который скрывает панель навигации.

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

теперь установите OnClickListener на свой вид. Я использую surfaceview так для меня:

кроме того, мы должны вызвать этот метод при запуске активности. Потому что мы хотим скрыть это с самого начала.

Источник

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