Styling AutoCompleteTextView mit AppCompat.EditText funktioniert nicht
Ich machen material-design-Stil-Anwendung
Möchte ich ändern AutoCompleteTextView
Stil
Stil wie in android.support.v7.internal.widget.TintEditText
Fügte ich zu meinem Stil style.xml:
<style name="AppTheme" parent="AppTheme.Base"/>
<style name="AppTheme.Base" parent="Theme.AppCompat">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="android:autoCompleteTextViewStyle">@style/AutoCompleteTextViewAppTheme</item>
</style>
<style name="AutoCompleteTextViewAppTheme" parent="Base.Widget.AppCompat.EditText"/>
Dass funktioniert, aber die Zeile Farben nicht ändern.
EditTexts mit material design scheinen colorControlActivated
und colorControlNormal
. Daher habe ich versucht, überschreiben diese Eigenschaften die in der vorherigen style-definition, aber es hat keine Wirkung.
Was muss ich tun, damit es funktioniert ?
InformationsquelleAutor CodeNinja | 2014-12-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, fügen Sie den gewünschten Stil für Ihr widget in der xml auf diese Weise :
Wenn das nicht funktioniert, könnten Sie versuchen, es Stil selbst.
Müssen Sie ändern die TextView-Eigenschaften, die Sie nachschlagen können hier.
Textfarbe für eine Instanz könnte geändert werden, durch ändern der
android:textColor
Attribut, das Hinzugefügt werden soll, Ihren Stil, zum Beispiel :Wenn Sie möchten, ändern Sie die edittext-Linie, die Sie haben, um den hintergrund zu ändern-Attribut, zum Beispiel in dieser Weise :
Und fügen Sie eine neue Datei
line_background.xml
in Ihrem drawables-Ordner mit ähnlichem Inhalt:Siehe meine letzten änderungen
Dass gerade zieht eine Linie durch die Mitte. Es nicht, ein Material zu unterstreichen.
Danke. Was ich tun musste, war zum erstellen einer benutzerdefinierten Formatvorlage ähnlich der oben erstellten namens
Autcomplete
und teilte es alsandroid:theme="@style/Autocomplete"
InformationsquelleAutor throws_exceptions_at_you
Habe ich erstellt benutzerdefinierte Farbton Bewusst AutoCompleteTextView um dieses problem zu lösen.
Fügen Sie diese Klasse, um Ihr Projekt.
Verwenden Sie im xml, wie diese:
Nachteil dieser Lösung ist, dass es stützt sich auf interne Klasse
dass mag sich ändern oder nicht mehr verfügbar sein in der Zukunft.
Bitte werfen Sie einen Blick auf Derek ' s Antwort unten - es ist die Lösung eines Problems mit einem hintergrund, ergeben sich aus meiner Antwort.
Ich bin mir dieses Problems bewusst, aber ich kann nicht scheinen, um eine Umgehungsmöglichkeit zu finden, andere, die Einstellung für Ihre eigenen Layouts für die Liste der Elemente oder durch den Wechsel des view-in-adapter, wie zum Beispiel:
if (convertView == null) { convertView = getLayoutInflater().inflate(android.R.layout.simple_list_item_1, null); convertView.findViewById(android.R.id.text1).setBackgroundColor(backgroundLightColor); }
Ich habe eine Lösung gefunden, um diese, siehe meine Antwort für mehr info. Vielen Dank für dieses code-snippet, sehr Cooler Ansatz.
Ich wünschte, ich könnte Stimmen. Funktioniert perfekt, aber ich habe es getestet, nur auf pre-Lollipop-Geräte.
InformationsquelleAutor Alexander Mayatsky
Extrapolieren auf @Atrinax Antwort, hier ist eine Klasse, die sich um die
popupBackground
Attribut durch die Erweiterung AutoCompleteTextView und hinzufügen, um TINT_ATTRSInformationsquelleAutor Derek