在 android 搜索视图中隐藏关闭按钮
Hide close button in android Search View
我实现了一个android搜索view.When搜索视图获得焦点,右侧的关闭按钮[x]显示up.How以隐藏[=15=中的关闭按钮] 搜索视图
像这样更改您的主题:
对于
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="actionBarWidgetTheme">@style/AppTheme.WidgetTheme</item>
</style>
<style name="AppTheme.WidgetTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="searchViewCloseIcon">@android:color/transparent</item>
</style>
对于 v21 及更高版本:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="searchViewStyle">@style/AppTheme.SearchView</item>
</style>
<style name="AppTheme.SearchView" parent="Widget.AppCompat.SearchView">
<item name="closeIcon">@android:color/transparent</item>
</style>
另请检查 this 以获得更多自定义设置。
我认为,如果你使用支持库,@Anton 建议的第一部分可能不起作用,所以在 values/styles.xml 中写这样的东西就足够了:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="searchViewStyle">@style/SearchViewStyleAfterV21</item>
</style>
...
<style name="SearchViewStyleAfterV21" parent="Widget.AppCompat.SearchView">
<item name="closeIcon">@android:color/transparent</item>
</style>
你试过这个吗set 'x' button programicaly?
In case you want do it programicaly, put a piece of code that hides "x" button in onQueryTextListener
:
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String query) {
ImageView searchViewIcon = (ImageView)searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
searchViewIcon.setVisibility(View.GONE);
return true;
}
});
在您的 XML 布局文件中:
app:closeIcon="@android:color/transparent"
然后禁用按钮:
ImageView btnClose = searchView.findViewById(R.id.search_close_btn);
btnClose.setEnabled(false);
我实现了一个android搜索view.When搜索视图获得焦点,右侧的关闭按钮[x]显示up.How以隐藏[=15=中的关闭按钮] 搜索视图
像这样更改您的主题:
对于
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="actionBarWidgetTheme">@style/AppTheme.WidgetTheme</item>
</style>
<style name="AppTheme.WidgetTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="searchViewCloseIcon">@android:color/transparent</item>
</style>
对于 v21 及更高版本:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="searchViewStyle">@style/AppTheme.SearchView</item>
</style>
<style name="AppTheme.SearchView" parent="Widget.AppCompat.SearchView">
<item name="closeIcon">@android:color/transparent</item>
</style>
另请检查 this 以获得更多自定义设置。
我认为,如果你使用支持库,@Anton 建议的第一部分可能不起作用,所以在 values/styles.xml 中写这样的东西就足够了:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="searchViewStyle">@style/SearchViewStyleAfterV21</item>
</style>
...
<style name="SearchViewStyleAfterV21" parent="Widget.AppCompat.SearchView">
<item name="closeIcon">@android:color/transparent</item>
</style>
你试过这个吗set 'x' button programicaly?
In case you want do it programicaly, put a piece of code that hides "x" button in
onQueryTextListener
:
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String query) {
ImageView searchViewIcon = (ImageView)searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
searchViewIcon.setVisibility(View.GONE);
return true;
}
});
在您的 XML 布局文件中:
app:closeIcon="@android:color/transparent"
然后禁用按钮:
ImageView btnClose = searchView.findViewById(R.id.search_close_btn);
btnClose.setEnabled(false);