ProZoom / Code

This is ProZoom's Blog
3 stars 1 forks source link

Android样式基础--Menu篇 #16

Closed ProZoom closed 3 years ago

ProZoom commented 7 years ago

Author:ProZoom

Hobby:爱折腾、爱思考,想静静的ProZoom

Github --- 简书 --- CSDN --- 关于我


Menu篇

Android系统自带的Menu很单一,但是它也支持自定义,接下来我们就来总结下Menu的用法

Menu样式的定义

Android的Menu样式一般定义在res/menu/文件目录下,其中有一个根元素< menu >,他们只有两个子标签:

分别用于设置菜单项和分组

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <group >
        <item>
            ......        
        </item>

        <item>
            ......        
        </item>
    </group>

    <item >

    </item>

</menu>

接下来各自介绍每个标签的属性和相应的值

group属性

用于设置分组

item属性

用于设置菜单项

Menu编程

Menu菜单重写

重写菜单需要重载以下一个方法:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
  //方法一:代码构建,不需要xml
  menu.add(Menu.NONE, Menu.NONE, 1, "菜单1");  
  menu.add(Menu.NONE, Menu.NONE, 2, "菜单2"); 
  //方法二:
  getMenuInflater().inflate(R.menu.menu文件, menu);  

  return super.onCreateOptionsMenu(menu);
}

menu菜单响应

 @Override
public boolean onOptionsItemSelected(MenuItem item){
  switch (item.getItemId()){
      case ......
  }
  return super.onOptionsItemSelected(item);
}