Android Studio的Menu菜单的group属性用来给菜单项进行分组,以便对同一个group的菜单项进行统一操作。可以通过代码或者XML文件实现对菜单项的统一操作。
1 添加group元素
在菜单XML文件中添加group子元素,如图1所示。
图1 group元素
从图1中可以看到,添加了group子元素,并且设置了该元素的id属性。将三个菜单项放入该group中。
2 通过代码统一操作
可以通过setGroupVisible()、setGroupEnabled和setGroupCheckable()三种方法对分组的菜单项进行统一操作。
2.1 setGroupVisible()方法
setGroupVisible()方法的作用是显示或隐藏指定group中的菜单项。在《Android Studio中选项菜单的使用方法2-2》中提到的重写的创建选项菜单的onCreateOptionsMenu()方法中添加如图2所示的代码。
图2 setGroupVisible()方法
从图2中可以看到,setGroupVisible()方法的第一个参数即为指定group的ID,R.id.longclick_group1即为图1中指定的group的ID;第二个参数表示隐藏或者显示菜单项,true表示显示,false表示隐藏。
正常的选项菜单如图3所示,而执行了setGroupVisible()方法后的菜单如图4所示,可以看到,在同一个group下的菜单项“复制”、“剪切”和“粘贴”同时被隐藏了。
图3 正常的选项菜单
图4 执行了setGroupVisible()后的菜单
2.2 setGroupEnabled()方法
setGroupEnabled()方法的作用是使得指定group中的菜单项变得可用或者不可用。在onCreateOptionsMenu()方法中添加如图5所示的代码。
图5 onCreateOptionsMenu()方法
从图5中可以看出,onCreateOptionsMenu()方法的第一个参数是指定group的ID,第二个参数是false表示group内的所有菜单项都不可用,true表示都可用,产生的菜单如图6所示。
图6 执行了setGroupEnable()后的菜单