SetHomeButtonEnabled不工作但setDisplayHomeAsUpEnabled正在工作

时间:2015-05-26 16:50:53

标签: android

我想在操作栏中为应用程序中的所有活动添加应用程序图标,并点击图标,我想导航到我的应用程序的主页。

我尝试使用onCreate中的以下代码

ActionBar actionBar = getSupportActionBar();
actionBar.setLogo(R.drawable.ic_launcher);
actionBar.setDisplayUseLogoEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setHomeButtonEnabled(true);

现在应用程序图标出现在操作栏中,但点击它时,onOptionsItemSelected未被调用。但是如果使用actionBar.setDisplayHomeAsUpEnabled(true)而不是actionBar.setHomeButtonEnabled(true),则会使用item.getItemId()调用onOptionsItemSelected。以下是代码段

ActionBar actionBar = getSupportActionBar();
actionBar.setLogo(R.drawable.ic_launcher);
actionBar.setDisplayUseLogoEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);

文档说使用setDisplayHomeAsUpEnabled和setHomeButtonEnabled,将调用onOptionsItemSelected,唯一的区别是向上箭头。我不需要操作栏中的向上箭头,我只需要应用程序图标。怎么办?

我的minSdkVersion 14和targetSdkVersion 21.

2 个答案:

答案 0 :(得分:16)

来自http://developer.android.com/reference/android/app/ActionBar.html#setHomeAsUpIndicator(int)

您可以使用:

actionBar.setHomeAsUpIndicator(R.drawable.ic_launcher);
actionBar.setDisplayShowHomeAsUpEnabled(true);

这应该用你的图标替换后箭头

答案 1 :(得分:4)

你可以用这个:

Toolbar toolbar = (Toolbar) findViewById(R.id.myToolbar);
toolbar.setNavigationIcon(R.drawable.ic_back);
setSupportActionBar(toolbar);
toolbar.setNavigationOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View view){
    finish();
    }
});