Ich verwende ein appcompat Thema für meine Anwendung. Ich muss wissen, wie ich Spinner unterstreichen kann. Es zeigt nur Anker. Ich habe versucht, unterstreichen mit Android: Hintergrund, aber es macht den Anker verschwinden.Android Spinner mit Unterstreichung appcompat
Antwort
Aktualisieren Sie Ihre Support-Bibliothek und in XML verwenden
Bitte fügen Sie diesen Stil zu Ihrem Spinner
style="@style/Base.Widget.AppCompat.Spinner.Underlined"
Dies ist Hacky (und nicht perfekt) Art und Weise Spinner zu ändern und unterstreichen Farbe in AppCompat Thema. Hauptpunkt, dass ich Android unterstütze Bibliothek Bilder und XML-Dateien, um die Farbe zu ändern.
1) gehen Bibliothekspaket und kopieren 2 Bilder (oder laden Sie meine Gewohnheit von der Unterseite dieses Beitrags)
/your-app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.1.0/res/drawable-hdpi/abc_spinner_mtrl_am_alpha.9.png
und
/your-app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.1.0/res/drawable-hdpi/abc_textfield_default_mtrl_alpha.9.png
2) Erstellen Sie eine Kopie dieser Bilder zu unterstützen
3) Farbe ändern von abc_spinner_mtrl_am_alpha.9.png (Warnung: lassen sie schwarze Ränder, wie sie sind, ist es für 9 Patch)
4) Farbe ändern der zweiten unteren Zeile abc_textfield_default_mtrl_alpha.9.png (Sie können unten in der beigefügten kleinen Bild sehen)
5) Speichern und Dateien zu einem Projekt bewegen Drawables
6) erstellen bottom_line_color.xml ziehbar:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:top="-6dp" android:left="-6dp" android:right="-6dp">
<shape>
<stroke android:color="@color/brown" android:width="6dp"/>
</shape>
</item>
7) erstellen spinner_bottom_line.xml
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="@dimen/abc_control_inset_material"
android:insetTop="@dimen/abc_control_inset_material"
android:insetBottom="@dimen/abc_control_inset_material"
android:insetRight="@dimen/abc_control_inset_material">
<selector>
<item android:state_checked="false" android:state_pressed="false">
<layer-list>
<item android:drawable="@drawable/my_custom_abc_textfield_default_mtrl_alpha" />
<item android:drawable="@drawable/my_custom_abc_spinner_mtrl_am_alpha" />
</layer-list>
</item>
<item>
<layer-list>
<item android:drawable="@drawable/my_custom_abc_textfield_default_mtrl_alpha" />
<item android:drawable="@drawable/my_custom_abc_spinner_mtrl_am_alpha" />
</layer-list>
</item>
</selector>
</inset>
P.S. Ich konnte nicht denselben visuellen Stil wie der Standard-Spinner erreichen (visuelle Änderungen siehe unten). Wenn Sie dieses benutzerdefinierte Spinner-Thema verwenden, sollten Sie es in allen Projekten verwenden.
hinzufügen So auf Werte/styles.xml
<style name="My.Spinner.Style" parent="Base.Widget.AppCompat.Spinner.Underlined">
<item name="android:background">@drawable/spinner_bottom_line</item>
</style>
Und es in Anwendung wie folgt aus:
<Spinner
android:id="@+id/account_spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/My.Spinner.Style"
/>
Wichtig: Sie sollten Spinner und Ort, um verschiedene Drawables Ordner ändern. Sie können die Größe in dem gleichen Pfad finden, wie ich oben gezeigt habe. Es gibt einige populäre Größen:
drawables-mdpi 20x26
drawables-hdpi 29x38
drawables-xhdpi 38x50
drawables-xxhdpi 74x98
Sie können meine individuelle Bilder von hier nehmen:
my_custom_abc_spinner_mtrl_am_alpha:
my_custom_abc_textfield_default_mtrl_alpha:
Spinner Beispiel ist (xxhdpi), Zeile ist mdpi (weil wir nicht verschiedene Zeilen in verschiedenen Zeichnungsordner benötigen, so können wir nur 1).
Visuelle Differenz (von android Vorschaufenster Studio xml) wird hier gezeigt:
erste Zeile ist Spinner meine benutzerdefinierte unterstrichen, die zweite ist Base.Widget.AppCompat.Spinner.Underlined Standard
mein Freund Ihre Methode könnte korrekt sein, aber wenn Android selbst bietet eine einzige Zeile, mit der Sie dies erreichen können, warum so viel von harter Arbeit zu tun? –
Ich habe den Weg nicht gefunden, um die Spinnerunterstreichungsfarbe zu ändern. Wenn ich den Hintergrund in styles.xml geändert habe, ist das Spinner-Element verschwunden. So hilft mir diese Lösung, die Grundfarbe zu ändern und Spinner Artikel – Ragaisis
Eine interessante Lösung zu verlassen. Ich fand es einfacher, eine Bildansicht (mit meiner Linie) unter meinem Spinner zu platzieren. – Yar
in styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:spinnerStyle">@style/holoSpinner</item>
</style>
<style name="holoSpinner" parent="Widget.AppCompat.Spinner.Underlined">
<item name="android:textSize">16sp</item>
<item name="android:textColor">@color/colorPrimary</item>
</style>
====================== ==
im Layout-
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp">
<Spinner
android:id="@+id/spinCountry"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/edit_text_bottom_border"
android:paddingBottom="10dp" />
</android.support.design.widget.TextInputLayout>
================================= ==============
edit_text_bottom_border.xml Datei in Drawable
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="1dp"
android:left="-3dp"
android:right="-3dp"
android:top="-3dp">
<shape android:shape="rectangle">
<stroke
android:width="1dp"
android:color="#535353" />
<!--android:color="#535353" />-->
</shape>
</item>
</layer-list>
- 1. Ändern Spinner Pfeil, AppCompat v21
- 2. Styling eines Spinner, Appcompat, Material
- 3. Android DialogFragment mit AppCompat-Designproblem
- 4. Android Spinner mit Mehrfachauswahl
- 5. Gibt es ein AppCompat-Äquivalent von Widget.Material.Spinner.Underlined?
- 6. Android appcompat v7: 23
- 7. Android Material Design AppCompat
- 8. Android AppCompat ProgressDialog?
- 9. Android Popupmenü Textfarbe (AppCompat)
- 10. Android TextView-Link ohne Unterstreichung?
- 11. Android Spinner
- 12. Android Spinner
- 13. Style EditText Unterstreichung Farbe android
- 14. android Spinner mit Akzenten String
- 15. Android benutzerdefinierte Spinner mit Thema
- 16. Appcompat/Hinzufügen einer Bibliothek mit Android-Studio
- 17. Android Material Design Datepicker mit AppCompat
- 18. Android Lollipop Appcompat Probleme mit Robolectric
- 19. Android Spinner Adapter Einstellung zu Spinner
- 20. android Spinner: center Text vertikal innerhalb Spinner
- 21. Unterstreichung mit ReactJS verwenden
- 22. Android Spinner Prompt
- 23. Android Einstellungen Spinner
- 24. Android einfach Spinner Artikel
- 25. Spinner in android Eklipse
- 26. Android Spinner-Set-Werte
- 27. Android Spinner Set Standardtext
- 28. Android Spinner Teiler Farbe
- 29. Spinner Android Widget Größe
- 30. android spinner benutzerdefinierte reihen
Wie die unterstrichenen färben? – rohitsakala
Kann der Dropdown-Pfeil entfernt und unterstrichen werden? Wenn ich einen Hintergrund einstelle, verschwindet die Unterstreichung. –
Irgendwelche Lösungen zu oben? Wenn ich diesen Stil verwende, wird mein Pfeil durch den Standard ersetzt. – AndroidGuy