Używam biblioteki projektów Androida TextinputLayout
. Ale nie można było dostosować koloru podpowiedzi, koloru etykiety i koloru podkreślenia EditText
wnętrza TextinputLayout
. Proszę pomóż.
android
android-design-library
android-textinputlayout
Nitesh Verma
źródło
źródło
Odpowiedzi:
Zmień kolor dolnej linii:
Więcej informacji znajdziesz w tym wątku .
Zmień kolor podpowiedzi, gdy się unosi
i użyj go w ten sposób:
Zmień kolor podpowiedzi, gdy nie jest to pływająca etykieta:
Dzięki @AlbAtNf
źródło
android:textColorHint
jąTextInputLayout
w XML.Na podstawie odpowiedzi Fedora Kazakova i innych stworzyłem domyślną konfigurację.
style.xml
activity_layout.xml
Skoncentrowany:
Bez skupienia:
Komunikat o błędzie:
źródło
Z Biblioteką komponentów materiałów można używać
com.google.android.material.textfield.TextInputLayout
.Możesz zastosować własny styl, aby zmienić kolory.
Aby zmienić kolor podpowiedzi , musisz użyć następujących atrybutów:
hintTextColor
iandroid:textColorHint
.Powinieneś użyć selektora dla
android:textColorHint
. Coś jak:Aby zmienić kolor linii dolną trzeba użyć atrybutu:
boxStrokeColor
.Również w tym przypadku powinieneś użyć selektora. Coś jak:
Możesz również zastosować te atrybuty w swoim układzie:
źródło
boxStrokeColor
. W przykładzieselector_stroke_color
w szczególności ostatnia linia:<item android:alpha="0.38" android:color="?attr/colorOnSurface"/>
Dodaj ten atrybut w tagu Edittext i ciesz się:
źródło
W tym poście na blogu opisano różne aspekty stylizacji
EditText
iAutoCompleteTextView
opakowane przezTextInputLayout
.Dla
EditText
i AppCompat lib 22.1.0+ możesz ustawić atrybut motywu z niektórymi ustawieniami związanymi z motywem:i zastosuj je na
EditText
:Na
AutoCompleteTextView
rzeczy są bardziej skomplikowane, ponieważ otoczenie goTextInputLayout
i stosując ten TEMATYCZNE pływających zachowanie etykiety. Musisz to naprawić w kodzie:i w
Activity.onCreate
:źródło
Jeśli chcesz zmienić bar / kolor linii i kolor tekstu podpowiedź z następujących
TextInputLayout
(co zwykle jest akcent koloru), a następnie po prostu stworzyć ten styl:Następnie zastosuj go
TextInputLayout
jako motyw :To zasadniczo ustawia temat (nie styl) do jednego widoku (w przeciwieństwie do całej czynności).
źródło
Możesz zastąpić ten styl dla układu
Możesz także zmienić wewnętrzny styl elementu EditText.
źródło
zastosuj ten styl do TextInputLayout
źródło
android:theme="@style/EditScreenTextInputLayoutStyle"
A
TextinputLayout
nie jest widokiem, aleLayout
, jak bardzo ładnie opisał Dimitrios Tsigouris na swoim blogu tutaj . Dlatego nie potrzebujesz plikuStyle
, który jestViews
tylko do, ale użyjTheme
. Po wpisie na blogu otrzymałem następujące rozwiązanie:Zacznij
styles.xml
odA w swoim układzie dodaj
źródło