如何在Android布局文件中实现两个带下拉选项的菜单图标并排显示
解决Android双下拉菜单图标并排显示的问题
嘿,我一眼就瞅出你遇到的问题根源啦!你现在的菜单XML结构不对——直接在父<item>里嵌套子<item>是行不通的,Android要求每个下拉菜单必须用<menu>标签把子菜单项包裹起来,不然系统会把所有子项都归到默认的选项菜单里,而不是对应图标的下拉列表中。
修正后的菜单XML代码
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <!-- 排序下拉菜单 --> <item android:title="@string/menu_sort" android:id="@+id/menu_sort" app:showAsAction="always" android:icon="@drawable/ic_baseline_sort_24"> <!-- 用<menu>标签包裹子菜单项 --> <menu> <item android:title="Distance"/> <item android:title="Salary"/> <item android:title="Date Posted"/> </menu> </item> <!-- 筛选下拉菜单 --> <item android:title="@string/menu_filter" android:id="@+id/menu_filter" app:showAsAction="always" android:icon="@drawable/ic_baseline_filter_list_24"> <!-- 同样用<menu>标签包裹子菜单项 --> <menu> <item android:title="Freelance"/> <item android:title="Zero Hour"/> <item android:title="Part Term"/> <item android:title="Internship"/> </menu> </item> </menu>
关键说明
- 每个需要下拉功能的父
<item>内部,必须嵌套一个<menu>标签,所有子菜单项都要放在这个<menu>里面,这样系统才会识别出这是对应图标的下拉菜单。 app:showAsAction="always"这个属性确保两个图标会一直显示在Toolbar/ActionBar上,不会被挤到溢出菜单里(只要Toolbar有足够空间)。
这样修改之后,两个图标就能并排显示,点击各自的图标时,会弹出对应的下拉子菜单啦!
内容的提问来源于stack exchange,提问作者TheIgnobleSavage
相关产品推荐
相关产品推荐

