Как отключить панель действий навсегда - PullRequest
125 голосов
/ 10 декабря 2011

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

getActionBar().hide();

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

Ответы [ 25 ]

6 голосов
/ 01 декабря 2017

Если вы просто хотите тему без панели действий, вы можете использовать вариант «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>

Но если вы хотите сохранить свойства своей основной темы, т.е.*

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

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

5 голосов
/ 11 июня 2015

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

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

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <!-- Customize your theme here. -->
</style>
4 голосов
/ 29 августа 2017

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

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

Просто используйте тему по умолчанию.

3 голосов
/ 17 августа 2014

Введите этот код для вашего onCreate метода до setContentView:

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);
3 голосов
/ 20 марта 2018

Под res -> values ​​-> styles.xml

Изменение

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

К

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

3 голосов
/ 26 июня 2017

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

Шаг 1. Создайте новый стиль в (res-> values-> styles.xml):По сути, это копия вашей общей схемы с другим parent - 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">

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

3 голосов
/ 30 августа 2016

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

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

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

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

2 голосов
/ 10 января 2016

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

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

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

1 голос
/ 26 мая 2015

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

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

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

1 голос
/ 12 февраля 2014

Еще одно интересное решение, в котором вы хотите сохранить 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

...