You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 05:17:33