Edu*_*bas 16 android android-fragments android-dialogfragment android-toolbar
在我们的应用程序中,我们有一些片段可以显示为全屏片段或对话框片段.这些片段继承DialogFragment而且我们确保根据应用程序执行的模式(全屏或对话框)正确实例化它们.
Toolbar在使用Lollipop在支持库中引入窗口小部件的最新更改之后,我们考虑为其中一些对话框片段添加一些额外的功能.我们的想法是让我们通常在普通片段中使用的选项菜单类型(即onCreateOptionsMenu执行后膨胀的选项菜单)DialogFragment仅在我们的子类中出现时才会显示为对话框.简而言之:当片段以全屏模式显示时,我们会扩展传统的选项菜单,当片段显示为对话框时,我们希望在独立模式下使用相同的选项菜单,但使用新的工具栏小部件.
我按照http://android-developers.blogspot.dk/2014/10/appcompat-v21-material-design-for-pre.html中的步骤操作,然后设法"激活"工具栏,但似乎菜单是没有膨胀 - 参见附件截图(在全屏模式下图片一个片段,在对话框模式下图片二).
是否可以使用新工具栏中的选项菜单进行充气DialogFragment?


mml*_*loo 28
甚至可以使用DialogFragment中的新工具栏来扩展选项菜单吗?
首先你的设计是好的,工具栏应该用在每一个让我们看看这个来自Chris Banes谷歌工程师链接:
// Set an OnMenuItemClickListener to handle menu item clicks
toolbar.setOnMenuItemClickListener(
new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
// Handle the menu item
return true;
}
});
// Inflate a menu to be displayed in the toolbar
toolbar.inflateMenu(R.menu.your_toolbar_menu);
Run Code Online (Sandbox Code Playgroud)
以及android开发人员工具栏独立示例:
http://android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html
是的,DialogFragment具有setHasOptions()函数。在对话框的布局中定义工具栏,并像在活动中一样使用它。工具栏不介意处于活动,片段或对话框片段中。
确保您使用
setHasOptionsMenu(true) in onActivityCreated method....
Run Code Online (Sandbox Code Playgroud)
然后,像往常一样覆盖
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.my_menu, menu);
}
Run Code Online (Sandbox Code Playgroud)
和
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11054 次 |
| 最近记录: |