Chciałbym zmienić niebieski kolor pod tekstem edycji, nie wiem, jaka to właściwość.
Próbowałem użyć innego koloru tła, ale to nie zadziałało.
Załączam obrazek poniżej:
android
login
android-edittext
AndroidEnthusiast
źródło
źródło
Odpowiedzi:
W rzeczywistości dość łatwo jest programowo ustawić kolor podkreślenia tekstu EditText (tylko jeden wiersz kodu).
Aby ustawić kolor:
Aby usunąć kolor:
Uwaga: kiedy EditText ma fokus , ustawiony kolor nie będzie obowiązywał, zamiast tego będzie miał kolor ostrości.
Dokumentacja API:
Do rysowania # setColorFilter
Do rysowania # clearColorFilter
źródło
Control.Background.SetColorFilter(Android.Graphics.Color.White, PorterDuff.Mode.SrcIn);
Renderer
? Próbuję wymyślić, jak to działa dla paska wyszukiwania.SearchBarRenderer
nie jest to typEditText
. Nie mogę tego zmusić do pracy.Użyj
android:backgroundTint=""
w swoimEditText
układzie XML.Dla api <21 możesz wtedy użyć
AppCompatEditText
biblioteki wsparciaapp:backgroundTint=""
źródło
android:background="@null"
dla urządzeń z api <21.Musisz użyć innego obrazu tła, a nie koloru, dla każdego stanu
EditText
(fokus, włączony, aktywowany).http://android-holo-colors.com/
W powyższej witrynie możesz pobrać obrazy z wielu komponentów w motywie Holo. Po prostu wybierz „EditText” i żądany kolor. Możesz zobaczyć podgląd u dołu strony.
Pobierz plik .zip i skopiuj i wklej zasoby do projektu (obrazy i XML).
jeśli twój XML ma nazwę: apptheme_edit_text_holo_light.xml (lub coś podobnego):
Przejdź do pliku XML „styles.xml” i dodaj
EditText
styl niestandardowy :Po prostu zrób to w swoim
EditText
:I to wszystko, mam nadzieję, że ci pomoże.
źródło
Działa to dobrze dla starej i nowej wersji Androida (działa dobrze nawet z API 10!).
Zdefiniuj ten styl w
styles.xml
:A teraz w swoim XML ustaw to jako motyw i styl ( styl do ustawienia
textColor
i motyw, aby ustawić wszystkie inne rzeczy):Edytować
To rozwiązanie powoduje niewielką usterkę interfejsu użytkownika w nowszych wersjach Androida (Lollipop lub Marshmallow i nowszych), w której uchwyty wyboru są podkreślone.
Ta kwestia jest omawiana w tym wątku . (Nie próbowałem osobiście tego rozwiązania)
źródło
można zmienić Podkreślenie z EditText kolorze podając je w styles.xml . W motywie aplikacji styles.xml dodaj następujące elementy.
Jak wskazała ana w sekcji komentarzy
ustawienie tego w stylu motywu działa dobrze w przypadku zmiany koloru podkreślenia edittext.
źródło
android:textColorSecondary
jest używany do określenia koloru strzałki wstecz iDrawerLayout
ikony hamburgera na pasku akcji.<item name="colorControlNormal">@color/edittext_underline_color</item>
zamiast textColorSecondary z powodu problemu z kolorowaniem paska nawigacji.Musisz więc utworzyć nowy plik .xml w swoim folderze do rysowania.
W tym pliku wklej ten kod:
A w swoim EditText ustaw
Możesz grać z rysowanym XML, ustawiać rogi, wyściółki itp.
źródło
W stylu aplikacji zdefiniuj właściwość colorAccent . Tutaj znajdziesz przykład
źródło
Możesz programowo zmienić kolor EditText, używając tej linii kodu w prosty sposób:
edittext.setBackgroundTintList(ColorStateList.valueOf(yourcolor));
źródło
Użyj poniższego kodu, aby zmienić kolor tła obramowania tekstu edycji.
Utwórz nowy plik XML pod rysunkiem.
abc.xml
i dodaj go jako tło edytowanego tekstu
źródło
Aby zmienić kolor dolnej linii, możesz użyć tego w motywie aplikacji:
Aby zmienić kolor pływającej etykiety, napisz następujący motyw:
i użyj tego motywu w swoim układzie:
źródło
Możesz to zrobić za pomocą AppCompatEditText i selektora kolorów:
selector_edittext_underline.xml:
źródło
Jeśli nie musisz obsługiwać urządzeń z API <21, użyj backgroundHint w formacie xml, na przykład:
Aby uzyskać lepsze wsparcie i rezerwy, użyj rozwiązania @Akariuz. backgroundHint jest najbardziej bezbolesnym rozwiązaniem, ale nie jest kompatybilne wstecz, w zależności od twoich wymagań.
źródło
zmień
colorAccent
kolor, którego potrzebujesz, aby ustawić ten kolorcolorAccent
i uruchom, aby uzyskać wynikźródło
Po prostu zmień android: backgroundTint w kodzie xml na swój kolor
źródło