中的独立菜单

Independent menus in

我有一个 Master-Detail Activity 包含两个片段:"A"(master)和 "B"(detail),每个片段在自己的工具栏中都有自己的菜单选项。 B 使用 CoordinatorLayout 具有 Material 设计效果。

如何在每个工具栏中放置不同的菜单?每次我要求充气时,他们都会复制两个片段中的菜单。即 A 有 1 和 2。B 有 3 和 4。创建片段后,A 有 1,2,3,4,B 有 1,2,3,4。查看问题:

我想将搜索和标签图标放在左侧片段的工具栏中,将 phone 和邮件图标放在右侧片段的工具栏中。

片段有自己的方式来告诉 activity 它们有自己的选项菜单,所以当您决定是否应该在 Master 中并排显示两个片段时,Detail 时尚传递一个额外的告诉片段来使用它的菜单然后执行:

  1. 让每个片段调用 setHasOptionsMenu(true) 告诉 Activity 调用 onCreateOptionsMenu(Menu menu, MenuInflater menuInflater).
  2. 在每个片段中覆盖 onCreateOptionsMenu(Menu menu, MenuInflater menuInflater) 并处理 onOptionsItemSelected(MenuItem menuItem)
  3. 中片段的点击

否则使用 setHasOptionsMenu(false),当未使用 Master Detail 时,并使用承载 Master 或 Detail Fragments

的每个 Activity 扩充菜单