您可以帮助我按下按钮时如何禁用searchview吗?我正在尝试这段代码:
searchView.setEnabled(false);
searchView.setFocusableInTouchMode(false);
searchView.clearFocus();
但它似乎无法正常工作。我仍然可以在searchview中输入文字。
谢谢.. :))
答案 0 :(得分:7)
您可以使用:
searchView.clearFocus();
如果你想隐藏它:
searchView.setVisibility(View.GONE);
答案 1 :(得分:6)
以上所有问题对我都不起作用。 Becase SearchView是一个ViewGroup,所以我们必须禁用它的所有子视图。
private void enableSearchView(View view, boolean enabled) {
view.setEnabled(enabled);
if (view instanceof ViewGroup) {
ViewGroup viewGroup = (ViewGroup) view;
for (int i = 0; i < viewGroup.getChildCount(); i++) {
View child = viewGroup.getChildAt(i);
enableSearchView(child, enabled);
}
}
}
在其他地方,请致电:
enableSearchView(searchView, true/false);
答案 2 :(得分:1)
尝试以下方法:
searchview.setInputType(InputType.TYPE_NULL);
答案 3 :(得分:1)
SearchView
不是您输入的实际EditText
,而是一个LinearLayout
,其中包含一堆视图,包括EditText
。
要获取您实际想要禁用它的视图:
EditText searchViewEditText = (EditText) searchView.findViewById(R.id.search_src_text);
请注意,这仅适用于您使用支持v7 SearchView
的情况,因为如果您使用框架SearchView
,则特定资源ID是内部的。
答案 4 :(得分:1)
searchView.findViewById(R.id.search_button).setEnabled(false);
但是你必须检查它是否为null并隐藏searchView:
ImageView searchBtn = (ImageView) searchView.findViewById(R.id.search_button);
if (searchBtn != null) searchBtn.setEnabled(false);
searchView.setVisibility(View.GONE);
我认为这会起作用
答案 5 :(得分:0)
你试过吗
searchView.setVisibility(View.GONE);
?
答案 6 :(得分:0)
这对我有用
ImageView searchIcon = (ImageView)searchView.findViewById(android.support.v7.appcompat.R.id.search_button);
searchIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Don't perform any action.
}
});
答案 7 :(得分:0)
尝试以下代码:
searchView.setIconified(true);
答案 8 :(得分:0)
searchView.setOnQueryTextFocusChangeListener( new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus && !v.isEnabled()) v.clearFocus();
}
}
答案 9 :(得分:-1)
如果要清除它(SearchView),请执行:
searchView.clearFocus();
如果你想暂时隐藏它,请执行以下操作:
searchView.setVisibility(View.GONE);