Ich versuche, meine Inhalte Toolbar
anstelle der Aktionsleiste zu verwenden , erhalte jedoch immer wieder die Fehlermeldung
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)
Also habe ich in meinem Stil hinzugefügt, dass meine Aktivität keine Aktionsleiste hat
<style name="AppCompatTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:windowActionBar">false</item>
</style>
und das Thema gilt für Aktivitäten in meinem Manifest
<activity
android:name=".MainActivity"
android:windowSoftInputMode="adjustResize|stateHidden"
android:theme="@style/AppCompatTheme" android:screenOrientation="portrait"/>
MainActivity erweitert GooglePlayServiceActivity, sodass ich das Thema auch dort festlegen kann
<activity
android:name=".GooglePlayServicesActivity"
android:label="@string/title_activity_google_play_services"
android:theme="@style/AppCompatTheme">
aber ich bekomme immer noch den Fehler. Ich fordere auch nirgendwo Fensterfunktion an. Irgendwelche Ideen, warum ich das noch bekomme?
windowActionBar
nicht dasselbe wieandroid:windowActionBar
?Eine andere einfache Möglichkeit besteht darin, Ihr Thema zu einem Kind
Theme.AppCompat.Light.NoActionBar
wie diesem zu machen :quelle
GooglePlayServiceActivity
, ich erinnere mich nichtIn einzelne Zeile
android:theme="@style/AppTheme.NoActionBar"
zuactivity
inAndroidManifest
und du getan hast.AndroidManifest.xml :
styles.xml
quelle
Um die Symbolleiste als Aktionsleiste zu verwenden, deaktivieren Sie zunächst die vom Dekor bereitgestellte Aktionsleiste.
Am einfachsten ist es, wenn Sie Ihr Thema erweitern
(oder seine leichte Variante).
Zweitens erstellen Sie eine Symbolleisteninstanz, normalerweise über Ihr Layout-XML:
Stellen Sie dann in Ihrer Aktivität oder Ihrem Fragment die Symbolleiste so ein, dass sie als Aktionsleiste fungiert:
Dieser Code hat bei mir funktioniert.
quelle
<android.support.v7.widget.Toolbar
zu XML hinzuzufügen .Wenn Sie einige Aktivitäten mit der Aktionsleiste kombinieren möchten und andere nicht, sollten Sie das Basisthema verwenden, für das die Aktionsleiste aktiviert ist, und dann ein Unterthema erstellen, das Sie für Aktivitäten verwenden, für die keine Aktionsleiste erforderlich ist
Sie können beispielsweise einen solchen Unterstil verwenden
Während sich das Basisthema erweitert, sagen wir
Verwenden Sie dann das Nicht-Aktionsleisten-Thema in der AndroidManifest-Datei innerhalb des Aktivitäts-Tags
Sie müssen dies auf jede einzelne Aktivität anwenden, für die keine Aktionsleiste erforderlich ist. Wenn für Ihr Projekt weniger Aktivitäten in der Aktionsleiste als für Nicht-Aktivitäten erforderlich sind, ist es besser, dies auf der Ebene des Basisthemas anzuwenden
quelle
Ich hatte auch das gleiche Problem. Aber ich habe verwendet:
getSupportActionBar().hide();
Vor
setContentView(R.layout.activity_main);
Jetzt funktioniert es.
Und wir können andere Optionen in Style.xml ausprobieren .
quelle
Fügen Sie dies in Ihre values / styles.xml ein
Fügen Sie den folgenden Code in Ihre Werte-v11 / styles.xml und values-v14 / styles.xml ein
Das ist es. Es wird klappen.
quelle
Du musst dich ändern
Diese Zeilen im Manifest. Es wird perfekt für mich funktionieren.
quelle
Gehen Sie zur 'style.xml' Ihres Projekts und setzen Sie windowActionBar auf false
quelle
Fügen Sie diese beiden Zeilen in Ihr App-Design in style.xml ein: -
quelle
Ich hatte eine Symbolleiste in meiner XML hinzugefügt. Dann fügte ich in meiner Aktivität diese Aussage hinzu:
Das zu entfernen hat bei mir funktioniert. Ich hoffe es hilft jemandem.
quelle
Wenn Sie den Fehler in dieser Zeile erhalten:
Sie müssen überprüfen, ob sich Ihre Aktivität auf ein Thema bezieht, das eine Symbolleiste enthält. Das AppTheme Ihrer Anwendung enthält möglicherweise bereits eine Symbolleiste, z
und Sie versuchen, eine zweite hinzuzufügen. Wenn Sie AppTheme Ihrer Anwendung verwenden möchten, müssen Sie das Thema aus Ihrer Aktivität in der Datei manifest.xml entfernen.
Zum Beispiel:
quelle
Verwenden Sie dies in Ihrem Anwendungs-Tag im Manifest oder in Ihrem Aktivitäts-Tag.
quelle
Wenn Sie
Appcompact
Aktivität verwenden, verwenden Sie diese drei Zeilen in Ihrem Thema.quelle
Einfach ausgedrückt, können Sie Folgendes tun: -
quelle
So habe ich das Problem gelöst. Fügen Sie den folgenden Code in Ihr
AndroidMainfest.xml
quelle
Oder ändern Sie einfach den @ Style / AppTheme
Das funktioniert bei mir!
quelle
quelle
Es gibt zwei einfache und schnelle Lösungen
Gehen Sie zu res -> values -> styles
Sie können dieses Video auch ansehen, um es einfacher zu machen. KLICKEN SIE HIER
Lösung 1:
Sie können die Aktionsleiste durch Ersetzen entfernen
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
zu
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
Lösung 2:
Fügen Sie einfach diese Zeilen hinzu
<item name="windowActionBar">false</item> <item name="windowNoTitle">true</item>
Jetzt sieht Ihre Stildatei so aus
`
`
quelle
Ich habe es gelöst, indem ich diese Zeile entfernt habe:
android:theme="@style/Theme.MyCompatTheme"
von Aktivitätseigenschaften in der
Manifest file
quelle
Legen Sie einfach
parent="Theme.AppCompat.NoActionBar"
in Ihrer style.xml DateiMögen -
<style parent="Theme.AppCompat.NoActionBar" name="AppTheme.NoActionBar">
quelle