我希望Activity
填充Fragments
。每个Fragment
都表现为Windows操作系统中的一个窗口 - 它的Toolbar
带有标题和操作按钮:
片段:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Show Toolbar in Fragment
setHasOptionsMenu(true);
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_entries_list, container, false);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_common, menu);
}
问题:
Fragment
?修改
我现在修改了 menu_common.xml :
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_categories"
android:title="Categories"
android:visible="true"
app:showAsAction="never"/>
<item
android:id="@+id/action_settings"
android:title="Settings"/>
</menu>
片段
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ViewGroup view = (ViewGroup) inflater.inflate(
R.layout.fragment_entries_list, container, false);
// Toolbar
Toolbar toolbar = (Toolbar) view.findViewById(R.id.tb_actions);
toolbar.setTitle("Bar");
toolbar.showOverflowMenu();
setHasOptionsMenu(true);
// Inflate the layout for this fragment
return view;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_common, menu);
}
编辑2 :
这就是我想要实现的目标:
答案 0 :(得分:1)
- 如何更改片段的标题?
醇>
在您的片段中加入Toolbar
并致电toolbar.setTitle(String)
。
- 如何显示三点动作按钮?
醇>
正如您在this answer中看到的那样:
toolbar.showOverflowMenu();
答案 1 :(得分:0)
页面上似乎不可能有超过1 Toolbar
(至少我没有找到方法)。
我的解决方案是为每个TextView
使用自定义ImageView
和PopupMenu
(图标 - 按钮)以及Fragment
。