2015-05-20 2 views
2

У меня есть SearchView в панели действий. Он расширяется, когда пользователь нажимает на него, а затем появляется клавиатура. Это ожидаемое поведение. Однако в моем приложении есть один случай, когда я расширяю SearchView программно.Возможно ли развернуть SearchView без отображения клавиатуры

MenuItem searchMenuItem = menu.findItem(R.id.action_search); 
MenuItemCompat.expandActionView(searchMenuItem); 

В данном случае я не хочу показывать клавиатуру. Я расширяю SearchView программно, чтобы показать пользователю, что было последним поисковым запросом.

Так можно ли открыть поиск без отображения клавиатуры?

+1

Вы нашли решение? – gersonmendes

+0

@gersonmendes, я не нашел решения. Но если мне пришлось снова использовать SearchView, я бы рассказал об этом подробном представлении, используемом в Play Маркете. Это намного лучше, чем обычный SearchView. http://www.androidcentral.com/sites/androidcentral.com/files/styles/larger_wm_brw/public/article_images/2015/03/google-play-update.JPG?itok=sIj0Zj7E – Egis

ответ

2

Я решить мою проблему с помощью этого:

@Override 
    public void onPrepareOptionsMenu(Menu menu) { 
     final SearchView searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.menu_search)); 
     if(!TextUtils.isEmpty(mSearch)){ 
      searchView.setQuery(mSearch, false); 
      searchView.setIconified(false); 
      searchView.clearFocus(); 
     } 
    } 

Позвольте мне знать, если этот код решить вашу проблему.

+0

CLEAR ANSWER: комбинация 'searchView .setIconified (false); 'и' searchView.clearFocus(); ' – johnkarka

0

У меня есть решение этого issus. Пожалуйста, переопределить метод, как показано ниже кода -

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    super.onCreateOptionsMenu(menu, inflater); 
    MenuItem menuItem = menu.findItem(R.id.menu_search); 

    searchView = ((SearchView) menuItem.getActionView()); 

    searchView.setFocusable(true); 
    searchView.setIconified(false); 
    searchView.requestFocusFromTouch(); 
    menuItem.setVisible(true); 

} 
0

Я использовал ниже код для расширения SearchView без открытия клавиатуры:

searchView.setFocusable(false); 
searchView.setIconified(false); 
searchView.clearFocus(); 

Надеется, что это поможет кому-то.

Смежные вопросы