web-dev-qa-db-fra.com

Pourquoi AppTheme.NoActionBar ne fonctionne-t-il pas?

J'ai créé une application Android dans Android Studio, qui a créé ces styles par défaut:

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

Cependant, dans une activité, j'essaie de définir cela comme un thème:

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

Mais lorsque je lance l'application, la barre d'action s'affiche:

 enter image description here

Pourquoi est-ce que je reçois une barre d'action? Suis-je en train de faire quelque chose de manifestement faux ou Android Studio, le IDE officiel de Google pour sa propre plate-forme, essaie-t-il de tromper/d'induire en erreur ses développeurs?

Voici mon code d'activité. Il ne contient rien qui puisse faire apparaître la barre d'action par elle-même:

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

Essayez quelque chose comme ça:

<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>

et définissez-le comme thème de votre activité dans le manifeste, à savoir:

<activity
    ...
    Android:theme="@style/AppTheme.NoActionBar">
</activity>
37
Mehmet K

Aucune des autres réponses n'a fonctionné pour moi, mais j'ai trouvé cette solution:

Ouvrez values/styles.xml dans Android Studio et changez ceci:

<!-- 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>
7
trinity420

Si vous laissez simplement Android Studio générer automatiquement l'activité, consultez activity_welcome. Il y a Android.support.design.widget.AppBarLayout et si vous le supprimez, la barre d'action devrait disparaître.

4
tomaset22

Vous pouvez avoir une barre d'action dans votre mise en page ou définir un thème dans le fichier AndroidManifest 

3
GetRealRenz

Une fois que WelcomeActivity étend AppCompatActivity, essayez Theme.AppCompat.NoActionBar :

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

Si ce n'est déjà fait, incluez une version de la bibliothèque appcompat dans votre build.gradle:

dependencies {
    compile 'com.Android.support:appcompat-v7:24.1.1'
}
1
Denis

Vous devriez ajouter ci-dessous 

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

Vous pouvez utiliser

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

Vous pouvez visiter Thème plein écran pour AppCompat

0
IntelliJ Amiya

vous devriez utiliser ce thème dans manifest.xml, comme suit:

 <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>

Et dans styles.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>
0
Taras Okunev

Essayez de vérifier le fichier AndroidManifest.xml. J'ai trouvé que le thème principal était défini pour l'application, mais le thème que je souhaitais appliquer devait être ajouté à la bonne activité.

0
Kristelle