2013-05-21 25 views
8

Tôi đang sử dụng chế độ xem tìm kiếm trong ứng dụng của mình (không có thanh tác vụ). Làm thế nào tôi có thể thu gọn searchview sau khi gửi văn bản truy vấn?android - collapse searchview sau khi gửi

Tôi có những người nghe này;

 @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; 
     } 

Tôi không sử dụng ActionBar nên tôi không có chức năng như collapseActionView().

Chờ đợi để được giúp đỡ

Cảm ơn

+0

Bạn có thể gọi .setVisibility (View.GONE) trên chế độ xem tìm kiếm - hoặc có lý do nào bạn không thể làm điều đó không? – Cornholio

+0

Tôi thứ hai Cornholio cho rằng, với một Animation bạn có thể đạt được một sự sụp đổ tìm kiếm tốt đẹp –

+0

Cảm ơn ý kiến. Nhưng nếu bạn setVisibility to GONE, biểu tượng tìm kiếm cũng sẽ ẩn. phải không? Tôi muốn biểu tượng chế độ xem tìm kiếm. – dracula

Trả lời

13

Bạn có thể làm theo cách này trong hoạt động của bạn, thử nghiệm với ActionBarSherlock (thậm chí nó ẩn bàn phím, hãy chắc chắn để trả về false trong onQueryTextSubmit):

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

Chỉ cần lưu ý: Thao tác này sẽ không sụp đổ SearchView nếu đề xuất được chọn thay thế. Bạn cần OnSuggestionListener cho điều đó. – kupsef

2

Nếu bạn đang sử dụng SearchView trong OptionsMenu, bạn gọi số invalidateOptionsMenu()

9

bạn cần gọi setIconified (true) t để thực sự thu gọn chế độ xem tìm kiếm của bạn, với văn bản cuộc gọi đầu tiên bị xóa với bàn phím cuộc gọi thứ hai và chế độ xem tìm kiếm sẽ bị đóng.

1
//close suggestion list on query text submit 
searchView.setIconified(true); 
Các vấn đề liên quan