Скрытие кнопок «Домой» и «Назад» на Android

В стилях я

<item name="android:windowFullscreen">true</item>
<item name="android:windowNoTitle">true</item>

а в файле манифеста в приложении я указал свою тему, но кнопки домой и назад все еще видны, что мне делать?


person misha    schedule 15.09.2016    source источник
comment
Возможный дубликат Использование полноэкранного режима   -  person Michele Lacorte    schedule 15.09.2016


Ответы (2)


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

View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;

(или их часть). Если это так, то он смотрит, что ваша compileSdkVersion ниже, чем должна быть. При запуске я бы посоветовал вам обновить compileSdkVersion.

Когда вы это сделаете и захотите использовать эти флаги в местах, где вы хотите использовать иммерсивный режим, добавьте условия, которые будут выглядеть так:

if (Build.VERSION.SDK_INT >= VERSION_CODES.KITKAT) {
    int UI_OPTIONS = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
    getWindow().getDecorView().setSystemUiVisibility(UI_OPTIONS);
}

Тогда он не должен мешать более старой ОС.

person W4R10CK    schedule 15.09.2016
comment
хорошо, я сделал это, но он сине-белый, и я хочу сделать его черным, и я не понял, как я могу изменить - person misha; 15.09.2016
comment
Измените настройки темы по умолчанию. - person W4R10CK; 16.09.2016
comment
Можете ли вы сказать мне, где он получает цвет для домашней панели кнопок? - person misha; 16.09.2016

Используйте следующие два способа для достижения того, что вам нужно

  • getActionBar().setDisplayHomeAsUpEnabled(false), чтобы удалить кнопку «Домой» с панели действий.
  • ActionBar().setHomeAsUpIndicator(null); getSupportActionBar().setHomeAsUpIndicator(null); я предпочитаю, чтобы вы использовали первый 1
person Amith Kr    schedule 15.09.2016
comment
убедитесь, что ваша активность объявлена ​​как ‹activity android:name=ваше имя android:label=@string/app_name android:screenOrientation=portrait android:theme=@style/AppTheme.NoActionBar› ‹/activity› и в стиле вы указываете стиль как ~~ ‹style name=AppTheme.NoActionBar›‹item name=windowActionBar›false‹/item›‹item name=windowNoTitle›true‹/item›‹/style› - person Amith Kr; 16.09.2016