При использовании нового Toolbar
с библиотекой поддержки appcompat мне кажется, что кнопка «Домой» не работает так, как раньше, если вы не установите допустимое меню параметров. Простой и болотно стандарт деятельности:Кнопка панели инструментов не работает, если нет дополнительного меню
public class MyActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.some_page);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar bar = getSupportActionBar();
bar.setHomeButtonEnabled(true);
bar.setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// getMenuInflater().inflate(R.menu.some_menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed() or finish() or whatever();
break;
}
return super.onOptionsItemSelected(item);
}
}
Если есть меню установлен в onCreateOptionsMenu()
, onOptionsItemSelected()
будет называться все в порядке с android.R.id.home
и все прекрасно. Однако, если вообще нет onCreateOptionsMenu()
(или он пуст, либо возвращается true
, либо вызывает функцию super
), onOptionsItemSelected()
вообще не будет вызываться, поэтому нет возможности поймать щелчок на кнопке «Домой». Я даже пытался передать пустое меню до onCreateOptionsMenu()
, но это не помогло.
Есть ли обходной путь, который позволяет нам иметь действующую кнопку «Домой» на страницах, которые не нуждаются в функциональном меню опций?
Я нашел это сейчас, это поскользнулись мое внимание на первом, потому что я * не * на JB, но KK: http://stackoverflow.com/questions/26859841/homeasup-button-has-no-effect-in-android-4-2-2-with-appcompat-21-0-0?rq=1 –