菜单Menu的使用
菜单Menu
一.OptionMenu
1.实现步骤
① 在onCreateOptionsMenu(Menu menu)中创建菜单
② 在onOptionsItemSelected(MenuItem item)中点击事件
2.菜单2种创建
① 布局样式进行加载
getMenuInflater().inflate(R.menu.mian_menu,menu);
<item
android:id="@+id/action1" 设置ID
android:title="标题一" 设置标题
android:orderInCategory="80" 设置排序
app:showAsAction="always"> 设置显示方式:always总是显示 never 从不显示 ifRoom有空间就显示
</item>
② 代码实现
menu.add(int groupId, int itemId, int order, CharSequence title);//组号,唯一id,排序(小的在前面),标题
3.属性
id / title / smallIcon必须有的属性
orderInCategory 优先级
showAsAction always(总是显示出来) never(不显示出来) ifRoom(有位置显示) collapseActionView withText
withText withText值示意Action bar要显示文本标题。Action bar会尽可能的显示这个标题,但是,如果图标有效并且受到Action bar空间的限制,文本标题有可能显示不全。
collapseActionView 声明了这个操作视窗应该被折叠到一个按钮中,当用户选择这个按钮时,这个操作视窗展开。否则,这个操作视窗在默认的情况下是可见的,并且即便在用于不适用的时候,也要占据操作栏的有效空间。
一般要配合ifRoom一起使用才会有效果。
二.ContextMenu
1.实现步骤
① registerForContextMenu(View view) 为一个view注册上下文菜单
② onCreateContextMenu() 中生成上下文菜单
③ onContextItemSelected() 中响应上下文菜单项
两种菜单的区别:
OptionMenu的拥有者是Activity,ContextMenu的拥有者是View.
OptionMenu的注意事项
在 Android菜单设计(1) : 使用xml文件布局创建 options menu文章中,初步认识了选项菜单。但是在实际开发中,还是需要注意几个问题,该篇讨论相关问题。
进入正式话题之前,需要了解一些东西。
1. 使用xml方式创建选项菜单
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/new_game"
android:icon="@drawable/ic_new_game"
android:title="@string/new_game" />
<item android:id="@+id/help"
android:icon="@drawable/ic_help"
android:title="@string/help" />
</menu>