2013-04-24 26 views
6

Tôi đã sử dụng tiện ích chế độ xem tìm kiếm Sherlock trong thanh tác vụ cho menu tìm kiếm. Đoạn mã để khởi tạo chế độ xem tìm kiếmcách tắt tính năng thu gọn chế độ xem tìm kiếm trên phím quay lại android android

 MenuItem item = menu.findItem(R.id.menu_search); 
    item.expandActionView(); 
    mSearchView = (SearchView) item.getActionView(); 
    mSearchView.setIconifiedByDefault(false); 
    mSearchView.setQuery(query, false); 
    mSearchView.clearFocus(); 

Mã trên cho thấy chế độ xem tìm kiếm mở rộng với truy vấn tìm kiếm mặc định. Vấn đề là khi tôi nhấn nút quay lại, chế độ xem tìm kiếm lại sụp đổ trước khi trở lại hoạt động trước đó trong Android. Tôi không muốn chế độ xem tìm kiếm bị thu gọn khi nhấn phím quay lại. Làm thế nào để ngăn chặn xem tìm kiếm từ sụp đổ trên báo chí chính trở lại?

+0

http://stackoverflow.com/questions/9629313/auto- collapse-actionbar-searchview-on-soft-keyboard-close –

+0

bài viết trên khác với bài viết của tôi oblem. Chế độ xem tìm kiếm của tôi bị thu gọn khi nhấn phím quay lại. Tôi phải tắt hành vi mặc định này. Tôi không muốn chế độ xem tìm kiếm bị thu gọn, nó sẽ luôn được mở rộng? Bất kì lời đề nghị nào ? – user1526671

+0

bạn có nhận được câu trả lời cho điều này không? –

Trả lời

0

Thêm một giá trị boolean khi xem tìm kiếm được mở ra như thế này

private Boolean isSearchPageIsOpen = true; 

Sau đó, thêm thậm chí để xử lý lại nhấn nút

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     switch (keyCode) { 
     case KeyEvent.KEYCODE_BACK: 
      if(isSearchPageIsOpen){ 

       do something here 
     } 
     return false; 
+1

xem lại chế độ xem tìm kiếm không gọi phương thức onKeydown Overriden – user1526671

0

SearchView.setIconifiedByDefault(false) nên là đủ nếu bạn đã thiết lập các thuộc tính android:showAsAction="always" trong menu xml của bạn.

Đoạn sau đây làm việc cho tôi:

default_options.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    <item android:id="@+id/action_search" 
     android:title="@string/search" 
     android:icon="@drawable/topbar_busqueda" 
     androidshowAsAction="always" 
     android:actionViewClass="android.support.v7.widget.SearchView" /> 
</menu> 

Hoạt động

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.default_options menu); 
    MenuItem menuItem = menu.findItem(R.id.action_search); 
    SearchView searchView = (SearchView) menuItem.getActionView(); 
    prepareSearchViewAdapter(searchView, menuItem); 
    super.onCreateOptionsMenu(menu, inflater); 
} 

private void prepareSearchViewAdapter(final SearchView searchView, MenuItem menuItem) { 
    searchView.setIconifiedByDefault(false); 
}