Стиль SearchView мешает Панель инструментов Стиль Панель действий - PullRequest
0 голосов
/ 05 июля 2018

ЧТО МНЕ НУЖНО: Мне нужна панель действий с белым текстом , как этот:

Action bar with White Text

И последний запрос SearchView Предложения , настроенные так:

Suggestions customized

ПРОБЛЕМА: Я могу сделать оба из них, но не могу сделать их одновременно, когда я устанавливаю заголовок на белый, стиль подсказок исчезает. Я покажу, как я справляюсь с этим.

ПЛАН ПРЕДЛОЖЕНИЙ

styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    ...
    <item name="searchViewStyle">@style/MySearchViewStyle</item>
</style>
<style name="MySearchViewStyle" parent="Widget.AppCompat.SearchView" >
    <item name="suggestionRowLayout">@layout/item_suggestions</item>
</style>

@ layout / item_suggestions: Здесь я настраиваю макет элементов подсказок, и он РАБОТАЕТ идеально.

ДЕЙСТВУЮЩИЙ БАР СТИЛЬ

Поскольку мой AppTheme - Light, мой заголовок по умолчанию для панели действий и кнопок - черный. Чтобы переопределить (белый заголовок и значки), я делаю следующее:

<android.support.design.widget.AppBarLayout
    ...>

    <android.support.v7.widget.Toolbar
        ...
        android:theme="@style/ThemeOverlay.MyApp.ActionBar"/>

styles.xml

<style name="ThemeOverlay.MyApp.ActionBar" parent="ThemeOverlay.AppCompat.ActionBar">
    <item name="android:textColorPrimary">@color/colorWhite</item>
</style>

ЗАКЛЮЧИТЕЛЬНАЯ ПРОБЛЕМА: Когда я применяю эту тему для панели действий, чтобы получить белый текст и значки. BOWN, тема для предложений SearchView больше не работает. Каков был бы разумный способ достичь обоих одновременно?

ЧТО Я УЖЕ ПРОБОВАЛ

Я уже пытался изменить стиль панели действий в styles.xml (искал тысячи вопросов), но не смог достичь желаемого результата.

1 Ответ

0 голосов
/ 30 июля 2018

Я создал Dark ActionBar Style , поэтому его кнопки, заголовки, субтитры будут белыми (как я хочу). А затем я установил этот стиль на панель действий.

Затем я установил стиль SearchView внутри стиля CustomActionBar.

ПРЕДУПРЕЖДЕНИЕ: Если я установлю свой searchViewStyle вне CustomActionBar, он не будет работать, он должен быть внутри стиля CustomActionBar, чтобы работать.

<style name="CustomActionBar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="searchViewStyle">@style/MySearchViewStyle</item>
</style>

<android.support.design.widget.AppBarLayout
    android:theme="@style/CustomActionBar">

    <android.support.v7.widget.Toolbar 
         .../>

    <android.support.design.widget.TabLayout
         .../>

</android.support.design.widget.AppBarLayout>
...