Ich teste die neuen Funktionen von Appcompat 21 Material Design. Deshalb habe ich eine Symbolleiste wie folgt erstellt:
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_my_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar"/>
und in meine Hauptlayoutdatei aufgenommen.
Dann habe ich es so als supportActionBar eingestellt:
Toolbar toolBar = (Toolbar)findViewById(R.id.activity_my_toolbar);
setSupportActionBar(toolBar);
Es funktioniert, aber irgendwie kann ich nicht genau herausfinden, wie ich die Symbolleiste anpassen kann. Es ist grau und der Text darauf ist schwarz. Wie soll ich Hintergrund und Textfarbe ändern?
Ich habe diese Anleitung durchgesehen:
http://android-developers.blogspot.de/2014/10/appcompat-v21-material-design-for-pre.html
Was habe ich überwacht, um die Farben zu ändern?
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="android:windowActionBar" tools:ignore="NewApi">false</item>
<item name="windowActionBar">false</item>
</style>
EDIT :
Ich konnte die Hintergrundfarbe ändern, indem ich dem Thema folgende Codezeilen hinzufügte:
<item name="colorPrimary">@color/actionbar</item>
<item name="colorPrimaryDark">@color/actionbar_dark</item>
Die Textfarbe wird jedoch nicht beeinflusst. Was vermisse ich? Anstelle des schwarzen Textes und der schwarzen Menüschaltfläche würde ich lieber einen weißen Text und weiße Menüschaltflächen bevorzugen:
quelle
Antworten:
Auch dies ist alles in dem von Ihnen angegebenen Link
Um den Text in Weiß zu ändern, müssen Sie nur das Thema ändern.
Verwenden Sie dieses Thema
quelle
AppCompatActivity
stattActivity
.UPDATE 12/11/2019: Materialkomponentenbibliothek
Mit den Material Components- und Androidx-Bibliotheken können Sie Folgendes verwenden:
das
android:background
Attribut im Layout:Wenden Sie den Standardstil an:
style="@style/Widget.MaterialComponents.Toolbar.Primary"
oder passen Sie den von ihm geerbten Stil an:Überschreiben Sie die Standardfarbe mit dem
android:theme
Attribut:mit:
ALT: Unterstützungsbibliotheken:
Sie können ein
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
Thema verwenden, wie in anderen Antworten vorgeschlagen, aber Sie können auch eine Lösung wie die folgende verwenden:Mit diesen Stilen haben Sie die volle Kontrolle über Ihre UI-Elemente:
quelle
Hey, wenn Sie Material Theme nur für Android 5.0 anwenden möchten, können Sie dieses Theme hinzufügen
Hier unten ist die Zeile für die Textfarbe der Aktionsleiste des Materialdesigns verantwortlich.
quelle
Sie können eine benutzerdefinierte Symbolleistenelementfarbe dynamisch festlegen, indem Sie eine benutzerdefinierte Symbolleistenklasse erstellen:
Beziehen Sie sich dann in Ihrer Layoutdatei darauf. Jetzt können Sie mit eine benutzerdefinierte Farbe festlegen
Quellen:
Die Informationen dazu finden Sie hier: So ändern Sie dynamisch die Farbe der Android-Symbolleistensymbole
und dann habe ich es bearbeitet, verbessert und hier gepostet: GitHub: AndroidDynamicToolbarItemColor
quelle
Dies ist eine sogenannte DarkActionBar. Dies bedeutet, dass Sie das folgende Thema verwenden sollten, um den gewünschten Stil zu erhalten:
quelle
Sie können die Farbe des Texts in der Symbolleiste folgendermaßen ändern:
quelle
Erreichen Sie dies, indem Sie Folgendes verwenden
toolbar
:quelle
Versuchen Sie dies in Ihrer styles.xml:
colorPrimary ist die Farbe der Symbolleiste.
Hast du das übrigens in Eclipse gebaut?
quelle
Ich habe dieses Problem nach weiteren Studien gelöst ...
für Api21 und mehr verwenden
für niedrigere Versionen verwenden
quelle
Wenn Sie die Farbe Ihrer Symbolleiste in Ihrer gesamten App ändern möchten, nutzen Sie die Datei styles.xml. Im Allgemeinen vermeide ich es, UI-Komponenten in meinem Java-Code zu ändern, es sei denn, ich versuche, etwas programmgesteuert zu tun. Wenn dies eine einmalige Einstellung ist, sollten Sie dies in XML tun, um Ihren Code sauberer zu machen. So sieht Ihre styles.xml aus:
Stellen Sie sicher, dass Sie den obigen Stil in Ihrer AndroidManifext.xml als solchen verwenden:
Ich wollte verschiedene Symbolleistenfarben für verschiedene Aktivitäten. Also habe ich wieder Stile wie folgt eingesetzt:
Wenden Sie die Stile erneut auf jede Aktivität in Ihrer AndroidManifest.xml als solche an:
quelle
Für Personen, die AppCompatActivity mit Symbolleiste als weißem Hintergrund verwenden. Verwenden Sie diesen Code.
Aktualisiert: Dezember 2017
quelle