android - 设置 SearchView 清除按钮颜色

标签 android android-support-library searchview

我正在使用 onCreateOptionsMenu 在工具栏中创建一个搜索 View ,但无法让清晰的 X 按钮最初为白色。开始输入字母时会变成白色。清除后它也保持白色。

Example of clear button having the color of gray instead of white

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    MenuInflater menuInflater = getMenuInflater();
    menuInflater.inflate(R.menu.responsible_menu, menu);
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); //TODO: May not be needed?

    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener()
    {
        @Override
        public boolean onQueryTextSubmit(String query)
        {
            mAdapter.updateUIWithFilter(query);
            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText)
        {
            mAdapter.updateUIWithFilter(newText);
            return false;
        }
    });

    // Does not work! Still not white.
    ImageView searchClose = (ImageView) searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
    searchClose.setColorFilter(Color.argb(255, 255, 255, 255));

    searchClose.setAlpha(255);

    return true;
}

responsible_menu.xml:

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

    <item
        android:id="@+id/menu_search"
        android:title="@string/search"
        appcompat:actionViewClass="android.support.v7.widget.SearchView"
        appcompat:showAsAction="always"/>

</menu>

最佳答案

找到解决方案。但是,对更好的感兴趣。

https://www.google.com/design/icons/#ic_clear 下载“清除按钮”图像在 24pt 白色中并将此代码添加到 onCreateOptionsMenu

的末尾
    // Does help!
    ImageView searchClose = (ImageView) searchView.findViewById(androidx.appcompat.R.id.search_close_btn);
    searchClose.setImageResource(R.drawable.ic_clear_white_24dp);

关于android - 设置 SearchView 清除按钮颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32178425/

相关文章:

java - 像素点,桌面和安卓

android - Maven中的重复依赖

android - AppBar 在滚动时隐藏 View 直到折叠

Android:CollapsingToolbarLayout 和 SearchView,文本重叠

Android - SearchView 不打开 Activity

android - 如何将表格布局作为子项添加到 ExpandableListView。

java - 梯度错误:Execution failed for task ':app:dexDebug' .

java - 如何处理 SQLite 和 Android 的事务?

android - RecyclerView 在回收 View 时不尊重翻译

Android ActionBar SearchView 自动完成 JSON ListView