Element SearchView nie ma żadnych właściwości do zmiany koloru tekstu. Domyślny kolor tekstu to czarny i nie działa na naszym ciemnym tle. Czy istnieje sposób na zmianę koloru tekstu bez uciekania się do hacków?
Znalazłem podobne pytanie związane ze zmianą rozmiaru tekstu, ale jak dotąd nie ma na nie żadnych odpowiedzi: Jak ustawić SearchView TextSize?
android
searchview
CACuzcatlan
źródło
źródło
Odpowiedzi:
Dodaj
do motywu nadrzędnego, co powinno zmienić wprowadzony tekst. Możesz także użyć
aby zmienić tekst wskazówki dla SearchView. (Pamiętaj, że możesz zastąpić
@android:color/white
dowolną odpowiednią wartością, której chcesz użyć)źródło
EditText
s. Jedyne rozwiązanie, które zadziałało dla mnie, które zmieniaSearchView
sam kolor tekstu, jest tutaj: stackoverflow.com/a/40550067/1617737Spróbuj czegoś takiego: dostaniesz uchwyt do widoku tekstowego z zestawu SDK, a następnie zmienisz go, ponieważ nie ujawniają go publicznie.
źródło
To działa dla mnie.
źródło
Chciałem zrobić coś podobnego. W końcu musiałem znaleźć
TextView
wśródSearchView
dzieci:Jeśli chcesz użyć metody:
źródło
Dzięki @CzarMatt dodałem obsługę AndroidX .
Dla mnie następujące prace. Użyłem kodu z linku: Zmień kolor tekstu podpowiedzi wyszukiwania na pasku akcji za pomocą biblioteki wsparcia .
Zmiana koloru tekstu podpowiedzi paska akcji w widoku podpowiedzi sugeruje inne rozwiązanie. Działa, ale ustawia tylko tekst i kolor podpowiedzi.
źródło
androidx.appcompat.R.id.search_src_text
jeśli przeprowadziłeś migrację projektu do AndroidX.Najlepiej jest to osiągnąć poprzez niestandardowe style. Przeciąż styl widżetu paska akcji własnym stylem. W przypadku światła holo z ciemnym paskiem akcji umieść to w swoim własnym pliku stylów, takim jak
res/values/styles_mytheme.xml
:Upewnij się, że aplikacja używa motywu niestandardowego, zgodnie z opisem w sekcji Wprowadź opis łącza tutaj
źródło
Możesz to zrobić, ustawiając
editTextColor
atrybut w stylu.i zastosujesz ten styl do
Toolbar
lubSearchView
w układzie.źródło
jeśli używasz - android.support.v7.widget.SearchView
w Kotlinie
Powinieneś raczej zacząć korzystać z bibliotek obsługujących androidx teraz
źródło
Stwórz styl dla swojego
Toolbar
I ustaw go jako motyw dla
Toolbar
źródło
Jeśli używasz android.support.v7.widget.SearchView, jest to możliwe bez używania odbicia.
Oto jak robię to w mojej aplikacji:
Nie ujawniają identyfikatorów publicznie dla niekompatybilnego z aplikacją SearchView, ale robią to dla AppCompat, jeśli wiesz, gdzie szukać. :)
źródło
Miałem ten problem i to działa dla mnie.
źródło
Jeśli opierasz motyw aplikacji na motywie holo, w SearchView pojawi się biały zamiast czarnego tekst
<style name="Theme.MyTheme" parent="android:Theme.Holo">
Nie znalazłem innego sposobu na zmianę koloru tekstu widoku wyszukiwania bez użycia brudnych hacków.
źródło
Najczystszym sposobem jest:
Toolbar używa motywu ThemeOverlay.AppCompat.Dark.Actionbar.
A teraz zrób z tego coś takiego:
toolbarStyle element nadrzędny „ThemeOverlay.AppCompat.Dark.Actionbar”
dodaj ten przedmiot w tym stylu
nazwa elementu "android: editTextColor"> twójkolor
Gotowe.
Jeszcze jedną bardzo ważną rzeczą jest umieszczenie w pasku narzędzi layout_height = "? Attr / actionbarSize". Domyślnie jest to wrap_content, dla mnie tekst nie był nawet widoczny w widoku wyszukiwania, co naprawiło ten problem.
źródło
Tak, jest to możliwe przy użyciu następującej metody.
Wywołanie tej metody wygląda następująco:
Używając go, z powodzeniem dodałem czerwony kolor * znak w podpowiedzi za pomocą tej metody. Powinieneś zmienić tę metodę zgodnie z wymaganiami. Mam nadzieję, że to Ci pomoże .... :)
źródło
SearchAutoComplete autoCompleteView = (SearchAutoComplete) mSearchView .findViewById(com.android.internal.R.id.search_src_text);autoCompleteView.setHintTextColor(R.color.hint_text_color);
to moje rozwiązanie, ale myślę, że twoje jest lepsze niż moje, skorzystam z twojego rozwiązania, dziękuję.Użyj tego, to prawda. :RE
źródło
Tak możemy,
Aby zastosować biały kolor dla tekstu SerachView,
Miłego kodowania !!!!
źródło
to działa dla mnie.
źródło
Zmień kolor wpisanego tekstu:
Zmień kolor tekstu podpowiedzi:
źródło
źródło
SearchView
Obiektu rozciąga się odLinearLayout
, więc posiada inne poglądy. Sztuczka polega na znalezieniu widoku zawierającego tekst podpowiedzi i programowej zmianie koloru. Problem z próbą znalezienia widoku według identyfikatora polega na tym, że identyfikator jest zależny od motywu używanego w aplikacji. W zależności od użytego motywufindViewById(int id)
metoda może powrócićnull
. Lepszym podejściem, które działa z każdym motywem, jest przejście hierarchii widoków i znalezienie widżetu zawierającego tekst podpowiedzi:Korzystając z tej metody, możesz również zmienić wygląd innych widżetów w
SearchView
hierarchii, takich jakEditText
wstrzymanie zapytania wyszukiwania. O ile Google nie zdecyduje sięSearchView
wkrótce zmienić hierarchii widoku , powinieneś być w stanie zmienić wygląd widżetu tą metodą przez jakiś czas.źródło
Możliwe jest dostosowanie widoku wyszukiwania za pomocą biblioteki appcompat v7, ja użyłem biblioteki appcompat v7 i zdefiniowałem dla niej własny styl. W folderze do rysowania umieść plik bottom_border.xml, który wygląda następująco:
W folderze wartości styles_myactionbartheme.xml:
Zdefiniowałem plik custommenu.xml do wyświetlania menu:
Twoja aktywność powinna rozszerzać ActionBarActivity zamiast Activity. Oto metoda onCreateOptionsMenu.
W pliku manifestu:
Więcej informacji można znaleźć pod tym adresem URL:
tutaj http://www.jayway.com/2014/06/02/android-theming-the-actionbar/
źródło
dla paska narzędzi appcompat-v7 z searchView (dostarczonym przez MenuItemCompat):
Ustawienie motywu paska narzędzi na @ style / ThemeOverlay.AppCompat.Light da ciemny kolor (czarny) dla tekstu podpowiedzi i wprowadzonego tekstu, ale nie wpłynie na kolor kursora *. Odpowiednio, ustawienie motywu paska narzędzi na @ style / ThemeOverlay.AppCompat.Dark da jasny kolor (biały) dla tekstu podpowiedzi i wprowadzonego tekstu, kursor * i tak będzie biały.
Dostosowywanie powyższych motywów:
android: textColorPrimary -> kolor wpisanego tekstu
editTextColor -> kolor wpisanego tekstu (nadpisuje wpływ android: textColorPrimary jeśli jest ustawiony)
android: textColorHint -> kolor podpowiedzi
* uwaga: Jeszcze nie ustaliłem, w jaki sposób można kontrolować kolor kursora (bez użycia roztworu odbicia).
źródło
Dzięki temu mogłem zmienić wpisany kolorowy tekst w widoku wyszukiwania
źródło
Łał. Wiele odpowiedzi. Pobiera wartość koloru z twojego podstawowego koloru.
Zmień to i gotowe!
Style;
źródło
zmień styl wyszukiwania w pasku narzędzi za pomocą androidx.
po pierwsze, ustaw styl widoku wyszukiwania w stylu paska narzędzi (zmień je nadrzędnymi za pomocą własnej aplikacji):
następnie użyj go w układzie paska narzędzi:
dzięki temu możesz zmienić większość stylów searchView z wyjątkiem podpowiedzi do zapytania.
na koniec ustaw podpowiedź do zapytania w opcjach menu paska narzędzi:
źródło
Możesz zastąpić domyślny kolor za pomocą
android:theme
atrybutu w Widoku.Jeśli używasz
Toolbar
lubMaterialToolbar
:lub:
gdzie motyw nakładki z rozszerzeniem motywem komponentów materiałów to:
z motywem AppCompat:
Jeśli używasz
SearchView
w swoim układzie znaku, możesz zrobić coś podobnego:z
źródło
Używam biblioteki Holoeverywhere. Zwróć uwagę na org.holoeverywhere.R.id.search_src_text
źródło
Znalazłem rozwiązanie z posta na blogu. Zobacz tutaj .
Zasadniczo stylizujesz searchViewAutoCompleteTextView i masz android: actionBarWidgetTheme dziedziczy styl.
źródło
to działa ze mną
źródło
Co mi pomogło
źródło