Як відключити панель дій назавжди


138

Я можу приховати панель дій у соті за допомогою цього коду:

getActionBar().hide();

Але коли клавіатура відкривається, і користувач копіює щось, вставляє, панель дій знову відображається. Як я можу назавжди відключити панель дій?


2
Знайшов відповідь hhh <активність android: theme = "@ android: style / Theme.NoTitleBar.Fullscreen" ....>
Biji

1
що не панель дій, коли ви намагаєтесь скопіювати, вставити його подання за замовчуванням
Падма Кумар

так, але після закінчення вставки вставити копію все-таки там не зникло
Biji

getSupportActionBar (). hid ();
Амея Салагре

Відповіді:


251

Якщо ви використовуєте 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" ... />

8
Це правильна відповідь. Не видаляє користувацькі теми, як-от рішення @ Biji.
freakhead

1
Будь-яка ідея, яким буде додатковий прапор, щоб встановити приховати панель сповіщень?
jesses.co.tt

1
Я також вважав необхідним успадкувати від FragmentActivity замість ActionBarActivity.
Середина

4
@ jesses.co.tt Панель сповіщень можна видалити, використовуючи<item name="android:windowFullscreen">true</item>
Майк Бакстер

Це не спрацювало для мене. Використовується наступне: stackoverflow.com/questions/29790070/…
Крістофер Сміт

116

Встановивши тему діяльності в Manifest,

<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
....
>

це здається єдиним правильним способом зробити це. особливо якщо у вас трапляється відносна
розкладка

1
Це, на жаль, єдиний спосіб, коли я можу дістатись до роботи. Це видаляє користувацькі теми, але ActionBarдля мене це справді єдине, що повністю видаляє .
RileyE

3
Це не працює із застосуванням теми AppCompat у новому ADT. Я не думаю, що боротьба з цим - спроба повністю відійти від AppCompat - це теж хороше рішення! Я спробував підхід @ monchote, і він працює на мене
ericn

це має бути <активність android: theme = "@ android: style / Theme.NoTitleBar"> замість <активність android: theme = "@ android: style / Theme.NoTitleBar.Fullscreen">
Amandeep Rohila

На Samsung Galaxy J2 це виходить із програми, але немає проблем на Nexus 9
Suici Doga


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

можливо, це вам допоможе


3
Зауважимо, що для цього методу потрібно mnimum api рівня 13
Олумід

23

З суперкласом активності, створеним за замовчуванням Android Studio, ActionBarActivityі тоді жодне рішення в інших відповідях не працює. Щоб вирішити просто змінити суперклас:

public class xxxActivity extends ActionBarActivity{

до:

public class xxxActivity extends Activity {

Це зробило це для мене. Спасибі за вашу допомогу.
j_fulch

17

Якщо ви хочете отримати повний екран без 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" 

12

Найкращий спосіб, який я знайшов, що дає власні теми та не працює панель дій, - це створити SuperClass для всіх видів діяльності в моєму проекті і в ньому onCreate () викликати наступний рядок коду -

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

Це завжди працює для мене. Єдине питання цього підходу полягає в тому, що ви відкриєте панель дій на частку секунди під час запуску програми (Не активність, повний додаток).



12

Перейдіть до styles.xml Змініть цей DarkActionBar на NoActionBar

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

7

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

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

Просто використовуйте тему за замовчуванням.


7

Якщо ви просто хочете тему без панелі дій, ви можете використовувати варіант "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 :)


6

Не використовуйте тему 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.


6

У розділі res -> значень -> styles.xml

Зміна

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

До

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


5

Ось швидке рішення.

Ви знайдете styles.xml і зміните базову тему додатка на "Theme.AppCompat.NoActionBar", як показано нижче.

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

3

Нижче наведено етапи, щоб назавжди приховати панель дій:

  1. Відкрийте додаток / res / values ​​/ styles.xml.
  2. Шукайте елемент стилю, який названий "аптема". Повинен бути схожий на <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">.
  3. Тепер замініть батьківську програму будь-якою іншою темою, яка містить "NoActionBar" у своєму імені.

    а. Ви також можете перевірити, як виглядає тема, перейшовши на вкладку дизайну Activity_main.xml, а потім випробувати кожну тему зі спадного списку теми інтерфейсу користувача.

  4. Якщо ваша MainActivity розширює AppCompatActivity , переконайтеся, що ви використовуєте тему AppCompat.


3

Введіть цей код у свій onCreateметод раніше setContentView:

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);

3

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

Крок 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">

Це найкраще рішення для мене після спробу багатьох речей.


2

у функцію onCreate додайте наступний код

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

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


2

Переконайтеся, що ви створили нову тему, змінивши назву теми за замовчуванням у styles.xmlфайлі на:

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

а потім змінити тему зі спадного меню main_activity.xmlна те, що ви назвали.


1

Ще одне цікаве рішення, коли ви хочете зберегти ViewPager, видаляючи панель дій, - це мати стиль show

<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


цим розчином залиште білу область зверху.
Феліпе FMMobile

Це працювало для мене на Android 2.3 із програмою Theme.AppCompat.Light, якщо я змінив батьківський модуль NoActionBarStyle на @ style / Widget.AppCompat.ActionBar.TabBar (я використовую ViewPager)
TouchBoarder

1

спробуйте це у своєму маніфесті

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

1
  protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   android.support.v7.app.ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.hide();
    }
    setContentView(R.layout.activity_main);

1

Існує два способи відключення ActionBarв Android.

requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.activity_main); 

1

Використовуйте це у styles.xmlфайлі:


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

0

Я використовую це рішення:

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

android:label="@string/empty_string"

та в strings.xml:

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

Таким чином ви зберігаєте ActionBar (або Панель інструментів) із заголовком, але коли Активність, якщо створена, заголовок автоматично порожній.


0

Як не дивно, жодне з них не працювало для мене під час побудови на Nexus 7 під керуванням 4.4.2 (API 19). Здебільшого, щонайменше, з останньою версією Android Studio (1.2.1.1) після створення додатка "пусту активність":

android: topic = "@ style / AppTheme"

знаходиться в елементі програми, а не в елементі діяльності. Якщо я видалив вищезазначений код або спробував змінити його на:

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

додаток не запуститься ... якщо це з вами відбувається, просто зайдіть у файл styles.xml (res> значень> styles.xml) і додайте .NoTitleBar до кінця батьківського типу, як цей блок:

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

Зміни у файлі AndroidManifest не потрібні.


0

У своєму 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".

Сподіваюся, я допомогла вам.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.