android - 禁用 SearchView

标签 android search android-widget

我正在尝试从我的 Activity 中禁用 SearchView。我尝试了以下代码:

    mSearchView.setEnabled(false);
    mSearchView.setFocusable(false);
    mSearchView.setClickable(false);

但它不起作用。仍然可以单击 SearchView 并弹出 KeyBoard。我希望它变成灰色并且无法点击。我怎样才能做到这一点?

最佳答案

所有陈述的答案都不能满足我的需求,所以我想为处于相同情况的任何人提供另一个答案。

SearchView, has focus, has search and clear button

SearchView 由不同的 View 组成,这些 View 可以 - 在这种情况下必须 - 单独处理。 如果您希望您的 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 answer searchView.setInputType(InputType.TYPE_NULL) 的问题:如果您以这种方式禁用 SearchView 并在之后单击它,系统似乎需要一个打开的键盘,但未显示键盘。因此,单击第一个后退按钮只会关闭 - 未显示或实际上未打开 - 键盘。)

关于android - 禁用 SearchView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11436018/

相关文章:

java - 图片(base64)上传不正确

python - 如何用Python解析这个网页(并转换成字典)

algorithm - 径向网格搜索算法

Android 运行时权限已授予但仍被拒绝

android - 是否可以在队列中执行多个 http 请求?

android - 应用程式套件语言分割似乎无法处理区域

c++ - C++中搜索和保护单链表

android - 在小部件中单击 TextView 时更改图标

java - 将 LinearLayout 调整为 ImageView 的宽度

android - 忽略 setMargin() 的相对布局