在Android工具栏中更改背面和清除图标的SearchView颜色

Cha*_*dru 6 android android-appcompat android-actionbar searchview android-toolbar

我想在SearchView崩溃时自定义后退和清除图标.我的要求是将颜色更改为白色,但现在是黑色.(请参阅下面分享的图像).我希望解决这个问题几天,但我尝试过的解决方案都没有解决.我尝试了几个从SO建议的解决方案,如下所示:

解决方案1:

<style name="AppTheme" parent="@style/Theme.Base.AppCompat.Light.DarkActionBar">
    <item name="actionBarWidgetTheme">@style/YourActionBarWidget</item>
</style>

<style name="YourActionBarWidget" parent="@style/Theme.AppCompat">
    <item name="searchViewCloseIcon">@drawable/xxx</item>
</style>
Run Code Online (Sandbox Code Playgroud)

解决方案2:

final Drawable upArrow = getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
upArrow.setColorFilter(getResources().getColor(R.color.WHITE), PorterDuff.Mode.SRC_ATOP);
getSupportActionBar().setHomeAsUpIndicator(upArrow);  
Run Code Online (Sandbox Code Playgroud)

我的项目 styles.xml

<style name="ToolBarTheme" parent="@style/Theme.AppCompat.Light">
        <item name="colorPrimary">@color/blue</item>
        <item name="colorPrimaryDark">@color/blue</item>
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
        <item name="android:itemTextAppearance">@style/myCustomMenuTextApearance</item>
        <item name="android:actionMenuTextColor">@color/white</item>
        <item name="actionMenuTextColor">@color/white</item>

    </style>



<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
        <item name="spinBars">true</item>
        <item name="color">@color/white</item>
        <item name="gapBetweenBars">2.5dip</item>
        <item name="thickness">2dp</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

我的确切问题的屏幕截图:

在此输入图像描述

请帮我解决我的问题.任何类型的解决方案和建议对我都有帮助.感谢您的支持.

Jin*_*inu 7

如果要在工具栏上搜索白色图标,请在工具栏标签上添加这些图标

android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
Run Code Online (Sandbox Code Playgroud)


小智 3

我假设您使用它作为您的基本应用程序主题。

<style name="AppTheme" parent="@style/Theme.Base.AppCompat.Light.DarkActionBar"> 
Run Code Online (Sandbox Code Playgroud)

只需将其更改为

<style name="AppTheme" parent="@style/Theme.AppCompat.NoActionBar">
Run Code Online (Sandbox Code Playgroud)

如果您只想将后退和 X 图标更改为白色,那么对我有用。