Как отключить панель действий навсегда

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

getActionBar().hide();

Но когда открывается клавиатура и пользователь копирует что-либо, панель действий снова отображается. Как я могу навсегда отключить панель действий?


person Biji    schedule 10.12.2011    source источник
comment
Нашел ответ hhh ‹activity android:theme=@android:style/Theme.NoTitleBar.Fullscreen .... ›   -  person Biji    schedule 10.12.2011
comment
это не панель действий, когда вы пытаетесь скопировать, вставить вид по умолчанию.   -  person Padma Kumar    schedule 10.12.2011
comment
да, но после того, как копипаст закончился, он все еще не исчез   -  person Biji    schedule 12.12.2011
comment
получитьSupportActionBar(). скрыть();   -  person Ameya Salagre    schedule 17.11.2017


Ответы (26)


Если вы используете Theme.Holo.Light и хотите использовать вариант Theme.Holo.Light.NoActionBar на устройствах до версии 3.2, вы можете добавить это в свой styles.xml:

<style name="NoActionBar" parent="@android:style/Theme.Holo.Light">
    <item name="android:windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
</style> 

а затем установите его в качестве темы вашей деятельности:

<activity android:theme="@style/NoActionBar" ... />
person monchote    schedule 25.04.2012
comment
Это правильный ответ. Не удаляет пользовательские темы, такие как решение @Biji. - person phreakhead; 05.09.2013
comment
Любая идея, какой дополнительный флаг должен был бы установить, чтобы скрыть панель уведомлений? - person jesses.co.tt; 07.04.2014
comment
Я также счел необходимым наследовать от FragmentActivity вместо ActionBarActivity. - person Meanman; 29.12.2014
comment
@jesses.co.tt Панель уведомлений можно удалить с помощью <item name="android:windowFullscreen">true</item> - person Mike Baxter; 21.09.2015
comment
Это не сработало для меня. Использовал следующее: stackoverflow.com/questions/29790070/ - person Christopher Smit; 14.08.2018

Установив тему активности в манифесте,

<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
....
>
person Biji    schedule 12.12.2011
comment
это кажется единственным правильным способом сделать это. особенно если у вас есть относительный макет внизу... - person jcfrei; 23.06.2012
comment
К сожалению, только так я могу работать. Он удаляет пользовательские темы, но для меня это действительно единственное, что полностью удаляет ActionBar. - person RileyE; 22.05.2013
comment
Это не работает с применением темы AppCompat в новом ADT. Я не думаю, что с этим нужно бороться — попытка полностью отказаться от AppCompat также является хорошим решением! Я пробовал подход @monchote, и он работает для меня - person ericn; 08.05.2014
comment
это должно быть ‹Активность android:theme=@android:style/Theme.NoTitleBar› вместо ‹Активность android:theme=@android:style/Theme.NoTitleBar.Fullscreen› - person Amandeep Rohila; 20.05.2015
comment
На Samsung Galaxy J2 это приводит к сбою приложения, но на Nexus 9 проблем нет. - person Suici Doga; 03.09.2016
comment
устарело, используя это / несовместимо с совместимостью приложений - person larsaars; 02.07.2020

Я использую следующий код внутри моей функции onCreate:

ActionBar actionBar = getSupportActionBar();
actionBar.hide();

Источник: https://developer.android.com/guide/topics/ui/actionbar.html

person rsc    schedule 18.04.2014
comment
Источник кажется устаревшим по состоянию на 2019 год. Актуальный источник: developer.android.com /обучение/системный интерфейс/статус - person B.Cakir; 21.08.2019

<application
    .
    .
    android:theme="@android:style/Theme.Holo.Light.NoActionBar"
    . >

может это тебе поможет

person semih    schedule 06.04.2013
comment
Обратите внимание, что для этого метода требуется минимальный уровень API 13. - person Olumide; 02.07.2014

