Ich versuche, "Flexible Space with Image" aus Material Design mit Hilfe dieses Tutorials zu implementieren:
Toolbar-Animation mit Android-Design-Support-Bibliothek
Aber ich bekomme diese Rendering Problem Nachricht in der Layout Vorschau:
Die folgenden Klassen konnten nicht instanziiert werden:
- android.support.design.widget.CoordinatorLayout (Offene Klasse, Ausnahme anzeigen, Cache löschen) - android.support.design.widget.AppBarLayout (Offene Klasse, Ausnahme anzeigen, Cache löschen)
Ich habe das Theme.AppCompat
-Thema auf meine Anwendung angewendet, aber es hat die Aktionsleiste und das Aussehen in jeder anderen Aktivität verschärft.
Außerdem gibt es einen Fehler bei Aktionsleistenmethoden wie:
actionBar.setDisplayHomeAsUpEnabled (true);
Angabe des Fehlers (grob) als:
setDisplayHomeAsUpEnabled (boolean) wird für eine Nullobjektverweis
aufgerufen
Wenn Sie Theme.AppCompat
für die gesamte Anwendung verwenden, wird der folgende Fehler im Vorschaubildschirm angezeigt:
Folgende Klassen konnten nicht gefunden werden: - android.support.v7.internal.app.WindowDecorActionBar (Fix Build Path, Klasse erstellen)
Daher möchte ich Theme.AppCompat
nicht für die gesamte Anwendung verwenden. Wenn Sie jedoch Theme.AppCompat
für die spezifische Aktivität verwenden, für die ich den Entwurf "Flexible Fläche mit Bild" verwenden möchte, wird das zuvor angegebene Problem CoordinatorLayout
und AppBarLayout
nicht gelöst.
Bitte sagen Sie mir, was zu tun ist! Ich habe viele Stackoverflow-Beiträge zum selben Thema gelesen, aber sie haben nicht für mich funktioniert! Ich habe android Studio neu gestartet und meinen Cache ungültig gemacht und auch unzählige Male neu gestartet !!
Hier sind die Abhängigkeiten in meinem build.gradle
Das Ausführen der App auf meinem Telefon gibt mir diesen Fehler:
java.lang.IllegalStateException: Diese Aktivität hat bereits eine Aktion Bar von der Fensterdekoration geliefert. Fordern Sie nicht an Window.FEATURE_SUPPORT_ACTION_BAR und setze windowActionBar auf false in Ihr Thema, stattdessen eine Toolbar zu verwenden.
Setzen Sie windowActionBar wie folgt auf false:
%Vor%und dann das Ausführen der App löst diesen Fehler aus:
java.lang.RuntimeException: Die Aktivität konnte nicht gestartet werden ComponentInfo {com.seven.actionbar / com.seven.actionbar.EventsDetailActivity}: java.lang.IllegalArgumentException: AppCompat unterstützt das Aktuelle Designmerkmale: {windowActionBar: false, windowActionBarOverlay: false, android: windowIsFloating: false, windowActionModeOverlay: false, windowNoTitle: false}
Hier ist das Symbolleisten-Bit aus der Datei EventsDetailsActivity.java:
%Vor%Hier ist der Layout-Code, der dazu gehört:
%Vor% Das ScrollView
und die zugehörigen untergeordneten Elemente (hier nicht gezeigt) sind der Hauptinhalt der Seite.
Änderte auch das Thema zu:
%Vor% Während die IllegalStateException
und RuntimeException
weg sind, kann ich die CoordinatorLayout
nicht mehr sehen.
falsch
Warum müssen Sie Toolbar
verwenden? Müssen Sie einige alte Android-Versionen unterstützen?
Der Punkt ist, dass ein Toolbar
nicht wirklich ActionBar
ist. Es fehlt dir an Funktionalität und zwingt dich bestimmte Themen in deinen Aktivitäten zu verwenden. Also, wenn Sie einige ältere Versionen von Android nicht unterstützen müssen (v7.Toolbar ist für SDK 7 (Android 2.1).
Oh, und übrigens: Was versuchst du zu tun, heißt kollabierendes Toolbar-Layout. Überprüfen Sie diesen Link für das Tutorial Ссылка
P.S. Kompilieren Sie keine verschiedenen Versionen derselben Bibliothek! Tu das nicht:
%Vor%Ändern Sie stattdessen Folgendes:
%Vor%java.lang.IllegalStateException: Diese Aktivität hat bereits eine Aktion Bar von der Fensterdekoration geliefert. Fordern Sie nicht an Window.FEATURE_SUPPORT_ACTION_BAR und setze windowActionBar auf false in Ihr Thema, stattdessen eine Toolbar zu verwenden.
Bitte lesen Sie das offizielle Dokument über AppCompat
Bitte setzen Sie parent="Theme.AppCompat.NoActionBar"
anstelle von
parent="Theme.AppCompat.Light "
Vermeiden Sie Bibliothek duplizieren . support:appcompat
wurde zweimal in Ihrem Abschnitt build.gradle
aufgerufen.
Sie können ähnliche Fragetypen auf SO
überprüfenOK! das berühmte Toolbar Problem.
Versuchen Sie, wie es scheint, einige Änderungen an dem von Ihnen geposteten Code vorzunehmen.
1) Wenn Sie ActionBar in anderen Aktivitäten als diesem erstellen möchten, erstellen Sie einen neuen Stil für NoActionBar und fügen Sie diesen Stil zu dieser Aktivität hinzu
%Vor% Noe in you AndroidManifest.xml
, weise dieses Thema zu, so dass nur EventsDetailsActivity
nicht ActionBar hat, aber Pause wird.
2) ScrollView
funktioniert nicht gut mit CoordinatorLayout
. Um "Flexibler Raum mit Bild" zu erreichen, versuchen Sie es NestedScrollView
anstelle von ScrollView
. Dadurch erhalten Sie einen angemessenen Animationseffekt.
3) Ändere das ActionBar
mit einem Toolbar
in deinem EventsDetailsActivity
.
Ich hoffe, es hilft.
Tags und Links java android material-design android-theme