J'essaie de déplacer mes trucs à utiliser à la Toolbar
place de la barre d'action mais je reçois toujours une erreur disant
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tyczj.weddingalbum/com.xxx.xxx.MainActivity}: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5039)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.
at android.support.v7.app.ActionBarActivityDelegateBase.setSupportActionBar(ActionBarActivityDelegateBase.java:165)
at android.support.v7.app.ActionBarActivity.setSupportActionBar(ActionBarActivity.java:92)
at com.xxx.xxx.MainActivity.onCreate(MainActivity.java:113)
at android.app.Activity.performCreate(Activity.java:5104)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5039)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
alors j'ai ajouté dans mon style pour que mon activité n'ait pas de barre d'action
<style name="AppCompatTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:windowActionBar">false</item>
</style>
et le thème s'applique aux activités de mon manifeste
<activity
android:name=".MainActivity"
android:windowSoftInputMode="adjustResize|stateHidden"
android:theme="@style/AppCompatTheme" android:screenOrientation="portrait"/>
MainActivity étend GooglePlayServiceActivity, donc j'ai également défini le thème là-bas
<activity
android:name=".GooglePlayServicesActivity"
android:label="@string/title_activity_google_play_services"
android:theme="@style/AppCompatTheme">
mais je reçois toujours l'erreur. Je ne demande également aucune fonctionnalité de fenêtre nulle part. des idées pourquoi je reçois toujours cela?
windowActionBar
pas le même queandroid:windowActionBar
?Un autre moyen simple est de faire de votre thème un enfant
Theme.AppCompat.Light.NoActionBar
comme ça:la source
GooglePlayServiceActivity
, je ne me souviens pasAjouter une seule ligne
android:theme="@style/AppTheme.NoActionBar"
àactivity
enAndroidManifest
et vous avez fait.AndroidManifest.xml :
styles.xml
la source
Pour utiliser la barre d'outils comme barre d'action, désactivez d'abord la barre d'action fournie par le décor.
La façon la plus simple est de faire étendre votre thème
(ou sa variante légère).
Deuxièmement, créez une instance de la barre d'outils, généralement via votre XML de mise en page:
Ensuite, dans votre activité ou fragment, définissez la barre d'outils pour agir comme votre barre d'action:
Ce code a fonctionné pour moi.
la source
<android.support.v7.widget.Toolbar
au XML.Si vous souhaitez combiner certaines activités avec la barre d'action et d'autres non, vous devez utiliser le thème de base avec la barre d'action activée, puis créer un sous-thème que vous allez utiliser sur des activités qui ne nécessitent pas de barre d'action.
Par exemple, vous pouvez utiliser un sous-style comme celui-ci
Alors que le thème de base s'étend, disons
puis utilisez le thème non actionbar dans le fichier AndroidManifest dans la balise d'activité, par exemple
vous devez l'appliquer à chaque activité individuelle qui n'a pas besoin de la barre d'action, donc si votre projet nécessite moins d'activités que la barre d'actions, il est préférable de l'appliquer au niveau du thème de base
la source
J'ai également rencontré le même problème. Mais j'ai utilisé:
getSupportActionBar().hide();
avant
setContentView(R.layout.activity_main);
Maintenant ça marche.
Et nous pouvons essayer une autre option dans Style.xml ,
la source
Ajoutez ceci dans vos valeurs / styles.xml
Et ajoutez le code suivant dans vos valeurs-v11 / styles.xml et values-v14 / styles.xml
C'est ça. Ça va marcher.
la source
Vous devez changer
ces lignes dans le manifeste. Cela fonctionnera parfaitement pour moi.
la source
Accédez au 'style.xml' de votre projet et définissez windowActionBar sur false
la source
Ajoutez ces deux lignes dans le thème de votre application situé dans style.xml: -
la source
J'ai ajouté une barre d'outils dans mon xml. Ensuite, dans mon activité, j'ajoutais cette déclaration:
Supprimer cela a fonctionné pour moi. J'espère que ça aide quelqu'un.
la source
Si vous obtenez l'erreur sur cette ligne:
Vous devez vérifier si votre activité fait référence à un thème contenant une barre d'outils. L'AppTheme de votre application peut déjà contenir une barre d'outils, telle que
et vous essayez d'en ajouter un deuxième. Si vous souhaitez utiliser AppTheme de votre application, vous devez supprimer le thème de votre activité, dans le fichier manifest.xml.
Par exemple:
la source
Utilisez-le dans votre balise d'application dans le manifeste ou dans votre balise d'activité.
la source
Si vous utilisez l'
Appcompact
activité, utilisez ces trois lignes dans votre thème.la source
Autrement dit, vous pouvez faire ce qui suit: -
la source
C'est ainsi que j'ai résolu le problème. Ajoutez le code ci-dessous dans votre
AndroidMainfest.xml
la source
Ou changez simplement le @ Style / AppTheme
Ça marche pour moi!
la source
la source
Il existe deux solutions simples et rapides
allez dans res -> valeurs -> styles
VOUS pouvez aussi regarder cette vidéo pour plus de facilité CLIQUEZ ICI
Solution 1:
Vous pouvez supprimer la barre d'actions en remplaçant
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
à
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
Solution2:
Ajoutez simplement ces lignes
<item name="windowActionBar">false</item> <item name="windowNoTitle">true</item>
Alors maintenant, votre fichier de style ressemble à ceci
"
"
la source
Je l'ai résolu en supprimant cette ligne:
android:theme="@style/Theme.MyCompatTheme"
des propriétés d'activité dans le
Manifest file
la source
Mettez simplement
parent="Theme.AppCompat.NoActionBar"
votre fichier style.xmlComme -
<style parent="Theme.AppCompat.NoActionBar" name="AppTheme.NoActionBar">
la source