如果没有选项菜单,工具栏主页按钮不起作用

时间:2015-01-06 13:50:19

标签: android toolbar android-appcompat

将新的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}},但它没有帮助。

是否有一种解决方法可以让我们在不需要功能选项菜单的页面上拥有可用的主页按钮?

1 个答案:

答案 0 :(得分:0)

你可以试试这个..

toolbar.setNavigationOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent =new Intent(Context,<Destination activity);
startActivity(intent);
}
});

希望它会帮助你..