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

Gáb*_*bor 6 android toolbar android-appcompat

当使用Toolbar带有appcompat支持库的new时,在我看来,除非您设置有效的选项菜单,否则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);
  }
}
Run Code Online (Sandbox Code Playgroud)

如果有一个菜单设置onCreateOptionsMenu(),onOptionsItemSelected()将被调用所有权利,android.R.id.home一切都很好.但是,如果根本没有onCreateOptionsMenu()(或者它是空的,无论是返回true还是调用该super函数),onOptionsItemSelected()都不会被调用,因此没有机会捕获Home按钮上的点击.我甚至试图通过一个空菜单,onCreateOptionsMenu()但它没有帮助.

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

Shi*_*ote -1

你可以试试这个..

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

希望它能帮助你..