我正在使用AppCompat v21库在应用程序中使用Toolbar
作为操作栏,如Android开发者博客上this post所述。我已经使用ThemeOverlay.AppCompat.Dark.ActionBar
主题设置了操作栏的样式,以使文本变浅。但是,我想使操作栏SearchView
的搜索建议弹出窗口在浅色背景上显示深色文本,而我一直无法达到这种效果。
这是我的操作栏Toolbar
的XML:
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar_actionbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="@dimen/action_bar_elevation"
app:theme="@style/ActionBarThemeOverlay"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
我尝试扩展操作栏主题叠加以设置
SearchView
的样式:<style name="ActionBarThemeOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
<item name="searchViewStyle">@style/Widget.AppCompat.Light.SearchView</item>
</style>
我已经在主主题中添加了相同的元素,以达到良好的效果:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="searchViewStyle">@style/Widget.AppCompat.Light.SearchView</item>
</style>
但是
searchViewStyle
元素似乎没有任何作用。如何在此处设置SearchView
的样式? 最佳答案
按照AppCompat v21 announcement blog post:
AppCompat提供了Lollipop的更新SearchSearch API,该API更具可定制性和可样式性(在掌声之下)。现在,我们使用Lollipop样式结构,而不是旧的searchView *主题属性。
这是您为SearchView设置样式的方法(以values/themes.xml
表示):
<style name="Theme.MyTheme" parent="Theme.AppCompat">
<item name="searchViewStyle">@style/MySearchViewStyle</item>
</style>
<style name="MySearchViewStyle" parent="Widget.AppCompat.SearchView">
<!-- Background for the search query section (e.g. EditText) -->
<item name="queryBackground">...</item>
<!-- Background for the actions section (e.g. voice, submit) -->
<item name="submitBackground">...</item>
<!-- Close button icon -->
<item name="closeIcon">...</item>
<!-- Search button icon -->
<item name="searchIcon">...</item>
<!-- Go/commit button icon -->
<item name="goIcon">...</item>
<!-- Voice search button icon -->
<item name="voiceIcon">...</item>
<!-- Commit icon shown in the query suggestion row -->
<item name="commitIcon">...</item>
<!-- Layout for query suggestion rows -->
<item name="suggestionRowLayout">...</item>
</style>
如对this blog post的进一步研究。