我在顶部操作栏中有一个菜单,该菜单允许您更改密码,编辑其个人资料并注销。我需要的是,一旦他们单击“编辑个人资料”选项,我想在左侧的操作栏中添加箭头或“ <”,如果用户要退出编辑菜单,则允许用户使用“返回”选项配置文件,以及在编辑时隐藏右侧菜单选项。这是我的右侧菜单的代码:
override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
inflater!!.inflate(R.menu.profiletoolbar, menu)
super.onCreateOptionsMenu(menu, inflater)
}
//get the actionbar selction when pressed
override fun onOptionsItemSelected(item: MenuItem): Boolean = when (item.itemId) {
R.id.userLogout -> {
FirebaseAuth.getInstance().signOut()
val i = Intent(context, Login::class.java)
startActivity(i)
true
}
R.id.editBio -> {
editProfileBio()
true
}
else -> super.onOptionsItemSelected(item)
}
我真的很想了解其工作原理。有人能帮我吗?我也可以只用箭头或“ <”代替右边的菜单,尽管我不太喜欢这个主意。
答案 0 :(得分:0)
怎么样:setDisplayHomeAsUpEnabled()
R.id.editBio -> {
editProfileBio()
supportActionBar?.setDisplayHomeAsUpEnabled(true)
true
}
要在按下时进行处理:
override fun onBackPressed() {
super.onBackPressed()
// do your stuff when pressed the back Button
}
我也可以将右侧菜单替换为 箭头或“ <”,尽管我不太喜欢这个主意。
也不喜欢这个主意。通过单击Button
时启用后退editbio
,您将可以访问当前菜单,并且还会有后退Button
,因此这似乎是一种理想的方法。 / p>
答案 1 :(得分:0)
您只需要听R.id.home选项
在您的片段中声明它需要重新绘制工具栏。
setHasOptionsMenu(true);
将工具栏设置为操作栏
private fun setActionBar() {
val toolbar = getActivity().findViewById(R.id.tb_main_toolbar)
if (toolbar != null) {
(getActivity() as AppCompatActivity).setSupportActionBar(toolbar)
}
val actionBar = (getActivity() as AppCompatActivity).supportActionBar
if (null != actionBar) {
customizeActionBar(actionBar)
}
}
private fun customizeActionBar(actionBar: ActionBar) {
actionBar.setDisplayHomeAsUpEnabled(true)
actionBar.setTitle(R.string.logout)
actionBar.setDisplayHomeAsUpEnabled(true)
actionbar.setDisplayShowHomeEnabled(true)
actionBar.setHomeAsUpIndicator(R.drawable.logout)
}
覆盖onOptionItemSelected并执行您的功能
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
android.R.id.home ->
FirebaseAuth.getInstance().signOut()
val i = Intent(context, Login::class.java)
startActivity(i)
true
}
return true
}