No se puede agregar y eliminar la opción de menu del fragment y del panel de navigation

Tengo un problema de ocultar y agregar el elemento de menu en fragment y panel de navigation ya que en mi aplicación tengo logout y agregando menu de contacto y quiero configurar la opción de cerrar session en todos, pero no necesito agregar un button de contacto en toda la pantalla . Como mi aplicación contiene cuatro fragments de tabs de buscapersonas y un cajón de navigation. He agregado mi menu a través del menu XML. Y quiero mi opción de cierre de session en todos los fragments del panel de navigation pero agregando contacto solo en mi primer fragment de pestaña.

Aquí está el código de actividad principal:

override fun onCreateOptionsMenu(menu: Menu): Boolean { val menuInflater = menuInflater.inflate(R.menu.main, menu) val menuLogout = menu.findItem(R.id.logout) val menuadd = menu.findItem(R.id.iadd_contact) return super.onCreateOptionsMenu(menu) } override fun onOptionsItemSelected(item: android.view.MenuItem): Boolean { when (item.itemId) { R.id.logout -> { postLogout(path, params) { response -> } } return true R.id.iadd_contact -> { val intent = Intent(Intent.ACTION_INSERT) intent.setType(ContactsContract.Contacts.CONTENT_TYPE) startActivity(intent) return true } } return super.onOptionsItemSelected(item) } 

¿Qué sucede con eso cuando me muevo del fragment A al Fragmento B? Quiero que solo el button de cierre de session se habilite y agregue el contacto deshabilitado y luego cuando vuelvo nuevamente del Fragmento B al Fragmento A, mi menu de agregar contacto también se deshabilita pero quiero estar en el Fragmento A solo y como sucede cuando abro mi panel de navigation

Y en fragment he establecido mi código así:

 override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) { super.onCreateOptionsMenu(menu, inflater) menu!!.removeItem(R.id.iadd_contact) } 

y oncreateview:

 override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { // TODO Auto-generated method stub setHasOptionsMenu(false) rootv = inflater!!.inflate(R.layout.edit_profile, container, false) activity.invalidateOptionsMenu() return rootv } 

Simplemente quiero que mi R.id.iadd_contact en mi primer fragment de tabulación lo habilite y en el rest del fragment lo deshabilite así que debido al fragment de la stack de respaldo o al mover de nuevo desde otro fragment al primer fragment de tabulación, mi agregado R.id.iadd_contact también se eliminará .

primera anulación en Crear método

 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setHasOptionsMenu(true) } 

Y luego infle el menu en su fragment

 override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) { super.onCreateOptionsMenu(menu, inflater) menu!!.clear() inflater!!.inflate(R.menu.main, menu) }