In der Vorschau in Android Studio sieht es genau so aus, wie ich es möchte, aber wenn ich die App auf meinem Gerät ausführe, ist die Hintergrundfarbe grau (“Standard-Schaltflächenfarbe”). Wenn ich die Textfarbe in meiner styles.xml ändere wie:
es ändert sich (auch auf meinem Gerät), also wird der benutzerdefinierte Stil geladen, ich habe verschiedene Farben (die für den Text funktionierten) für die Schaltfläche ausprobiert, aber es ändert sich nicht.
Warum wird meine Hintergrundfarbe nicht geladen?
Sind Sie sicher, dass der Stilname “buttonstyle123” und in Ihrem Button “questbuttonstyle” nicht gleich sein sollten?
– allzu verwirrend, deshalb schlafen
6. August 2015 um 14:28 Uhr
@alltooconfusingthereforesleep ja sollten sie, Tippfehler beim Platzieren hier. sie sind die gleichen in meiner App
– Sven van den Boogaart
6. August 2015 um 14:28 Uhr
VERSUCHEN: android:style=”@style/ButtonStlye123″ (anstelle von “theme”)
– Popel
6. August 2015 um 14:30 Uhr
Stile sind für Komponenten und Designs für Apps (oder globale Attribute). Sie unterscheiden sich im Konzept (nicht sicher, ob sie sich in der Ausführung unterscheiden)
– Popel
6. August 2015 um 14:31 Uhr
Hintergrund ändernFarbton
– mahdi
19. Oktober 2020 um 14:25 Uhr
Hezy Ziv
Versuchen Sie stattdessen, AppCompactButton zu verwenden
<Button
verwenden
<androidx.appcompat.widget.AppCompatButton
das wird den Trick tun
Aktualisierung: 01.06.2021
Habe herausgefunden, dass das obige auf früheren Android-Versionen nicht funktioniert. Für Materialdesign Button verwenden
app:backgroundTint="@color/green"
Interessanterweise funktionierten bei mir sogar die Einstellungen “android:background” direkt auf dem Button nicht. Aber es funktioniert für AppCompatButton. Ich denke, es hat etwas mit der Art und Weise zu tun, wie AppCompatActivity und einfache Aktivität gestaltet sind … Jedenfalls funktioniert diese Lösung für mich (mit AppCompatActivity).
– Dmitrij Semikin
2. Dezember 2020 um 10:35 Uhr
Es funktionierte. Aber ich verstehe den Grund dafür nicht.
– Ein Mann
23. Dezember 2020 um 14:45 Uhr
Scheint, dass für einen Button die im App-Design definierte Primärfarbe Vorrang vor jedem benutzerdefinierten Hintergrund hat, den Sie auf einen Button anwenden möchten, aber das ist bei AppCompatButton nicht der Fall. Ich bin mir nicht sicher, ob dies ein Fehler oder eine Funktion von Android ist
– ceyquem
5. Januar 2021 um 3:06 Uhr
backdroundTint hat bei mir funktioniert, danke Kumpel.
– thesamoanppprogrammer
2. Mai 2021 um 11:06 Uhr
Hat gut funktioniert, ich denke, wir bewegen uns schrittweise von Button zu AppCompatButton
Das hat mir das Leben gerettet. Wie 3 Tage, um das Problem zu finden. Vielen Dank.
– hmartinezd
12. November 2021 um 21:37 Uhr
@hmartinezd: Gern geschehen ^^
– Hor Chanpheng
22. November 2021 um 3:42 Uhr
Danke, aber warum passiert das?
– Web.11
25. April um 10:00 Uhr
@Web.11: Da die neueste Version von Android Studio automatisch das Materialthema verwendet, wird die Schaltfläche mit diesen Designkomponenten angewendet. Alternativ können Sie stattdessen androidx.appcompat.widget.AppCompatButton verwenden oder das übergeordnete Design in Theme.AppCompat.Light.NoActionBar ändern.
Das Ändern von MaterialComponents zu AppCompat funktioniert für mich.
Ich denke, Sie müssen Ihr Attribut von “Thema” auf “Stil” ändern. Diese Dateien sind für unterschiedliche Zwecke gedacht und werden daher unterschiedlich verwendet.
Style wird verwendet, um einzelnen Ansichten oder Komponenten Attribute zuzuweisen, und Theme wird verwendet, um Attribute auf die gesamte App anzuwenden.
Probieren Sie stattdessen Folgendes aus:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btnLogin"
android:id="@+id/btn_login"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
<!-- This attribute was changed -->
android:style="@style/ButtonStlye123"
android:onClick="login" />
Sie sollten diese unterschiedlichen XML-Typen auch nach Bedarf in die richtigen Dateien aufteilen (styles.xml und themes.xml – anstatt sie alle in derselben Datei zu behalten). Dies ist eine Konvention und wirkt sich nicht auf die Codekompilierung oder -ausführung aus, wird jedoch als Codestil empfohlen.
Ist es möglich, automatisch auf alle Schaltflächen anzuwenden?
– Sven van den Boogaart
7. August 2015 um 10:46 Uhr
Wenn Sie einen Stil universell anwenden möchten, müssen Sie eine Java-Klasse (von Ihnen selbst erstellt) erstellen, die die Button-Klasse erweitert, und dann den Stil in dieser Java-Klasse zuweisen. Andernfalls gibt es keine integrierte Möglichkeit, einen bestimmten Stil universell anzuwenden. Sie KÖNNEN viele Attribute in den Stil einfügen (einschließlich Breite, Höhe usw.), also ist dies eine Möglichkeit, dieses Zeug zu zentralisieren (auch hier müssen Sie das angeben Stil Attribut in XML manuell (keine Möglichkeit, dies automatisch zu tun)
– Popel
7. August 2015 um 13:11 Uhr
Ich versuche diese stackoverflow.com/questions/2410836/… Lösung, aber ich kann sie nicht zum Laufen bringen
– Sven van den Boogaart
7. August 2015 um 13:17 Uhr
Ich habe das noch nie benutzt. Ich denke, es ist einfach genug, das style-Attribut einfach auf jede Ansicht in XML anzuwenden (das muss nicht universell angewendet werden).
– Popel
7. August 2015 um 15:09 Uhr
Samer Kasseb
Wenn Sie Android Studio Version 4.1 und höher (Beta) verwenden, überprüfen Sie Ihre themes.xml-Datei in den Werten.
Ist es möglich, automatisch auf alle Schaltflächen anzuwenden?
– Sven van den Boogaart
7. August 2015 um 10:46 Uhr
Wenn Sie einen Stil universell anwenden möchten, müssen Sie eine Java-Klasse (von Ihnen selbst erstellt) erstellen, die die Button-Klasse erweitert, und dann den Stil in dieser Java-Klasse zuweisen. Andernfalls gibt es keine integrierte Möglichkeit, einen bestimmten Stil universell anzuwenden. Sie KÖNNEN viele Attribute in den Stil einfügen (einschließlich Breite, Höhe usw.), also ist dies eine Möglichkeit, dieses Zeug zu zentralisieren (auch hier müssen Sie das angeben Stil Attribut in XML manuell (keine Möglichkeit, dies automatisch zu tun)
– Popel
7. August 2015 um 13:11 Uhr
Ich versuche diese stackoverflow.com/questions/2410836/… Lösung, aber ich kann sie nicht zum Laufen bringen
– Sven van den Boogaart
7. August 2015 um 13:17 Uhr
Ich habe das noch nie benutzt. Ich denke, es ist einfach genug, das style-Attribut einfach auf jede Ansicht in XML anzuwenden (das muss nicht universell angewendet werden).
– Popel
7. August 2015 um 15:09 Uhr
Sie müssen nur Ihr App-Design von ändern Theme.MaterialComponents.DayNight.DarkActionBar zu Theme.AppCompat.Light.NoActionBar innerhalb der Datei styles.xml
Beispiel :
aus : style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar"
Zu : style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"
11841900cookie-checkDie Hintergrundfarbe der Android-Schaltfläche ändert sich nichtyes
Sind Sie sicher, dass der Stilname “buttonstyle123” und in Ihrem Button “questbuttonstyle” nicht gleich sein sollten?
– allzu verwirrend, deshalb schlafen
6. August 2015 um 14:28 Uhr
@alltooconfusingthereforesleep ja sollten sie, Tippfehler beim Platzieren hier. sie sind die gleichen in meiner App
– Sven van den Boogaart
6. August 2015 um 14:28 Uhr
VERSUCHEN: android:style=”@style/ButtonStlye123″ (anstelle von “theme”)
– Popel
6. August 2015 um 14:30 Uhr
Stile sind für Komponenten und Designs für Apps (oder globale Attribute). Sie unterscheiden sich im Konzept (nicht sicher, ob sie sich in der Ausführung unterscheiden)
– Popel
6. August 2015 um 14:31 Uhr
Hintergrund ändernFarbton
– mahdi
19. Oktober 2020 um 14:25 Uhr