Używam nowego TextInputLayout
z biblioteki projektów. Jestem w stanie pokazać i zmienić kolor pływającej etykiety. Niestety faktycznyEditText
wskazówka jest teraz zawsze biała.
Próbowałem zmienić hintColor w XML, stylach i programowo, a także próbowałem użyć, android.support.v7.widget.AppCompatEditText
ale EditText
podpowiedź zawsze jest biała.
Oto mój plik XML dla mojego TextInputLayout
iEditText
<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>
A oto styl, którego używam dla TextInputLayout
(próbowałem uczynić hintTextColor
atrybut czarnym, ale nic nie zrobiłem dla mnie):
<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
źródło
źródło
Odpowiedzi:
Zdefiniuj
android:textColorHint
w motywie aplikacji:Źródło
źródło
EditText
aby ustawić kolor podpowiedzi na wszystkich wejściach w widoku ... nie znalazłem jeszcze żadnej poprawki (requestFocus()
iperformClick()
nie załatw niestety).Utwórz własny styl w style.xml
Następnie w pliku XML układu dodaj atrybut motywu, jak poniżej
mam nadzieję, że to zadziała
źródło
Dodaj właściwość textColorHint do tekstu edycji
lub w jakimkolwiek kolorze
źródło
mam ten sam problem. Rozwiązanie rozwiązane przez umieszczenie tych linii w motywie nadrzędnym .
Jeśli to umieścisz
w osobnym stylu i zastosuj go do TextInputLayout lub Edittext , nie pojawi się. Ty MASZ aby umieścić go w macierzystej temat aplikacji.
źródło
Nie jestem pewien, co powoduje twój problem - ten kod działa idealnie dla mnie. Myślę, że ma to coś wspólnego z używaniem poprawnej przestrzeni nazw xml (
xmlns
). Nie jestem pewien, czy obsługiwane jest używanie android.support.design bez atrybutu przestrzeni nazw xml. Lub ma to coś wspólnego ztextColorHint
atrybutem, którego używasz w samym EditText.Układ:
Styl:
źródło
@style/TextAppearance.Design.Hint
, więc możesz użyć tego jako swojegoparent
zamiast@android:style/TextAppearance
lub@style/TextAppearance.AppCompat
Zapoznaj się z poniższym kodem, który zadziałał dla mnie, ale wpłynie to na wszystkie kolory kontrolek.
źródło
W TextInputLayout, który przechowuje EditText, dodaj:
źródło
Wiele odpowiedzi, ale potrzebna jest tylko linia:
android: textColorHint = "# 000000"
źródło
android: textColorHint = "# FFFFFF" czasami działa, a czasami nie. U mnie poniższe rozwiązanie sprawdza się idealnie
Wypróbuj poniższy kod, który działa W Twoim pliku XML, a motyw TextLabel jest zdefiniowany w style.xml
W folderze stylów TextLabel Code
Jeśli chcesz tylko zmienić kolor etykiety w fałszywym stanie, colorAccent, colorControlNormal i colorControlActivate nie są wymagane
źródło
Możesz użyć w
android:textColorHint="@color/color_black"
środkuTextInputlayout
To zadziałało dla mnie.źródło
Zgodnie z tym: https://code.google.com/p/android/issues/detail?id=176559
Spróbuj tego:
Działa w 23.1.1
źródło
Dzięki bibliotece Komponenty materiałów możesz dostosować
TextInputLayout
kolor tekstu podpowiedzi, używając:W układzie:
app:hintTextColor
atrybut: kolor etykiety, gdy jest zwinięta, a pole tekstowe jest aktywneandroid:textColorHint
atrybut: kolor etykiety we wszystkich innych stanach pól tekstowych (takich jak spoczynkowe i wyłączone)Coś jak:
źródło
Wygląda na to, że widok nadrzędny miał styl dla biblioteki innej firmy, który powodował, że tekst edycji był biały.
Po usunięciu tego wszystko działało dobrze.
źródło
spróbuj tego, może to pomoże
źródło
późno, ale może to pomóc komuś, kogo zrobiłem w ten sposób
źródło
zmień kolor Podkreśl żądany kolor w swoim motywie, zmieni to linię EditText, kursor, a także wskazówkę
lub możesz również dołączyć ten styl do swojego style.xml
następnie w swoim TextInputLayout możesz to umieścić w ten sposób
źródło
Użyj textColorHint, aby ustawić żądany kolor jako kolor podpowiedzi dla EditText. Chodzi o to, że podpowiedź w EditText znika nie po wpisaniu czegoś, ale natychmiast, gdy EditText stanie się aktywny (z fajną animacją). Zauważysz to wyraźnie, gdy zmienisz fokus i przejdziesz do EditText.
źródło
Z dokumentacji:
Spróbuj ustawić
android:hint
iapp:hintTextColor
naTextInputLayout
nie naTextInputEditText
.źródło
Musisz ustawić kolor podpowiedzi w TextInputLayout.
źródło
źródło
Wypróbuj poniższy kod:
Wysoki kolor światła to biały:
style: TextStyle
źródło
Oto moje doświadczenia z podobnym problemem i wymaganym rozwiązaniem.
Wymaganie:
TextInputEditText
(można powiedzieć, że niektóre powinny być przezroczyste, a inne nie, ale używać niestandardowych kolorów dla różnych wydarzeń)Napotkany problem:
android:textColorHint
nie działa zgodnie z wymaganiami.Wypróbowane rozwiązania, które się nie powiodły:
android:textColorHint
w stylu i stosowany doTextInputEditText
. Brak wyników lub różnicy.android:textColorHint
w zastosowanym motywie aplikacji. Pomogło, ale zostało ustawione dla całej aplikacji. (Brak zgodności z wymaganiem)Po wielu RnD, najlepszym znalezionym ROZWIĄZANIEM był artykuł, w którym opisano, że musimy zastosować motyw do
TextInputLayout
lub do widoku rodzica, a nie tylko zastosować styl doTextInputEditText
lub do widoku rodzica.Proszę sprawdzić poprawne Theming TextInputLayout, który powiedział, że jesteśmy na złej drodze.
źródło
Kiedy próbowałem ustawić atrybut motywu na TextInputLayout, motyw był również stosowany do jego edittext widoku potomnego, czego nie chciałem.
Dlatego rozwiązaniem, które zadziałało, było dodanie własnego stylu do właściwości „app: hintTextAppearance” obiektu TextInputLayout.
W styles.xml dodaj następujący styl:
I zastosuj ten styl do właściwości „app: hintTextAppearance” obiektu TextInputLayout, jak poniżej:
źródło
Jeśli korzystasz z nowej biblioteki Androidx Material Design
com.google.android.material
, możesz użyć colorstatelist do kontrolowania koloru tekstu podpowiedzi w stanie skupionym, najechanym i domyślnym w następujący sposób. (zainspirowany tym )W
res/color/text_input_box_stroke.xml
put coś jak następuje:Wtedy w swoim
styles.xml
umieściłbyś:Na koniec wskaż swój styl w rzeczywistym
TextInputLayout
Z jakiegoś powodu musisz również ustawićandroid:textColorHint
domyślny kolor podpowiedzi:źródło
jeśli używasz biblioteki Material Design. Obecnie używam wersji
1 - Ustaw kolor, gdy TextInputLayout jest w stanie spoczynku.
2 - Ustaw kolor, gdy TextInputLayout jest zmienny / skoncentrowany / dotknięty.
3 - Ustaw kolor linii w obszarze TextInputLayout.
4 - Ustaw kolor błędu w obszarze TextInputLayout.
źródło
Chciałem tylko zmienić kolor etykiety, gdy jest podniesiona do góry. Ale ustawienie
textColorHint
zmienia kolor w każdym stanie. Więc to zadziałało dla mnie:Spowoduje to zmianę koloru, gdy wejście jest skupione.
źródło