Sun*_*kas 11 android searchview android-support-library
我正在使用工具栏创建一个searchview onCreateOptionsMenu,但无法获得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, 255));
searchClose.setAlpha(255);
return true;
}
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
Sun*_*kas 20
找到了解决方案.但是,对更好的感兴趣.
从24pt白色的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);
Run Code Online (Sandbox Code Playgroud)
小智 5
您也可以从 XML 设置它。我正在使用支持库 24.2.1 和一个主题的活动,其父项是“Theme.AppCompat.Light”和 ActionBar 中的 android.support.v7.widget.SearchView。
您可以在您的活动主题中设置一个 actionBarWidgetTheme,如下所示:
<style name="ActivityTheme" parent="Theme.AppCompat.Light">
<item name="actionBarWidgetTheme">@style/MyActionBarWidgetTheme</item>
</style>
Run Code Online (Sandbox Code Playgroud)
然后定义 MyActionBarWidgetTheme 并在那里设置你想要的颜色:
<style name="MyActionBarWidgetTheme">
<item name="android:textColorSecondary">@android:color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)
android:textColorSecondary 适用于关闭图标
android:textColorPrimary 适用于您输入的文本
colorControlActivated 应用于光标
android:textColorHint 适用于提示文本
尝试这个:
ImageView searchClose = searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
searchClose.setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_ATOP);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9493 次 |
| 最近记录: |