[英]How to inflate menu on actionbar on the left
我在頂部操作欄中有一個菜單,該菜單允許您更改密碼,編輯其個人資料並注銷。 我需要的是,一旦他們單擊“編輯個人資料”選項,我想在左側的操作欄中添加箭頭或“ <”,如果用戶要退出編輯菜單,則允許用戶使用“返回”選項配置文件,以及在編輯時隱藏右側菜單選項。 這是我的右側菜單的代碼:
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)
}
我真的很想了解其工作原理。 有人能幫我嗎? 我也可以只用箭頭或“ <”代替右邊的菜單,盡管我不太喜歡這個主意。
怎么樣: setDisplayHomeAsUpEnabled()
R.id.editBio -> {
editProfileBio()
supportActionBar?.setDisplayHomeAsUpEnabled(true)
true
}
按下時處理:
override fun onBackPressed() {
super.onBackPressed()
// do your stuff when pressed the back Button
}
我也可以只用箭頭或“ <”代替右邊的菜單,盡管我不太喜歡這個主意 。
也不喜歡這個主意。 通過單擊editbio
時啟用后退Button
,您將可以訪問當前菜單,並且還將有一個后退Button
因此這似乎是實現此目的的理想方法。
您只需要聽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 }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.