2013-05-21 24 views
8

我在我的應用程序中使用了searchview(沒有操作欄)。如何在查詢文本提交後摺疊searchview?android-在提交後摺疊searchview

我有這些聽衆;

 @Override 
     public boolean onQueryTextSubmit(String query) { 

      InputMethodManager imm = (InputMethodManager)thisFr.getSystemService(Context.INPUT_METHOD_SERVICE); 
      imm.hideSoftInputFromWindow(globalSearch.getWindowToken(), 0); 

      return false; 
     } 

     @Override 
     public boolean onQueryTextChange(String newText) { 
      // TODO Auto-generated method stub 
      return false; 
     } 

我不使用ActionBar,所以我沒有像collapseActionView()這樣的函數。

等待救援

感謝

+0

你也許可以在搜索視圖中調用.setVisibility(View.GONE) - 或者有沒有原因你不能這樣做? – Cornholio

+0

我第二個Cornholio的,用動畫,你可以實現一個不錯的外觀崩潰 –

+0

感謝您的意見。但是,如果您將可見性設置爲「結束」,則搜索圖標也將不可見。不是嗎?我想要iconify搜索視圖。 – dracula

回答

13

你能做到這樣,在您的活動,與actionbarsherlock測試(它甚至隱藏鍵盤,請務必在onQueryTextSubmit返回false):

private MenuItem searchMenuItem; 

public MenuItem getSearchMenuItem() { 
    return searchMenuItem; 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // ... 
    searchMenuItem = menu.findItem(R.id.menu_search); 
    // ... 
    searchView.setOnQueryTextListener(new OnQueryTextListener() { 
     @Override 
     public boolean onQueryTextSubmit(String query) { 
      MenuItem searchMenuItem = getSearchMenuItem(); 
      if (searchMenuItem != null) { 
       searchMenuItem.collapseActionView(); 
      } 
      return false; 
     } 
     @Override 
     public boolean onQueryTextChange(String newText) { 
      // ... 
      return true; 
     } 
    }); 
    // ... 
    return super.onCreateOptionsMenu(menu); 
} 
+0

只需注意:如果選擇了某個建議,則不會摺疊SearchView。您需要使用OnSuggestionListener。 – kupsef

2

如果您在OptionsMenu中使用SearchView,您可以撥打invalidateOptionsMenu()

9

您需要調用setIconified(true)t wice實際上摺疊您的搜索視圖,第一次調用文本被第二個調用鍵盤清除並且搜索視圖關閉。

1
//close suggestion list on query text submit 
searchView.setIconified(true);