我正在使用onCreateOptionsMenu在工具栏中创建一个searchview,但无法使清除X按钮最初为白色.开始输入字母时变为白色.清理后它也会保持白色.
@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)); 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>
解决方法
找到了解决方案.但是,对更好的感兴趣.
从24000白色的https://www.google.com/design/icons/#ic_clear下载“清除按钮”图像,并将此代码添加到onCreateOptionsMenu的末尾
// Does help! ImageView searchClose = (ImageView) searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn); searchClose.setImageResource(R.drawable.ic_clear_white_24dp);