我正在使用搜索小部件在我的應用程序上實現搜索界面。我做不是計劃支持任何API級別< 11(蜂窩)。在搜索活動中,我想覆蓋onKeyDown()
以在用戶按下搜索鍵時展開搜索小部件,並在提交查詢文本時將其最小化。當查詢被提交Android:menuItem.expandActionView()on API level <14
@Override
public boolean onSearchRequested() {
if (mSearchMenuItem != null) {
mSearchMenuItem.expandActionView();
}
return false;
}
和:
這是很容易通過調用來完成
searchView.setOnQueryTextListener(new OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
//Do nothing, results for the string supplied are already shown.
//Just collapse search widget
mSearchMenu.collapseActionView();
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
//do other stuff
return false;
});
的問題是,無論是摺疊和展開是在API級別14引入如前所述我希望早在API級別11提供支持,並且在不調用新API方法的情況下實現相同功能時遇到問題。
我想:
@Override
public boolean onSearchRequested() {
searchView.setIconifiedByDefault(false);
//and also called
searchView.requestFocusFromTouch();
}
但是這根本就不是在所有做任何事情(被任何東西我的意思是,如果它已經是searchwidget保持倒塌
因爲我保持參考。菜單項,我也試過:
@Override
public boolean onSearchRequested() {
SearchActivity.this.onOptionsItemSelected(mSearchMenuItem);
}
,但沒有在所有無論是做任何事情,我想最後一件事是:
@Override
public boolean onSearchRequested() {
searchMenu.getActionView().performClick();
return false;
}
但這也是不行的。
關於我能做什麼來提供與menuItem.collapseActionView()
和menuItem.expandActionView()
相同的功能而不犧牲兼容性的任何想法?
這應該是被接受的答案。 – dtrejogo 2014-08-27 19:33:06