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

    技术2022-07-11  107

    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的个别原因

    Processed: 0.017, SQL: 10