簡體   English   中英

如何為左側操作欄上的菜單充氣

[英]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選項

  1. 將工具欄添加到活動布局。
  2. 在您的片段中聲明它需要重新繪制工具欄。

    setHasOptionsMenu (true);

  3. 將工具欄設置為操作欄

     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) } 
  4. 覆蓋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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM