我使用此方法在活动开始时显示已打开的搜索结果。
由于我在活动中使用了少量片段,因此我在onPrepareOptionsMenu回调中调用此方法。我想要的行为是,在活动开始时显示打开的searchView和softkeyboard,用户将搜索某些内容并单击ListView项目将显示特定的片段。
但是当用户关闭所有片段并返回活动中的搜索结果时,会再次触发此方法以打开searchView。这里真正让我感到困惑的是,同时软键盘也显示出重叠的搜索结果。
有没有办法打开searchView而不显示软键盘?
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if(MyApp.fragments.size() == 0) {
searchView.setIconified(false);
title.setText("");
if(menu.findItem(R.id.ma_search) != null) menu.findItem(R.id.ma_search).setVisible(true);
}else if(MyApp.fragments.get(MyApp.fragments.size()-1) instanceof Fragment1){
title.setText("Title1");
if(menu.findItem(R.id.ma_search) != null) menu.findItem(R.id.ma_search).setVisible(false);
}else if(MyApp.fragments.get(MyApp.fragments.size()-1) instanceof Fragment2){
title.setText("Title2");
if(menu.findItem(R.id.ma_search) != null) menu.findItem(R.id.ma_search).setVisible(false);
}else if(MyApp.fragments.get(MyApp.fragments.size()-1) instanceof Fragment3){
title.setText("Title3");
if(menu.findItem(R.id.ma_search) != null) menu.findItem(R.id.ma_search).setVisible(false);
}else if(MyApp.fragments.get(MyApp.fragments.size()-1) instanceof Fragment4){
title.setText("Title4");
if(menu.findItem(R.id.ma_search) != null) menu.findItem(R.id.ma_search).setVisible(false);
}
return true;
}