【问题标题】:How to change search icon color in my android project?如何更改我的 android 项目中的搜索图标颜色?
【发布时间】:2019-09-08 20:13:33
【问题描述】:

我在菜单文件夹中添加了搜索图标并为此创建了menu.xml 文件。在这里,我从 Android Image Asset 创建了带有浅绿色的自定义搜索图标。

当我在 drawable 中添加这个浅绿色的搜索图标并运行项目时,它带有白色。搜索提示和搜索文本也以白色显示。 由于我有白色操作栏,因此这些所有搜索图标根本不可见。请帮助纠正这个问题。

我为搜索图标创建了一个 menu.xml 文件,并在可绘制文件夹中添加了浅绿色的搜索图标。我正在使用 Theme.AppCompat.Light.DarkActionBar 并且我的操作栏颜色将其设置为白色。

样式.xml

<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="titleTextColor">@color/titleColor</item>
        <item name="colorControlNormal">@color/colorAccent</item>

menu.xml 文件:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_action_search"
        app:showAsAction="always"
        app:actionViewClass="android.support.v7.widget.SearchView"
        android:title="@string/search_string" />
    <!--<item
        android:id="@+id/action_settings"
        android:title="Settings"/>-->
 </menu>

活动代码:

public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu, menu);
        MenuItem item = menu.findItem(R.id.action_search);

//additonal code

return super.onCreateOptionsMenu(menu);

我希望自定义颜色搜索图标仅显示在白色操作栏中,而不是白色搜索图标(现在显示)。并以黑色搜索查询搜索提示。请帮忙...

【问题讨论】:

标签: android android-layout searchview android-search


【解决方案1】:

最好的选择是对菜单中的项目使用自定义布局。

你也可以尝试关注这个article

【讨论】:

    【解决方案2】:

    你需要使用 android.support.v7.widget.SearchView :

    <style name="SearchViewStyle" parent="Widget.AppCompat.SearchView">
        <!-- Gets rid of the search icon -->
        <item name="searchIcon">@drawable/ic_search</item>
        <!-- Gets rid of the "underline" in the text -->
        <item name="queryBackground">@color/white</item>
        <!-- Gets rid of the search icon when the SearchView is expanded -->
        <item name="searchHintIcon">@null</item>
        <!-- The hint text that appears when the user has not typed anything -->
        <item name="queryHint">@string/search_hint</item>
    </style>
    

    【讨论】:

      【解决方案3】:

      对我有用的是设置前景。这会改变搜索视图的图标颜色。

      <style name="MySearchViewTheme" parent="Widget.AppCompat.SearchView">
          <item name="android:background">@color/grey_dark</item>
          <!-- Changes icons color --> 
          <item name="android:colorForeground">@color/grey_400</item>
      </style>
      

      【讨论】:

        猜你喜欢
        • 2021-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-20
        • 1970-01-01
        • 2017-02-07
        相关资源
        最近更新 更多