Android, как оформить SearchView в Actionbar? - PullRequest
6 голосов
/ 08 февраля 2012

Мне нужно изменить стиль моего SearchView в моем ActionBar. В частности, мне нужно изменить цвет текста подсказки и значки SearchView, если это возможно. Как я могу сделать это в XML (возможно ли даже в XML)?

Если это невозможно, как я могу легко воссоздать подобное поведение с помощью пользовательского представления? Поведение SearchView на закрытие / развертывание особенно полезно для меня.

Ответы [ 4 ]

7 голосов
/ 03 января 2013

Вы пробовали что-то вроде этого (с помощью ActionBarSherlock):

AutoCompleteTextView searchText = (AutoCompleteTextView) searchView.findViewById(R.id.abs__search_src_text);
searchText.setHintTextColor(getResources().getColor(R.color.white));
searchText.setTextColor(getResources().getColor(R.color.white));

Это прекрасно работает для меня.

1 голос
/ 15 мая 2012

Похоже, вам может потребоваться предоставить собственный макет для вашего действия поиска.Мне не удалось найти какие-либо документы, в которых говорится об изменении стандартного SearchView.Но это допускает поведение закрытия / раскрытия.

http://developer.android.com/guide/topics/ui/actionbar.html#ActionView

Вопросы, связанные с данной:

0 голосов
/ 20 апреля 2014

Правильный ответ - перегрузить стиль виджета панели действий своим собственным стилем. Для голографического освещения с темной панелью действий поместите это в свой собственный файл стилей, например res/values/styles_mytheme.xml:

<style name="Theme.MyTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
    <item name="android:actionBarWidgetTheme">@style/Theme.MyTheme.Widget</item>
    <!-- your other custom styles -->
</style>

<style name="Theme.MyTheme.Widget" parent="@android:style/Theme.Holo">
    <item name="android:textColorHint">@android:color/white</item>
    <!-- your other custom widget styles -->
</style>

Убедитесь, что ваше приложение использует собственную тему темы, как описано в введите описание ссылки здесь

0 голосов
/ 13 сентября 2013

Вам нужно создать новую тему и использовать ее в файле манифеста.

<style name="Theme.Test" parent="@style/Theme.AppCompat.Light">
   <item name="searchViewAutoCompleteTextView">@style/Theme.Test.SearchField</item>
</style>

<!-- Search edit text -->
<style name="Theme.Test.SearchField" parent="@style/Widget.AppCompat.Light.AutoCompleteTextView">
    <item name="android:textColor">@color/white</item>
    <item name="android:textColorHint">@color/white</item>
</style>

У меня все заработало.

...