Ich habe das AppCompat-Materialdesign zu meiner App hinzugefügt und es scheint, dass die Warnungsdialoge nicht meine Primär-, Primärdunkel- oder Akzentfarben verwenden.
Hier ist mein Grundstil:
<style name="MaterialNavyTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/apptheme_color</item>
<item name="colorPrimaryDark">@color/apptheme_color_dark</item>
<item name="colorAccent">@color/apptheme_color</item>
<item name="android:textColorPrimary">@color/action_bar_gray</item>
</style>
Nach meinem Verständnis sollte der Text der Dialogschaltfläche auch diese Farben verwenden. Liege ich falsch in meinem Verständnis oder muss ich noch etwas tun?
Lösung:
Die markierte Antwort brachte mich auf den richtigen Weg.
<style name="MaterialNavyTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/apptheme_color</item>
<item name="colorPrimaryDark">@color/apptheme_color_dark</item>
<item name="colorAccent">@color/apptheme_color</item>
<item name="android:actionModeBackground">@color/apptheme_color_dark</item>
<item name="android:textColorPrimary">@color/action_bar_gray</item>
<item name="sdlDialogStyle">@style/DialogStyleLight</item>
<item name="android:seekBarStyle">@style/SeekBarNavyTheme</item>
</style>
<style name="StyledDialog" parent="Theme.AppCompat.Light.Dialog">
<item name="colorPrimary">@color/apptheme_color</item>
<item name="colorPrimaryDark">@color/apptheme_color_dark</item>
<item name="colorAccent">@color/apptheme_color</item>
</style>
android
material-design
android-support-library
android-appcompat
material-components-android
Matthew
quelle
quelle
Antworten:
AKTUALISIERT AM Aug 2019 MIT Die Materialkomponenten für die Android-Bibliothek:
Mit den neuen Materialkomponenten für die Android-Bibliothek können Sie die neue
com.google.android.material.dialog.MaterialAlertDialogBuilder
Klasse verwenden, die von der vorhandenenandroidx.appcompat.AlertDialog.Builder
Klasse abweicht und Unterstützung für die neuesten Material Design-Spezifikationen bietet.Verwenden Sie einfach so etwas:
Sie können die Farben anpassen, um den
ThemeOverlay.MaterialComponents.MaterialAlertDialog
Stil zu erweitern:Um Ihren benutzerdefinierten Stil anzuwenden, verwenden Sie einfach den Konstruktor:
Weitere Informationen zum Anpassen der Schaltflächen, des Titels und des Textes finden Sie in diesem Beitrag .
Sie können den Stil in Ihrem App-Thema auch global ändern :
MIT SUPPORT LIBRARY und APPCOMPAT THEMA:
Mit dem neuen können
AppCompat v22.1
Sie den neuen android.support.v7.app.AlertDialog verwenden .Verwenden Sie einfach einen Code wie diesen:
Und verwenden Sie einen Stil wie diesen:
Andernfalls können Sie in Ihrem aktuellen Thema Folgendes definieren:
und dann in Ihrem Code:
Hier der AlertDialog auf Kitkat:
quelle
<item name="android:alertDialogTheme">@style/AppCompatAlertDialogStyle</item>
Übergeben Sie beim Initialisieren des Dialog Builders den zweiten Parameter als Thema. Das Materialdesign mit API-Level 21 wird automatisch angezeigt.
oder,
quelle
AppCompat macht das nicht für Dialoge (zumindest noch nicht)
EDIT: tut es jetzt. Stellen Sie sicher, zu verwenden
android.support.v7.app.AlertDialog
quelle
import app.AlertDialog
nicht die AppCompat. Ich habe ungefähr 40 Minuten lang versucht herauszufinden, was los ist, bevor ich es tatsächlich überprüfe ... Verdammt, Sie googeln!Sie können dieses Projekt in Betracht ziehen: https://github.com/fengdai/AlertDialogPro
Es kann Ihnen Warnungsdialoge für Materialthemen bieten, die fast denen von Lutschern entsprechen. Kompatibel mit Android 2.1.
quelle
Du könntest benutzen
Material Design Library
Die Material Design Library wurde für ziemlich aufmerksame Dialoge , Schaltflächen und andere Dinge wie Snackbars entwickelt. Derzeit ist es stark entwickelt.
Anleitung, Code, Beispiel - https://github.com/navasmdc/MaterialDesignLibrary
Anleitung zum Hinzufügen einer Bibliothek zu Android Studio 1.0 - Wie importiere ich eine Materialdesignbibliothek zu Android Studio?
.
Viel Spaß beim Codieren;)
quelle
Probieren Sie diese Bibliothek aus:
https://github.com/avast/android-styled-dialogs
Es basiert auf
DialogFragments
stattAlertDialogs
(wie das von @afollestad). Der Hauptvorteil: Dialoge werden nach der Rotation nicht geschlossen und Rückrufe funktionieren weiterhin.quelle
Aus irgendeinem Grund scheint das Android: textColor nur die Titelfarbe zu aktualisieren. Sie können die Farbe des Nachrichtentextes mithilfe von a ändern
quelle