美文网首页开发技巧Android
Android样式基础--Menu篇

Android样式基础--Menu篇

作者: ProZoom | 来源:发表于2017-08-14 16:32 被阅读85次

    Author:ProZoom

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

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


    Menu篇

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

    Menu样式的定义

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

    • < group >

    • < item >

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

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

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

    group属性

    用于设置分组

    • android:checkableBehavior 表示菜单项是否带复选框。该属性可设计为true或false
    • android:enabled 菜单项默认状态是否被激活,该属性可设计为true或false
    • android:id group的id号
    • android:menuCategory 同种菜单项的种类,该属性可取4个值:Container、system、secondary和alternative。通过menuCategroy属性可以控制菜单项的位置。例如将属性设为system,表示该菜单项是系统菜单,应放在其他种类菜单项的后面
    • android:orderInCategory 同种类菜单的排列顺序。该属性需要设置一个整数值,每个item的优先级,值越大优先级越低,actionbar地方不够就会放到overflow中
    • android:visible 菜单项默认状态是否可视,该属性可设计为true或false
    item属性

    用于设置菜单项

    • android:visible 与<item>标签的同名属性含义相同。只是作用域为菜单组
    • android:orderInCategory 与<item>标签的同名属性含义相同。只是作用域为菜单组
    • android:menuCategory 与<item>标签的同名属性含义相同。只是作用域为菜单组
    • android:id 表示菜单组的ID
    • android:enabled 与<item>标签的同名属性含义相同。只是作用域为菜单组
    • android:actionLayout
    • android:actionProviderClass
    • android:actionViewClass
    • android:alphabeticModifiers
    • android:alphabeticShortcut
    • android:checkable 表示菜单项是否带复选框。该属性可设计为true或false
    • android:checked 如果菜单项带复选框(checkable属性为true),该属性表示复选框默认状态是否被选中。可设置的值为true或false
    • android:contentDescription
    • android:icon
    • android:iconTint
    • android:iconTintMode
    • android:numericModifiers
    • android:numericShortcut
    • android:onClick
    • android:title
    • android:titleCondensed
    • android:tooltipText
    • app:showAsAction

    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);
    }
    

    相关文章

      网友评论

        本文标题:Android样式基础--Menu篇

        本文链接:https://www.haomeiwen.com/subject/qxwurxtx.html