我正在尝试从我的Activity中禁用SearchView.我尝试了以下代码:
mSearchView.setEnabled(false); mSearchView.setFocusable(false); mSearchView.setClickable(false);
但它不起作用.仍然可以单击SearchView并弹出KeyBoard.我希望它变得灰暗,不可点燃.我怎么能做到这一点?
解决方法
所述答案都不足以满足我的需求,所以我想为同样情况下的任何人提供另一个答案.
SearchView由不同的视图组成,可以 – 并且在这种情况下必须 – 单独处理.
如果你希望你的SearchView(支持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回答searchView.setInputType(InputType.TYPE_NULL)的问题:如果以这种方式禁用SearchView并在之后单击它,系统似乎期望打开键盘,但键盘未显示.因此,第一个后退按钮单击只会导致关闭 – 未显示或实际上未打开 – 键盘.)