Ich benutze Android Design-Bibliotheken TextinputLayout
. Die Hinweisfarbe, die Etikettenfarbe und die Unterstreichungsfarbe der EditText
Innenseite konnten jedoch nicht angepasst werden TextinputLayout
. Bitte helfen Sie.
android
android-design-library
android-textinputlayout
Nitesh Verma
quelle
quelle
Antworten:
Grundfarbe ändern:
Weitere Informationen finden Sie in diesem Thread .
Ändern Sie die Hinweisfarbe, wenn sie schwebt
und benutze es so:
Ändern Sie die Hinweisfarbe, wenn es sich nicht um ein schwebendes Etikett handelt:
Vielen Dank an @AlbAtNf
quelle
android:textColorHint
umTextInputLayout
in XML.Basierend auf Fedor Kazakov und anderen Antworten habe ich eine Standardkonfiguration erstellt.
styles.xml
activity_layout.xml
Konzentriert:
Ohne Fokus:
Fehlermeldung:
quelle
Mit der Materialkomponentenbibliothek können Sie die
com.google.android.material.textfield.TextInputLayout
.Sie können einen benutzerdefinierten Stil anwenden, um die Farben zu ändern.
Um die Hinweisfarbe zu ändern , müssen Sie die folgenden Attribute verwenden:
hintTextColor
undandroid:textColorHint
.Sie sollten einen Selektor für die verwenden
android:textColorHint
. Etwas wie:Um die Grundfarbe zu ändern , müssen Sie das Attribut verwenden :
boxStrokeColor
.Auch in diesem Fall sollten Sie einen Selektor verwenden. Etwas wie:
Sie können diese Attribute auch in Ihrem Layout anwenden:
quelle
boxStrokeColor
. Im Beispiel dieselector_stroke_color
insbesondere die letzte Zeile:<item android:alpha="0.38" android:color="?attr/colorOnSurface"/>
Fügen Sie dieses Attribut in das Edittext-Tag ein und genießen Sie:
quelle
Dieser Blog-Beitrag beschreibt verschiedene Styling-Aspekte von
EditText
undAutoCompleteTextView
verpackt vonTextInputLayout
.Für
EditText
und AppCompat lib 22.1.0+ können Sie das Themenattribut mit einigen themenbezogenen Einstellungen festlegen :und wenden Sie sie an
EditText
:Denn die
AutoCompleteTextView
Dinge sind komplizierter, weil das EinwickelnTextInputLayout
und Anwenden dieses Themas das Verhalten von schwebenden Etiketten unterbricht. Sie müssen dies im Code beheben:und in
Activity.onCreate
:quelle
Wenn Sie die Balken- / Linienfarbe und die Hinweistextfarbe von
TextInputLayout
(wie die Akzentfarbe normalerweise ist) ändern möchten, erstellen Sie einfach diesen Stil:Dann bewerben Sie es zu Ihrem
TextInputLayout
als Thema :Dies setzt im Grunde ein Thema (nicht einen Stil) auf eine Ansicht (im Gegensatz zur gesamten Aktivität).
quelle
Sie können diesen Stil für das Layout überschreiben
Außerdem können Sie den inneren EditText-Elementstil ändern.
quelle
Wenden Sie diesen Stil auf TextInputLayout an
quelle
android:theme="@style/EditScreenTextInputLayoutStyle"
A
TextinputLayout
ist keine Ansicht, sondern aLayout
, wie sehr schön von Dimitrios Tsigouris in seinem Blog-Beitrag hier beschrieben . Daher brauchen Sie keinStyle
, was nur für istViews
, sondern verwenden Sie einTheme
. Nach dem Blog-Beitrag kam ich zu folgender Lösung:Beginnen Sie in Ihrem
styles.xml
mitUnd in Ihrem Layout hinzufügen
quelle