Элемент SearchView не имеет свойств для изменения цвета текста. Цвет текста по умолчанию черный и не работает на темном фоне. Есть ли способ изменить цвет текста, не прибегая к хакам?
Я нашел аналогичный вопрос, связанный с изменением размера текста, но пока на него нет ответов: Как установить SearchView TextSize?
android
searchview
CACuzcatlan
источник
источник
Ответы:
Добавить
к родительской теме, и это должно изменить введенный текст. Вы также можете использовать
чтобы изменить текст подсказки для SearchView. (Обратите внимание, что вы можете заменить на
@android:color/white
любое подходящее значение, которое надеетесь использовать)источник
EditText
s. Единственное решение, которое сработало для меня, которое изменяет толькоSearchView
цвет текста, находится здесь: stackoverflow.com/a/40550067/1617737Попробуйте что-то вроде этого: вы получите дескриптор текстового представления из sdk, а затем измените его, поскольку они не раскрывают его публично.
источник
У меня это работает.
источник
Я хотел сделать нечто подобное. Наконец-то мне пришлось
TextView
средиSearchView
детей найти :Если вам нужен метод util:
источник
Благодаря @CzarMatt я добавил поддержку AndroidX .
Для меня работает следующее. Я использовал код из ссылки: изменить цвет текста подсказки поиска на панели действий с помощью библиотеки поддержки .
Изменение цвета текста подсказки searchview панели действий дает другое решение. Он работает, но устанавливает только текст и цвет подсказки.
источник
androidx.appcompat.R.id.search_src_text
если вы перенесли свой проект на AndroidX.Лучше всего это достигается с помощью нестандартных стилей. Перегрузите стиль виджета панели действий своим собственным стилем. Для голографического освещения с темной панелью действий поместите это в свой собственный файл стилей, например
res/values/styles_mytheme.xml
:Убедитесь, что ваше приложение использует настраиваемую тему темы, как описано в описании ссылки здесь.
источник
Вы можете сделать это, установив
editTextColor
атрибут в стиле.и вы применяете этот стиль к
Toolbar
илиSearchView
в макете.источник
если вы используете - android.support.v7.widget.SearchView
в Котлине
Вам лучше начать использовать библиотеки поддержки androidx сейчас
источник
Создайте стиль для своего
Toolbar
И установите его в качестве темы для
Toolbar
источник
Если вы используете android.support.v7.widget.SearchView, это возможно без использования отражения.
Вот как я это делаю в своем приложении:
Они не предоставляют публично идентификаторы для SearchView, отличного от appcompat, но они делают это для AppCompat, если вы знаете, где искать. :)
источник
У меня была эта проблема, и это работает для меня.
источник
Если вы основываете тему приложения на голографической теме, вы получите белый текст вместо черного в SearchView.
<style name="Theme.MyTheme" parent="android:Theme.Holo">
Я не нашел другого способа изменить цвет текста в searchview без использования грязных хаков.
источник
Самый чистый способ:
Панель инструментов использует тему ThemeOverlay.AppCompat.Dark.Actionbar.
Теперь сделайте это потомком:
toolbarStyle parent «ThemeOverlay.AppCompat.Dark.Actionbar»
добавить этот предмет в этом стиле
название элемента "android: editTextColor"> yourcolor
Готово.
Еще одна очень важная вещь: на панели инструментов поместите layout_height = "? Attr / actionbarSize". По умолчанию это wrap_content. Для меня текст даже не был виден в searchview, это решило эту проблему.
источник
Да, это возможно, используя следующий метод.
Вызов этого метода выглядит так ..
Используя его, я успешно добавил красный цвет * в подсказку с помощью этого метода. Вы должны изменить этот метод в соответствии с вашими требованиями. Надеюсь, это поможет вам .... :)
источник
SearchAutoComplete autoCompleteView = (SearchAutoComplete) mSearchView .findViewById(com.android.internal.R.id.search_src_text);autoCompleteView.setHintTextColor(R.color.hint_text_color);
это мое решение, но я думаю, что ваше лучше, чем мое, я воспользуюсь вашим решением, спасибо.Используйте это, это правильно. : D
источник
Да мы можем,
Чтобы применить белый цвет к тексту SerachView,
Удачного кодирования !!!!
источник
это работает для меня.
источник
Изменить цвет набранного текста:
Изменить цвет текста подсказки:
источник
источник
SearchView
Объект простирается отLinearLayout
, поэтому она имеет другие взгляды. Хитрость заключается в том, чтобы найти представление, содержащее текст подсказки, и программно изменить цвет. Проблема с попыткой найти представление по идентификатору заключается в том, что идентификатор зависит от темы, используемой в приложении. Таким образом, в зависимости от используемой темыfindViewById(int id)
метод может возвращатьсяnull
. Лучший подход, который работает с каждой темой, - это пройти по иерархии представлений и найти виджет, содержащий текст подсказки:Используя этот метод, вы также можете изменить внешний вид других виджетов в
SearchView
иерархии, например,EditText
удержание поискового запроса. Если Google не решит изменить иерархию представления вSearchView
ближайшее время, вы сможете изменить внешний вид виджета с помощью этого метода в течение некоторого времени.источник
Можно настроить searchview с помощью библиотеки appcompat v7. Я использовал библиотеку appcompat v7 и определил для нее собственный стиль. В папку с возможностью переноса поместите файл bottom_border.xml, который выглядит так:
В папке значений styles_myactionbartheme.xml:
Я определил файл custommenu.xml для отображения меню:
Ваша активность должна расширять ActionBarActivity вместо Activity. Вот метод onCreateOptionsMenu.
В файле манифеста:
Для получения дополнительной информации см. Этот URL:
Здесь http://www.jayway.com/2014/06/02/android-theming-the-actionbar/
источник
для панели инструментов appcompat-v7 с searchView (предоставляется через MenuItemCompat):
Установка темы панели инструментов на @ style / ThemeOverlay.AppCompat.Light даст темный цвет (черный) для текста подсказки и для введенного текста, но не повлияет на цвет курсора *. Соответственно, установка темы панели инструментов на @ style / ThemeOverlay.AppCompat.Dark даст светлый цвет (белый) для текста подсказки и введенного текста, курсор * в любом случае будет белым.
Настройка вышеуказанных тем:
android: textColorPrimary -> цвет введенного текста
editTextColor -> цвет введенного текста (переопределит влияние android: textColorPrimary, если установлено)
android: textColorHint -> цвет подсказки
* примечание: мне еще предстоит определить, как можно управлять цветом курсора (без использования решения для отражения).
источник
Используя это, я смог изменить набранный цветной текст в режиме поиска.
источник
Вот это да. Ответов много. Он получает значение цвета от вашего основного цвета.
Измените его, и готово!
Стили;
источник
изменить стиль searchView на панели инструментов с помощью androidx.
во-первых, установите стиль просмотра поиска в стиле панели инструментов (измените родительский элемент на собственное приложение):
затем используйте его в макете панели инструментов:
с его помощью вы можете изменить большинство стилей searchView, кроме подсказки запроса.
наконец, установите подсказку запроса в параметрах меню панели инструментов:
источник
Вы можете изменить цвет по умолчанию, используя
android:theme
атрибут в представлении.Если вы используете
Toolbar
илиMaterialToolbar
:или:
где наложение темы с темой компонентов материала :
с темой AppCompat:
Если вы используете
SearchView
в своем макете, вы можете сделать что-то подобное:с участием
источник
Я использую библиотеку Holoeverywhere. Обратите внимание на org.holoeverywhere.R.id.search_src_text
источник
Я нашел решение из сообщения в блоге. Смотрите здесь .
В основном вы создаете стиль searchViewAutoCompleteTextView, а android: actionBarWidgetTheme наследует стиль.
источник
это работает со мной
источник
Что сработало для меня
источник