С созданным по умолчанию суперклассом Activity для Android Studio является ActionBarActivity, и тогда ни одно из решений в других ответах не работает. Чтобы решить, просто измените суперкласс:

public class xxxActivity extends ActionBarActivity{

to:

public class xxxActivity extends Activity {
person Piotr Müller    schedule 18.03.2014
comment
Это сделало это для меня. Спасибо за вашу помощь. - person j_fulch; 17.12.2014

Если вы хотите получить полный экран без actionBar и Title.

Добавьте его в style.xml

<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
      <item name="windowActionBar">false</item>
      <item name="windowNoTitle">true</item>
      <item name="android:windowFullscreen">true</item>
</style>

и используйте стиль в manifest.xml.

android:theme="@style/AppTheme.NoActionBar" 
person reza.cse08    schedule 06.11.2015

Перейдите в файл styles.xml. Измените этот DarkActionBar на NoActionBar.

style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
person Dr Adams    schedule 26.06.2017

Лучший способ, который я нашел, который дает пользовательские темы и не имеет панели действий, - это создать SuperClass для всех действий в моем проекте и в нем onCreate() вызвать следующую строку кода:

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

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

person noob    schedule 22.10.2013

Вы можете принудительно скрыть панель действий просто:

ActionBar  actionbar = getSupportActionBar();
actionbar.hide();

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

person Trixie Belarmino    schedule 29.08.2017

Не используйте тему Holo, и панель действий исчезнет. Этот код у меня работает на API 8+ с поддержкой lib v7:

<style name="NoActionBar" parent="@style/Theme.AppCompat.Light">
<item name="android:windowNoTitle">true</item>
</style>

установите эту тему для своей деятельности:

<activity android:theme="@style/NoActionBar" ... />

и в вашем классе деятельности.

Он работает, даже если он расширяет ActionBarActivity.

person Hoang Nguyen Huu    schedule 15.04.2014

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

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

тогда вы можете использовать

<style name="AppThemeNoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

Но если вы хотите сохранить свойства своей основной темы, то есть AppTheme, вы можете сделать, как показано ниже.

<style name="AppThemeNoActionBar" parent="AppTheme">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

Таким образом, вы можете сохранить все свойства вашей базовой темы, и вам не нужно явно добавлять их в тему NoActionBar :)

person sanket vetkoli    schedule 01.12.2017

В разделе res -> values ​​->styles.xml

Изменить

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

To

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

person Community    schedule 20.03.2018

Вот быстрое решение.

Вы находите файл styles.xml и меняете базовую тему приложения на «Theme.AppCompat.NoActionBar», как показано ниже.

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <!-- Customize your theme here. -->
</style>
person odlh    schedule 10.06.2015

Ниже приведены шаги, чтобы навсегда скрыть панель действий:

  1. Откройте приложение/res/values/styles.xml.
  2. Найдите элемент стиля с именем «apptheme». Должно быть похоже на <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">.
  3. Теперь замените родительскую тему любой другой темой, в названии которой содержится «NoActionBar».

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

  4. Если ваша MainActivity расширяет AppCompatActivity, убедитесь, что вы используете тему AppCompat.

person Ravi Chandra    schedule 30.08.2016

Введите этот код в свой метод onCreate перед setContentView:

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);
person pavel_coder    schedule 17.08.2014

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

Шаг 1. Создайте новый стиль в (res->values->styles.xml): в основном это копия вашей общей схемы с другим родителем — parent="Theme.AppCompat.Light.NoActionBar"

<!-- custom application theme. -->
    <style name="MarkitTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimary</item>
        <item name="colorAccent">@color/colorAccent</item>

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

Шаг 2: В своем AndroidManifest.xml добавьте эту тему в нужное действие: например. Я хочу, чтобы моя основная деятельность была без панели действий, поэтому добавьте это, как показано ниже:

<activity android:name=".MainActivity"
            android:theme="@style/MarkitTheme">

