我的应用程序有一个Light Material主题,但我活动的一部分是黑暗的,我在其中放置了SearhView
。问题是,搜索图标提示是黑蓝色。不漂亮。那么我可以只覆盖这个单一视图的主题吗?
直观的做法是改变style
行为。所以我尝试了这个,但无济于事:
<SearchView
style="@android:style/Widget.Material.SearchView"
(...)
/>
(我认为正常的样式是Widget.Material.Light.SearchView
)
建议?
PS:我不下降this兔子洞
答案 0 :(得分:4)
您可以在清单中进行设置。您可以为整个应用程序全局定义主题,但也可以为活动应用其他主题。
申请表:
<application
android:name=".MyApp"
android:theme="@style/Theme.global">
活动:
<activity
android:name=".SomeActivity"
android:theme="@style/Theme.search">
评论更新:
然后在styles.xml中设置它,您可以在其中定义主题属性,如下所示:
<item name="android:searchViewStyle">@stye/MySearchViewStyle</item>
这是基本Searchview的默认设置:
<style name="Base.Widget.AppCompat.SearchView" parent="android:Widget">
<item name="layout">@layout/abc_search_view</item>
<item name="queryBackground">@drawable/abc_textfield_search_material</item>
<item name="submitBackground">@drawable/abc_textfield_search_material</item>
<item name="closeIcon">@drawable/abc_ic_clear_mtrl_alpha</item>
<item name="searchIcon">@drawable/abc_ic_search_api_mtrl_alpha</item>
<item name="searchHintIcon">@drawable/abc_ic_search_api_mtrl_alpha</item>
<item name="goIcon">@drawable/abc_ic_go_search_api_mtrl_alpha</item>
<item name="voiceIcon">@drawable/abc_ic_voice_search_api_mtrl_alpha</item>
<item name="commitIcon">@drawable/abc_ic_commit_search_api_mtrl_alpha</item>
<item name="suggestionRowLayout">@layout/abc_search_dropdown_item_icons_2line</item>
</style>
您可以像这样定义您的风格:
<style name="MySearchViewStyle" parent="Base.Widget.AppCompat.SearchView">
<item name="searchIcon">@drawable/my_incredable_search_icon</item>
</style>