検索バーと一緒にアクション バーも使用しています。[戻る] ボタンのように ActionBar ico を使用する必要があります。
しかし、ナビゲーション ドロワーも使用しています... [戻る] ボタンを使用するために、ナビゲーション ドロワー メニューを非表示/非表示/無効にするにはどうすればよいですか?
私のActionBarコード:
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
this.getSupportActionBar().setDisplayShowCustomEnabled(true);
this.getSupportActionBar().setDisplayShowTitleEnabled(false);
this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
this.getSupportActionBar().setHomeButtonEnabled(true);
LayoutInflater inflator = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v;
if(!searchView){
v = inflator.inflate(R.layout.action_textview, null);
((TextView) v.findViewById(R.id.titleText)).setText(actionTitle);
menu.getItem(0).setVisible(true);
menu.getItem(2).setVisible(true);
mainMenu = menu;
}else{
v = inflator.inflate(R.layout.action_searchview, null);
actionSearch = (EditText) v.findViewById(R.id.searchText);
actionSearch.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView view, int actionId, KeyEvent event) {
int result = actionId & EditorInfo.IME_MASK_ACTION;
switch(result) {
case EditorInfo.IME_ACTION_DONE:
case EditorInfo.IME_ACTION_NEXT:
case EditorInfo.IME_ACTION_GO:
case 0:
((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(actionSearch.getWindowToken(), 0);
String temp = actionSearch.getText().toString();
searchFor(temp);
break;
}
return true;
}
});
actionSearch.requestFocus();
menu.getItem(0).setVisible(false);
menu.getItem(2).setVisible(false);
}
this.getSupportActionBar().setCustomView(v);
return super.onCreateOptionsMenu(menu);
}
コードのヘルプ:
- 私のタイトルは、フォントの色とサイズをカスタマイズするための、TextView のみのカスタム ビューです。(action_textview)
- 私の SearchBar は、EditText のみのカスタム ビューを使用します。(action_searchview)