我正在尝试从我的Activity禁用SearchView。我尝试了以下代码:
mSearchView.setEnabled(false);
mSearchView.setFocusable(false);
mSearchView.setClickable(false);但它不起作用。仍然可以单击SearchView并弹出KeyBoard。我希望它变成灰色并且无法点击。我如何才能做到这一点呢?
发布于 2016-06-16 02:05:57
所有这些答案都不足以满足我的需求,所以我愿意为同样情况下的任何人提供另一个答案。

SearchView由不同的视图组成,这些视图可以-在这种情况下必须-单独寻址。如果您希望您的SearchView (support v7)在这样的状态下冻结和灰显,而不响应任何类型的输入,包括搜索和清除按钮,您可以使用:
ImageView clearButton = (ImageView) searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
SearchView.SearchAutoComplete searchEditText = (SearchView.SearchAutoComplete) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
clearButton.setEnabled(false);
searchEditText.setEnabled(false);
searchView.setSubmitButtonEnabled(false);(此外,我有一个关于deeptis answer searchView.setInputType(InputType.TYPE_NULL)的问题:如果你以这种方式禁用SearchView,然后点击它,系统似乎期望一个开放的键盘,尽管键盘没有显示。因此,单击第一个后退按钮只会关闭键盘-没有显示或实际上没有打开-键盘。)
发布于 2014-01-15 15:51:30
要禁用任何视图(例如SearchView),可以在布局XML中将其input-type设置为none,或者从Activity调用view.setInputType(InputType.TYPE_NULL)。
发布于 2015-08-08 17:33:01
您也可以完全隐藏searchView。您可以通过执行以下操作隐藏搜索视图和搜索图标:
searchItem.setVisible(false);
searchView.setVisibility(View.GONE);然后你可以通过以下方式把它带回来:
searchItem.setVisible(true);
searchView.setVisibility(View.VISIBLE);https://stackoverflow.com/questions/11436018
复制相似问题