如何在 ActionBar 中设置自定义后退按钮?

How to set a custom back button in ActionBar?

我正在以这种方式创建一个 ActionBar(SupportActionBar,更准确地说):

android.support.v7.app.ActionBar actionBar=getSupportActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
    actionBar.setDisplayShowTitleEnabled(true);
    actionBar.setHomeButtonEnabled(true);
    actionBar.setDisplayHomeAsUpEnabled(true);
    //actionBar.setDisplayOptions(actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE););
    actionBar.setIcon(R.drawable.ic_drawer);
    actionBar.setTitle(mTitle);

通过这种方式,我在操作栏中获得了一个按钮,单击该按钮后,它就会执行我希望它执行的操作。但是,它显示一个指向左侧的箭头。我想显示另一个可绘制对象,所以我取消注释 setDisplayOptions 行,然后显示我想要的图标。但是,该按钮不再可点击。

如何将我的可绘制对象设置为按钮,并使其保持可点击状态?

改用setHomeAsUpIndicator()方法

actionBar.setHomeAsUpIndicator(R.drawable.ic_drawer);

如果你想要后退箭头按钮,只需使用下面的代码:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    val ab = actionBar
    ab?.setDisplayHomeAsUpEnabled(true)
    getSupportActionBar()?.setDisplayHomeAsUpEnabled(true);
}

override fun onOptionsItemSelected(item: MenuItem?): Boolean {
   finish()
   return super.onOptionsItemSelected(item)
}