Ich versuche, ein TextInputLayout mit Materialstil anzupassen. Ich habe es geschafft, den fokussierten Zustand auf die gewünschten Farben einzustellen:
Dies ändert die Kontur im fokussierten Modus, hat aber immer noch eine schwarze Kontur, wenn der Bearbeitungstext nicht fokussiert ist = (
– Addev
12. Juni 2018 um 17:02 Uhr
@Addev überprüfen Sie meine bearbeitete Antwort und fügen Sie Farbe in Ihre colors.xml-Datei ein.
– Rutvik Bhatt
13. Juni 2018 um 5:28 Uhr
@RutvikBhatt danke. Aber Android Studio sagt, dass die Ressource privat ist und ohne Vorankündigung verschwinden könnte. Es gibt keine bessere Lösung?
– Kreker
28. Juli 2018 um 1:29 Uhr
@RutvikBhatt Was ist mit der Hinweistextfarbe im nicht fokussierten Modus?
– Parikshit Chalke
16. Oktober 2018 um 10:00 Uhr
@RutvikBhatt Wenn ich die Standardfarbe in Farbe geändert habe, wird die Farbe des umrandeten Felds in allen Aktivitäten geändert, aber ich möchte eine andere Strichfarbe für verschiedene Aktivitäten. Was soll ich dann damit machen?
– Shashwat Gupta
16. November 2018 um 11:27 Uhr
kroot
Ab Version 1.1.0-alpha02 der Materialkomponenten für Android funktioniert es, einfach eine zu erstellen ColorStateList für diese Artikel. Das Verfahren ist wie folgt:
Erstellen Sie ein neues Ressourcenverzeichnis “color” in res und fügen Sie in color eine Farbressourcendatei mit dem Namen “text_input_box_stroke.xml” hinzu. res/color/text_input_box_stroke.xml stell mal so was ein:
Das hat bei mir tatsächlich funktioniert com.google.android.material:material:1.0.0. Aber ich habe verwendet Widget.MaterialComponents.TextInputLayout.OutlinedBox als Basisstil (nicht dicht)
– Wadim Kotow
25. Juni 2019 um 15:31 Uhr
@VadimKotov es hat bei mir mit denselben Konfigurationen nicht funktioniert
– Devansh Maurya
27. Juni 2019 um 14:39 Uhr
wie man die Grenze mit der InputBox ändert, da sie im Fokuszustand dicker ist
– Hai Hack
13. Juni 2020 um 2:53 Uhr
Perfekt funktioniert, ich habe dem Stil einige andere Elemente hinzugefügt, um auch die Hinweisfarbe usw. zu ändern
– Arielle
1. August 2020 um 5:50 Uhr
Dies muss die beabsichtigte Methode sein und nicht der Rat, eine interne Farbe zu überschreiben, die möglicherweise nicht mehr existiert
– Douglas Jones
18. Dezember 2021 um 1:05 Uhr
Ab Material Components Alpha 7 erstellen Sie einfach eine Farbauswahldatei wie folgt: colors/text_input_outline_color.xml
Für mehr Kontext dazu, wie dies eingestellt wird. Hier ist relevanter Quellcode:
ColorStateList boxStrokeColorStateList =
MaterialResources.getColorStateList(context, a, R.styleable.TextInputLayout_boxStrokeColor);
if (boxStrokeColorStateList != null && boxStrokeColorStateList.isStateful()) {
defaultStrokeColor = boxStrokeColorStateList.getDefaultColor();
disabledColor =
boxStrokeColorStateList.getColorForState(new int[] {-android.R.attr.state_enabled}, -1);
hoveredStrokeColor =
boxStrokeColorStateList.getColorForState(new int[] {android.R.attr.state_hovered}, -1);
focusedStrokeColor =
boxStrokeColorStateList.getColorForState(new int[] {android.R.attr.state_focused}, -1);
} else {
// If attribute boxStrokeColor is not a color state list but only a single value, its value
// will be applied to the box's focus state.
focusedStrokeColor =
a.getColor(R.styleable.TextInputLayout_boxStrokeColor, Color.TRANSPARENT);
defaultStrokeColor =
ContextCompat.getColor(context, R.color.mtrl_textinput_default_box_stroke_color);
disabledColor = ContextCompat.getColor(context, R.color.mtrl_textinput_disabled_color);
hoveredStrokeColor =
ContextCompat.getColor(context, R.color.mtrl_textinput_hovered_box_stroke_color);
}
Aus dieser Liste können Sie ersehen, dass Sie sicherstellen möchten, dass Sie einen Farbwähler mit allen definierten Zuständen verwenden, oder er wird standardmäßig auf eine andere Farbe zurückgesetzt.
Erstellen Sie das Farbverzeichnis und erstellen Sie darin eine Ressourcendatei. Fügen Sie den obigen Code in die XML-Datei des Farbverzeichnisses ein und fügen Sie im Texteingabe-Layoutstil die folgende Zeile ein
Ich erstelle dynamisch meinen Bildschirm. Ich benutze TextInputLayout und erstelle meinen dynamischen Bearbeitungstext in TextInputLayout. Wenn Sie geben möchten TextInputLayout bis zur Grenze führen Sie die folgenden Schritte der Reihe nach aus.
Können wir eine umrissene Box in der Textansicht mit mehreren automatischen Vervollständigungen hinzufügen?
– Shashwat Gupta
2. November 2018 um 7:54 Uhr
Verwenden Sie die akzeptierte Antwort nur bei fokussierter Farbe, nicht wenn die Steuerung nicht fokussiert ist. Hat es für Sie funktioniert? wie?
– Akshay bhange
28. März 2019 um 12:18 Uhr
Danke für die Arbeitsprobe! Wendete dies und einige Anpassungen an und brachte das Materialthema zum Laufen.
– HX_unbanned
14. Februar um 16:54 Uhr