2015-05-20 34 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

我已经解决了这个问题。请重写方法,下面的代码 -

@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.setFocusable(false); 
searchView.setIconified(false); 
searchView.clearFocus(); 

希望这可以帮助别人。

相关问题