Android 无法自定义Actionbar';s向上导航方法
在activity类中,我将actionbar设置为: MyActivityAndroid 无法自定义Actionbar';s向上导航方法,android,android-actionbar,kotlin,Android,Android Actionbar,Kotlin,在activity类中,我将actionbar设置为: MyActivity setSupportActionBar(findViewById(R.id.toolbar_my)) supportActionBar?.apply { setDisplayHomeAsUpEnabled(true) setDisplayShowHomeEnabled(true) } 因为我需要重写onOptionsItemSelected(…)(在fragment类中
setSupportActionBar(findViewById(R.id.toolbar_my))
supportActionBar?.apply {
setDisplayHomeAsUpEnabled(true)
setDisplayShowHomeEnabled(true)
}
因为我需要重写onOptionsItemSelected(…)
(在fragment类中),所以我没有在这里重写onSupportNavigateUp()
。
这种活动是一个片段。我想要的是,当单击actionbar up按钮时,除了弹出,还要撤销一个自定义的save()方法
因此,在片段的onoptionItemSelected(…)
中,为item.id==android.R.id.home
案例编写一些代码。然而,我在这里做了一个转折点,发现当单击up/home按钮时,android.R.id.home
案例中的代码永远不会被撤销。所选方法上的其他项将起作用
在fragment类中:
MyFragment
override fun onOptionsItemSelected(item: MenuItem?): Boolean {
when (item?.itemId) {
android.R.id.home -> {
// code here not gets called when click up/home button
mPresenter.save()
return true
}
R.id.edit-> {
// The code here is revoked when item selected.
}
else -> {
return super.onOptionsItemSelected(item)
}
}
}
我试图重写activity类中的另一个onOptionsItemSelected(…)
方法,并编写了android.R.id.home
案例,但仍然无法调用其中的方法
为什么不调用item.id==android.R.id.home
案例中的代码?Read
启用或禁用操作栏角落中的“主页”按钮。
(请注意,这是操作上的应用程序主/向上提供。)
条,而不是系统范围的主按钮。)
然后
据我所知,这仍然是我的代码,但更改菜单项吗?类型到菜单类型类型?我试过了,还是没用。首先在代码中启用
setHomeButtonEnabled
对不起,我的错,它仍然不起作用。问题是,当单击up/home按钮时,它永远不会落入android.R.id.home案例中。
supportActionBar?.setHomeButtonEnabled(true)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.getItemId()){
android.R.id.home -> {
mPresenter.save()
return true
}
R.id.edit-> {
// some code
}
}
return super.onOptionsItemSelected(item)
}