Это лучшее решение для меня после многих попыток.

person Varun Ved    schedule 26.06.2017

в функцию onCreate добавьте следующий код

ActionBar actionBar = getSupportActionBar();
actionBar.hide();

и просто импортируйте android.support.v7.app.ActionBar

person Rahul    schedule 26.05.2015

Убедитесь, что вы создали новую тему, изменив имя темы по умолчанию в файле styles.xml на:

 <style name="MyTheme" parent="android:Theme.Material.Light.NoActionBar">

а затем измените тему из раскрывающегося списка под вашим main_activity.xml на то, что вы назвали своей темой.

person Raif Deari    schedule 09.01.2016

Используйте это в файле styles.xml:


<style name="MyTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
person Mohsen Emami    schedule 28.12.2019

Еще одно интересное решение, в котором вы хотите сохранить ViewPager при удалении панели действий, — это иметь стиль, как показано

<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:windowActionBarOverlay">true</item>
    <item name="android:actionBarStyle">@style/NoActionBarStyle</item>
    <item name="android:windowContentOverlay">@null</item>
</style>
<style name="NoActionBarStyle" parent="android:Widget.Holo.ActionBar">
    <item name="android:backgroundSplit">@null</item>
    <item name="android:displayOptions"></item>
</style>

Именно так большинство приложений Dialer в Android показывают ViewPager без панели действий.

Ссылка: https://github.com/CyanogenMod/android_packages_apps_Dialer

person Avinash R    schedule 12.02.2014
comment
это решение оставляет белую область сверху. - person Felipe FMMobile; 27.03.2014
comment
Это сработало для меня на Android 2.3 с Theme.AppCompat.Light, если я изменил родителя NoActionBarStyle на @style/Widget.AppCompat.ActionBar.TabBar (я использую ViewPager) - person TouchBoarder; 03.07.2014

попробуй это в своем манифесте

 <activity
        android:name=".MainActivity"
        android:theme="@android:style/Theme.Holo.NoActionBar"
        android:label="@string/app_name" >
person Mrad4Tech    schedule 14.06.2015

Есть два способа отключить ActionBar в Android.

requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.activity_main); 
person gaurav    schedule 17.04.2015

Я использую это решение:

в манифесте внутри вашего тега активности:

android:label="@string/empty_string"

и в strings.xml:

<string name="empty_string">""</string>

Таким образом, вы сохраняете ActionBar (или панель инструментов) с заголовком, но когда Activity создается, заголовок автоматически становится пустым.

person Lorenzo Barbagli    schedule 15.12.2014

Как ни странно, ни один из них не работал у меня при сборке на Nexus 7 под управлением 4.4.2 (API 19). По большей части, по крайней мере, с последней версией Android Studio (1.2.1.1) после создания пустого приложения активности:

android:theme="@style/AppTheme"

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

android:theme="@android:style/Theme.Holo.Light.NoActionBar"

приложение не запустится... если это происходит с вами, просто зайдите в свой файл styles.xml (res > values ​​> styles.xml) и добавьте .NoTitleBar в конец родительского блока, как этот блок:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>

Никаких изменений в файле AndroidManifest не требуется.

person whyoz    schedule 08.06.2015

В вашем activity_main.xml вы можете настроить оттуда в строке:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
.......
    android:theme="@style/Theme.Design.Light.NoActionBar"
.......    
">

Иногда, когда вы видите подобные вещи, Нажмите здесь, здесь вы можете выбрать " Тема noActionBar».

Надеюсь, я помог вам.

person John Melody Melissa    schedule 08.10.2019

Некоторые ответы уже написаны, и если вы не нашли styles.xml файл в res>values, то вы можете сделать это, перейдите к res>values>themes>themes.xml здесь вам нужно добавить эти две строки внутри стиля

 <item name="android:windowFullscreen">true</item>
 <item name="windowNoTitle">true</item>
person gurukiranx    schedule 03.04.2021