You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Toolbar内SearchView的图标及文本改为灰色(当前为白色)

解决Toolbar中SearchView图标及文本改为灰色的问题

嘿,我来帮你搞定SearchView图标和文本变灰色的需求!你现在显示白色是因为默认继承的主题用了浅色配色,咱们可以通过自定义样式或者代码设置来调整,下面给你两种可行的方案:

方案一:通过自定义Style(推荐,更符合Android主题规范)

1. 先定义灰色颜色值

在res/values/colors.xml里添加你想要的灰色(可以根据需求调整具体色值):

<color name="search_gray">#828282</color>

2. 创建自定义SearchView样式

在res/values/styles.xml里添加自定义样式,覆盖默认的颜色属性:

<style name="CustomGraySearchView" parent="Base.Widget.AppCompat.SearchView">
    <!-- 用tint统一给搜索图标染色,无需替换图标文件 -->
    <item name="android:tint">@color/search_gray</item>
    <!-- 设置搜索提示文本的颜色 -->
    <item name="queryHintTextColor">@color/search_gray</item>
    <!-- 设置输入文本的颜色 -->
    <item name="queryTextColor">@color/search_gray</item>
    <!-- 可选:修改关闭图标的颜色 -->
    <item name="closeIconTint">@color/search_gray</item>
</style>

3. 修改布局中的SearchView引用

把你布局里的SearchView的android:theme替换成咱们自定义的样式,还可以调整可折叠特性:

<android.support.v7.widget.SearchView
    android:id="@+id/mySearchview"
    android:label="@string/app_name"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:theme="@style/CustomGraySearchView"
    <!-- 调整可折叠特性:false默认展开,true默认折叠 -->
    android:iconifiedByDefault="false">
</android.support.v7.widget.SearchView>

方案二:通过代码动态设置(适合需要动态调整颜色的场景)

如果不想修改样式文件,也可以在Activity/Fragment里通过代码直接设置颜色:

import android.support.v7.widget.SearchView;
import android.graphics.drawable.Drawable;
import android.support.v4.content.ContextCompat;
import android.graphics.PorterDuff;

// 在onCreate或初始化方法中执行
SearchView mySearchView = findViewById(R.id.mySearchview);

// 设置搜索图标颜色
Drawable searchIcon = mySearchView.getSearchIcon();
if (searchIcon != null) {
    searchIcon.setColorFilter(ContextCompat.getColor(this, R.color.search_gray), PorterDuff.Mode.SRC_IN);
}

// 设置提示文本颜色
mySearchView.setQueryHintTextColor(ContextCompat.getColor(this, R.color.search_gray));

// 设置输入文本颜色
mySearchView.setQueryTextColor(ContextCompat.getColor(this, R.color.search_gray));

// 可选:设置关闭图标颜色
Drawable closeIcon = mySearchView.getCloseIcon();
if (closeIcon != null) {
    closeIcon.setColorFilter(ContextCompat.getColor(this, R.color.search_gray), PorterDuff.Mode.SRC_IN);
}

// 调整可折叠特性
mySearchView.setIconifiedByDefault(false);

额外提示

你布局里把SearchView放在CardView中,要确保CardView的背景和灰色的图标/文本搭配协调,浅色背景会让灰色内容更清晰,和你想要的目标效果一致。

内容的提问来源于stack exchange,提问作者Ricardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:27:35