Android:看似主题SearchView

时间:2016-06-25 20:33:08

标签: android

我一直在努力尝试主题SearchView。我的min API也是sdk 21,所以我应该可以使用新的样式选项。

具体来说,我希望当我点击搜索图标为主题时出现的应用程序栏文本字段。我想最终使背景变白,文本/光标变为蓝色或黑色。

这是我的styles.xml。最后一个主题是我正在研究的新SearchTheme。实际值并不重要,它们只是试图改变发生时的垃圾值。

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowBackground">@android:color/white</item>
    <item name="android:searchViewStyle">@style/AppTheme.SearchTheme</item>
</style>

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

<style name="AppTheme.PreferencesTheme" parent="AppTheme">
    <item name="android:windowBackground">@android:color/white</item>
</style>

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="android:windowBackground">@android:color/white</item>
    <item name="android:searchViewStyle">@style/AppTheme.SearchTheme</item>
</style>

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light">
    <item name="android:windowBackground">@android:color/white</item>
    <item name="android:searchViewStyle">@style/AppTheme.SearchTheme</item>
</style>

<style name="AppTheme.SearchTheme" parent="Theme.AppCompat.Light">
    <item name="android:closeIcon">@drawable/contacts5icon</item>
    <item name="android:voiceIcon">@drawable/contacts5icon</item>
    <item name="android:queryBackground">@android:color/black</item>
    <item name="android:windowBackground">@android:color/white</item>
</style>

我已将AppTheme.SearchTheme分配给我在布局中使用的其他主题。但我所做的一切似乎都没有任何效果。这些值似乎没有改变。

在这里帮助我。我以前没有真正搞过Android主题,所以我有点迷茫。感谢。

1 个答案:

答案 0 :(得分:0)

这可以帮助你走上正确的轨道,根据Chris Banes&#39;在棒棒糖预制机器人上使用材料设计的步骤。简而言之:在主样式下使用Widget.AppCompat.SearchView样式扩展名设置项目属性searchViewStyle。

您可以使用queryBackground项属性来更改文本字段的背景。其他属性详述如下。

<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>

更多here