it-swarm.com.ru

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

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

getActionBar().hide();

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

125
Biji

Установив тему деятельности в Манифесте,

<activity
Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen"
....
>
106
Biji

Если вы используете 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" ... />
237
monchote

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

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

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

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

может быть, это поможет вам

29
semih

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

public class xxxActivity extends ActionBarActivity{

чтобы:

public class xxxActivity extends Activity {
23
Piotr Müller

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

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

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

12
noob

Если вы хотите получить полноэкранный режим без 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" 
11
reza.cse08
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
    getSupportActionBar().hide();
}
10
Rajarshee Mitra

Перейти к styles.xml Измените этот DarkActionBar на NoActionBar

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

Не используйте тему 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
Hoang Huu

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

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

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

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

5
sanket vetkoli

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

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

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

4
Trixie Belarmino

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

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

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

Change

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

К

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

3
user8231406

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

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

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

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

3
Ravi Chandra

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

Шаг 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 эту тему к желаемому мероприятию, например: Я хочу, чтобы моя основная деятельность была без action-bar, поэтому добавьте это, как показано ниже:

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

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

3
Varun Ved

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

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

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

2
Raif Deari

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

 <activity
        Android:name=".MainActivity"
        Android:theme="@Android:style/Theme.Holo.NoActionBar"
        Android:label="@string/app_name" >
1
Mrad4Tech
  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
Abhijeet

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

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

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

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

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

1
Avinash R

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

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

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

1
Rahul

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

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

Android:label="@string/empty_string"

и в strings.xml:

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

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

0
Lorenzo Barbagli

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

Android: тема = "@ стиль/AppTheme"

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

Android: тема = "@ Android: стиль/Theme.Holo.Light.NoActionBar"

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

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

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

0
whyoz