Toolbar menu

文档链接:https://developer.android.com/guide/fragments/appbar
目标:掌握Activity,Fragment关于Toolbar实现标题栏中菜单的相关操作。

自己的demo示例项目地址:https://github.com/MrXieD/BaseFramework/tree/master/contactroom

其中重要的几个地方:

1.如果项目中在宿主Activity中统一实现一个Toolbar即可,那么,对于不同Fragment,不同的菜单内容的实现方式应该在Fragment中调用Android系统菜单的API。
如:
setHasOptionsMenu,
onPrepareOptionsMenu,
onCreateOptionsMenu,
onOptionsItemSelected这几个。

2.对于使用1中的方式,动态修改菜单状态,应该是在onPrepareOptionsMenu方法中去对相应的菜单项做一些修改,此方法在每次菜单栏展开的时候都会调用。注意:此处的修改指的是菜单栏的显示,隐藏,置灰等状态修改,并非菜单栏结构的改动。如文档所示:

image.png

3.如果需要修改菜单栏,则需要
requireActivity().invalidateOptionsMenu(),最重要的是此方法会导致onCreateOptionsMenu重新调用。如文档所示:

image.png

4.如果Fragment需要自己在布局中添加Toolbar来实现自己的标题栏,那么不要用上面提到的系统API。
如文档所说:

image.png

此时,应该直接操作自己布局的toolbar的一些见名知意的API。如:viewBinding.myToolbar.inflateMenu(R.menu.sample_menu)

你可能感兴趣的:(Toolbar menu)