Ich benutze das Neue TextInputLayout
aus der Designbibliothek. Ich kann es dazu bringen, die Farbe des schwebenden Etiketts anzuzeigen und zu ändern. Leider ist der eigentliche EditText
Hinweis jetzt immer weiß.
Ich habe versucht, die tipColor in XML, Stilen und programmgesteuert zu ändern, und habe auch versucht, die zu verwenden, android.support.v7.widget.AppCompatEditText
aber der EditText
Hinweis zeigt immer Weiß an.
Hier ist mein XML für mein TextInputLayout
undEditText
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android.support.design:hintTextAppearance="@style/GreenTextInputLayout">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/city"
android:textColorHint="@color/black"
android:hint="@string/city" />
</android.support.design.widget.TextInputLayout>
Und hier ist der Stil, den ich für TextInputLayout
(ich habe versucht, das hintTextColor
Attribut schwarz zu machen, habe aber nichts für mich getan):
<style name="GreenTextInputLayout" parent="@style/TextAppearance.AppCompat">
<item name="android:textColor">@color/homestory_green</item>
</style>
android
android-edittext
android-support-library
android-design-library
android-textattributes
SamIAmHarris
quelle
quelle
Antworten:
Definieren Sie
android:textColorHint
in Ihrem Anwendungsthema:Quelle
quelle
EditText
damit die Hinweisfarbe für alle Eingaben in der Ansicht festgelegt wird. Ich habe noch keine Lösung dafür gefunden (requestFocus()
undperformClick()
mach den Trick leider nicht).Erstellen Sie einen benutzerdefinierten Stil in style.xml
Dann in Ihrem Layout XML - Datei, fügt Thema Attribute wie unten
hoffe das funktioniert
quelle
Fügen Sie Ihrem Bearbeitungstext die Eigenschaft textColorHint hinzu
oder welche Farbe Sie wollen
quelle
habe das gleiche Problem. Wird behoben, indem diese Zeilen in das übergeordnete Thema eingefügt werden .
Wenn Sie diese setzen
in einem separaten Stil und wenden Sie es auf TextInputLayout oder Edittext an. Es wird nicht angezeigt . Sie MÜSSEN es in das übergeordnete Thema der Anwendung einfügen.
quelle
Ich bin nicht sicher, was Ihr Problem verursacht. Dieser Code funktioniert perfekt für mich. Ich denke, es hat etwas mit der Verwendung des richtigen XML-Namespace (
xmlns
) zu tun . Ich bin nicht sicher, ob die Verwendung von android.support.design ohne XML-Namespace-Attribut unterstützt wird. Oder es hat etwas mit dem zu tuntextColorHint
Attribut Sie verwenden auf der EditText selbst.Layout:
Stil:
quelle
@style/TextAppearance.Design.Hint
, also möchten Sie ihn vielleichtparent
eher als Ihren als@android:style/TextAppearance
oder als@style/TextAppearance.AppCompat
Lesen Sie den folgenden Code, der für mich funktioniert hat. Aber er wirkt sich auf alle Farben Ihrer Steuerelemente aus.
quelle
Fügen Sie im TextInputLayout, das den EditText enthält, Folgendes hinzu:
quelle
Viele Antworten, aber dafür nur eine Zeile:
android: textColorHint = "# 000000"
quelle
android: textColorHint = "# FFFFFF" funktioniert manchmal und manchmal nicht. Für mich unten funktioniert die Lösung perfekt
Probieren Sie den folgenden Code aus, der in Ihrer XML-Datei funktioniert, und das TextLabel-Design ist in style.xml definiert
Im Stilordner TextLabel Code
Wenn Sie nur die Farbe des Etiketts im falschen Zustand ändern möchten, sind colorAccent, colorControlNormal und colorControlActivated nicht erforderlich
quelle
Sie können mit
android:textColorHint="@color/color_black"
innenTextInputlayout
Es ist für mich gearbeitet.quelle
Demnach: https://code.google.com/p/android/issues/detail?id=176559
Versuche dies:
Es funktioniert in 23.1.1
quelle
Mit der Materialkomponentenbibliothek können Sie
TextInputLayout
die Farbe des Hinweistextes anpassen, indem Sie:Im Layout:
app:hintTextColor
Attribut: Die Farbe des Etiketts, wenn es reduziert ist und das Textfeld aktiv istandroid:textColorHint
Attribut: Die Farbe der Beschriftung in allen anderen Textfeldzuständen (z. B. Ruhezustand und Deaktiviert).Etwas wie:
quelle
Anscheinend hatte die übergeordnete Ansicht einen Stil für eine Bibliothek eines Drittanbieters, der dazu führte, dass der EditText weiß war.
Nachdem ich das entfernt hatte, funktionierte alles einwandfrei.
quelle
versuchen Sie dies kann diese Hilfe
quelle
spät, aber es kann jemandem helfen, den ich so gemacht habe
quelle
Ändern Sie Ihre FarbeAccent auf die gewünschte Farbe in Ihrem Design, dies ändert Ihre EditText-Zeile, den Cursor sowie Ihren Hinweis
oder Sie können diesen Stil auch in Ihre style.xml aufnehmen
Dann können Sie es in Ihr TextInputLayout so einfügen
quelle
Verwenden Sie textColorHint, um die gewünschte Farbe als Hinweisfarbe für den EditText festzulegen. Die Sache ist, dass der Hinweis im EditText nicht verschwindet, wenn Sie etwas eingeben, sondern sofort, wenn der EditText den Fokus erhält (mit einer coolen Animation). Sie werden dies deutlich bemerken, wenn Sie den Fokus weg und zum EditText wechseln.
quelle
Aus der Dokumentation:
Versuchen Sie ,
android:hint
undapp:hintTextColor
aufTextInputLayout
statt aufTextInputEditText
.quelle
Sie müssen die Hinweisfarbe für TextInputLayout festlegen.
quelle
quelle
Versuchen Sie den folgenden Code:
Die helle Farbe ist Weiß:
Stil: TextStyle
quelle
Hier ist meine Erfahrung mit diesem ähnlichen Problem und der erforderlichen Lösung.
Anforderung:
TextInputEditText
(kann sagen, dass einige transparent sein sollten und andere nicht, sondern benutzerdefinierte Farben für verschiedene Ereignisse verwenden sollten)Problem konfrontiert:
android:textColorHint
funktioniert nicht wie erforderlich.Lösungen ausprobiert, die fehlgeschlagen sind:
android:textColorHint
und angewendetTextInputEditText
. Keine Ergebnisse oder Unterschiede.android:textColorHint
angewendeten Thema der Anwendung festlegen. Es hat geholfen, aber es wurde jetzt für die gesamte Anwendung eingestellt. (Nicht den Anforderungen entsprechend)Nach viel RnD war die beste gefundene LÖSUNG in einem Artikel, in dem beschrieben wurde, dass wir ein Thema auf
TextInputLayout
oder auf die übergeordnete Ansicht anwenden müssen, anstatt nur Stil auf anzuwendenTextInputEditText
oder auf die übergeordnete Ansicht .Bitte überprüfen Sie das richtige TextInputLayout-Theming, aus dem hervorgeht, dass wir auf dem falschen Weg sind.
quelle
Als ich versuchte, das Themenattribut auf TextInputLayout zu setzen, wurde das Thema auch auf die untergeordnete Ansicht edittext angewendet, die ich nicht wollte.
Die Lösung, die für mich funktioniert hat, bestand darin, der Eigenschaft "app: pointeTextAppearance" des TextInputLayout einen benutzerdefinierten Stil hinzuzufügen.
Fügen Sie in styles.xml den folgenden Stil hinzu:
Wenden Sie diesen Stil wie folgt auf die Eigenschaft "app: tipTextAppearance" des TextInputLayout an:
quelle
Wenn Sie eine neue Androidx-Materialdesignbibliothek verwenden
com.google.android.material
, können Sie die Farbstatistikliste verwenden, um die Farbe des Hinweistextes im fokussierten, schwebenden und Standardzustand wie folgt zu steuern. (inspiriert davon )In
res/color/text_input_box_stroke.xml
Put etwas wie folgt aus :Dann
styles.xml
würden Sie in Ihre setzen:Geben Sie schließlich Ihren Stil in der aktuellen an.
TextInputLayout
Aus irgendeinem Grund müssen Sie auch dieandroid:textColorHint
Standardtextfarbe für den Hinweis festlegen :quelle
Wenn Sie die Materialdesignbibliothek verwenden. Derzeit verwende ich die Version
1 - Legen Sie die Farbe fest, wenn TextInputLayout ruht.
2 - Legen Sie die Farbe fest, wenn TextInputLayout schwebend / fokussiert / getippt ist.
3 - Legen Sie die Farbe der Linie unter TextInputLayout fest.
4 - Legen Sie die Farbe des Fehlers unter TextInputLayout fest.
quelle