设置toolbar menu的两种方式,以及onCreateOptionsMenu不执行的原因

toolbar设置menu菜单两种方式:
第一步:setSupportActionBar(toolbar)
第二步:supportActionBar?.setDisplayHomeAsUpEnabled(true)

第三步:override fun onCreateOptionsMenu(menu: Menu?): Boolean {
    DBUtils.lastUser?.let {
        if (it.id.toString() == it.last_authorizer_user_id)
            if (currentShowPageGroup) {
                menuInflater.inflate(R.menu.menu_rgb_group_setting, menu)
            } else {
                menuInflater.inflate(R.menu.menu_rgb_light_setting, menu)
                findItem = menu?.findItem(R.id.toolbar_f_version)
                findItem?.title = getString(R.string.getVsersionFail)
                findItemChangeGp = menu?.findItem(R.id.toolbar_fv_change_group)
                findItemChangeGp?.isVisible = true
            }
    }
    LogUtils.v("zclmenu------------------$localVersion-----${DBUtils.lastUser}")
   return super.onCreateOptionsMenu(menu)
}

第四步:override fun onPrepareOptionsMenu(menu: Menu?): Boolean {//用于添加监听 return super.onPrepareOptionsMenu(menu) }

实现toolmenu第二种方式

toolbar.inflateMenu(R.menu.menu_rgb_light_setting)

val item = toolbar.menu.getItem(R.id.toolbar_f_rename)//获取item进行重新赋值
toolbar.setOnMenuItemClickListener(menuItemClickListener)

注:如果使用的第二种方式 onCreateOptionsMenu不执行,如果需要onCreateOptionsMenu执行就需要实现第一种方式的前两步,以上均为自己发现不执行onCreateOptionsMenu的个别原因

你可能感兴趣的:(设置toolbar menu的两种方式,以及onCreateOptionsMenu不执行的原因)