将新的Toolbar
与appcompat支持库一起使用时,在我看来,除非您设置了有效的选项菜单,否则Home按钮不会像以前那样工作。一个简单的沼泽标准活动:
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()
,因此没有机会抓住主页按钮上的点击。我甚至试图将一个空的菜单传递给{{1}},但它没有帮助。
是否有一种解决方法可以让我们在不需要功能选项菜单的页面上拥有可用的主页按钮?
答案 0 :(得分:0)
你可以试试这个..
toolbar.setNavigationOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent =new Intent(Context,<Destination activity);
startActivity(intent);
}
});
希望它会帮助你..