我的應用包含一個標準的SearchView小部件。從下面的代碼可以看出,我設置了OnClickListener,OnCloseListener和OnQueryTextListener。SearchView在查詢提交後不響應點擊
如果我點擊SearchView,它最初會按照預期做出響應。如果我輸入文本並按下鍵盤上的搜索按鈕,則OnQueryTextListener會正確觸發,並按照searchView.setIconified(true)解除鍵盤鎖定。但是,如果我現在再次點擊SearchView,則不會觸發OnClickListener。鍵盤仍然出現,並且該字段變得可編輯,但是我的代碼不在OnClickListener中執行。
如果在此之後使用「X」圖標關閉搜索視圖,則所有內容均恢復正常。下次我點擊SearchView時,我的聽衆被解僱了。
我有額外的代碼,我需要執行每次點擊SearchView時執行。
在此特定情況下可能導致偵聽器無法觸發?有什麼我應該在OnQueryTextSubmit中做什麼?
searchView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
filterLayout.setVisibility(View.VISIBLE);
searchView.setIconified(false);
System.out.println("on click");
}
});
searchView.setOnCloseListener(new SearchView.OnCloseListener() {
@Override
public boolean onClose() {
filterLayout.setVisibility(View.INVISIBLE);
return false;
}
});
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
searchView.setIconified(true);
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});