Почему AppTheme.NoActionBar не работает?

Я создал приложение для Android в Android Studio, и он создал эти стили по умолчанию:

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

однако в деятельности я пытаюсь установить это как тему:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
   ...
android:theme="@style/AppTheme.NoActionBar">

но когда я запускаю приложение, я получаю панели действий:

enter image description here

почему я получаю панель действий? Я делаю что-то явно неправильно, или это Android Studio, официальная IDE Google для своей собственной платформы, пытаясь запутать / ввести в заблуждение его разработчики?

вот мой код активности, в нем нет ничего, что может привести к появлению панели действий самостоятельно:

public class WelcomeActivity extends AppCompatActivity {
    @Override
    public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);
        setContentView(R.layout.activity_welcome);
    }
}

8 ответов


попробуйте что-то вроде этого:

<style name="AppTheme.NoActionBar">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
  </style>

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

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

ни один из ответов работал для меня, но я нашел такое решение:

открыть values/styles.xml В Android Studio и измените это:

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

в:

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

Если вы просто позволяете Android Studio автоматически генерировать активность, посмотрите в activity_welcome. Есть быть android.support.design.widget.AppBarLayout и если вы удалите его, ActionBar должен исчезнуть.


У вас может быть панель действий в макете или установить тему в файле AndroidManifest


один раз WelcomeActivity выходит AppCompatActivity попробуй тема.Совместимости приложений.NoActionBar:

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

Если это еще не сделано, включите версию библиотеки appcompat в свою сборку.Gradle в:

dependencies {
    compile 'com.android.support:appcompat-v7:24.1.1'
}

вы должны добавить ниже

<item name="android:windowFullscreen">true</item>
<item name="windowActionBar">false</item>

можно использовать

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

Вы можете здесь полноэкранная тема для AppCompat


вы должны использовать эту тему в манифесте.xml, такой же как:

 <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>

и в стилях.XML-код:

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

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

попробуйте проверить AndroidManifest.XML-файл. Я обнаружил, что основная тема была установлена для приложения, но тема, которую я хотел применить, должна была быть добавлена в правильную деятельность.