Android 更改SearchView后退图标颜色

Android 更改SearchView后退图标颜色,android,android-fragments,Android,Android Fragments,有没有办法在展开时更改SearchView上显示的箭头的颜色? 我什么都试过了,但都没有结果。请看这里阿卜杜勒·拉赫曼的答案() 以下是另一种方法: <style name="ActivityTheme" parent="@android:style/Theme.DeviceDefault.Light"> <item name="android:actionBarTheme">@style/searchActionBarTheme</item> &l

有没有办法在展开时更改SearchView上显示的箭头的颜色?


我什么都试过了,但都没有结果。

请看这里阿卜杜勒·拉赫曼的答案()


以下是另一种方法:

<style name="ActivityTheme" parent="@android:style/Theme.DeviceDefault.Light">
    <item name="android:actionBarTheme">@style/searchActionBarTheme</item>
</style>

<style name="searchActionBarTheme" parent="@android:style/ThemeOverlay.Material.Dark.ActionBar">
    <item name="android:textColorPrimary">@color/back_key_color</item> <!-- back key color defined here!! -->
    <item name="android:actionBarWidgetTheme">@style/searchViewTheme</item>
</style>

<style name="searchViewTheme" parent="@android:style/ThemeOverlay.Material.Light">
    <item name="android:editTextColor">@color/edit_text_color</item>
    <item name="android:colorControlActivated">@color/search_cursor_color</item>
</style>

@风格/风格
@颜色/背键颜色
@样式/搜索视图主题
@颜色/编辑\u文本\u颜色
@颜色/搜索\u光标\u颜色

在Manifest.xml中为您的活动使用ActivityTheme来更改图标颜色,并在您的
android.support.v7.widget.Toolbar
工具栏中添加以下属性

app:collapseIcon="@drawable/back_arrow"
还要更改关闭按钮图标,请添加以下代码

ImageView searchClose = searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
searchClose.setImageResource(R.drawable.close);

我正在工具栏中使用SearchView,我可以使用反射更改颜色

try {
    final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    Field mCollapseIcon = toolbar.getClass().getDeclaredField("mCollapseIcon");
    mCollapseIcon.setAccessible(true);
    Drawable drw = (Drawable) mCollapseIcon.get(toolbar);
    drw.setTint(color);
}
catch (Exception e) {
}

更改SearchView关闭图标颜色

SearchView  searchView = (SearchView) findViewById(R.id.searchView1);

    ImageView searchClose  = (ImageView) searchView.findViewById(search.getContext().getResources().getIdentifier("android:id/search_close_btn", null, null));

    searchClose.setColorFilter (R.color.black);

看这对我来说很管用——简短、清晰、有效的回答就像一个老板
searchClose
实际上是删除当前搜索的按钮,而不是折叠按钮。
SearchView  searchView = (SearchView) findViewById(R.id.searchView1);

    ImageView searchClose  = (ImageView) searchView.findViewById(search.getContext().getResources().getIdentifier("android:id/search_close_btn", null, null));

    searchClose.setColorFilter (R.color.black);