菜单在一个短暂出现的材料上显示一列选项。
用户单击按钮、操作图标或其他控件可以打开菜单。菜单上显示一系列的选项,每行显示一个选项。
如果不适用于特定的页面内容,菜单项可能被禁用。与页面内容相关的菜单将根据当前应用状态动态改变可用的菜单项。
用户单击按钮、操作图标或其他控件可以打开菜单。菜单上显示一系列的选项,每行显示一个选项。
如果不适用于特定的页面内容,菜单项可能被禁用。与页面内容相关的菜单将根据当前应用状态动态改变可用的菜单项。
菜单是一片临时的材料,由按钮、操作图标、指示器或其他控件触发。它至少包含两个菜单项。
每一个菜单项都由一个独立的选项或操作组成,它可以影响应用、视图、或视图中的选定元素。
菜单不应该用作应用中主要的导航方法。
按钮或控件的标签应该简明、准确的反映出菜单中的菜单项。菜单栏通常使用一个单词作为标签,像 “文件” 、 “格式” 、 “编辑” 和 “视图” 。其他内容可能会有更长的标签。
菜单显示一组一致的菜单项。每个菜单项可以基于应用的当前状态来启用或禁用。
上下文菜单能够根据应用的当前状态动态的改变可用的菜单项。
单个菜单项状态
一些应用状态会导致上下文菜单只含一个菜单项。例如,当选中网页上的文本时,Android 只显示 “复制” 菜单项,因为用户不能剪切或粘贴文本。
如果菜单的高度不足以显示所有的菜单项,那么菜单可以内部滚动。一个典型的例子是在手机横屏状态下查看菜单。
对于级联菜单,根据其与屏幕边缘的距离,垂直和水平地定位菜单。
开发人员注释:此组件的实现可能因平台而异。通过使用标准平台实现,您将收到任何相关的进一步改进。
每一个菜单项都只能使用单行文本(一个单词或短语)来描述被选中时执行的操作。
菜单项还可以包括:
带有静态内容的菜单应该在菜单的顶部放置最常用的菜单项。
带有动态内容的菜单可能具有其他行为,例如在菜单的顶部放置之前使用过的字体。顺序可以根据用户的操作而改变。
菜单项可以显示嵌套的子菜单。最好只嵌套一层,因为导航多级嵌套的子菜单会比较困难。
将菜单项禁用,而不是移除,这样可以让用户知道在正确的条件下它们是可用的。
例如,当没有东西可以恢复时,“恢复”菜单项是禁用的。在内容被选中之前,“剪切” 和 “复制” 菜单项是禁用的。
菜单出现在所有其他应用内部的 UI 元素上面。
菜单显示在触发它的元素的位置,当前选中的菜单项显示在触发它的元素的顶部。
不要重复显示已选中的菜单项。
菜单不要放在触发它的元素的下面。
触摸菜单外部或触发菜单的元素可以关闭菜单。
选择了一个菜单项后也应该关闭菜单。一个例外是当菜单允许选择多个项目时,例如通过使用复选标识。
在列表中使用简单菜单显示特定列表项的选项。
当靠近屏幕边缘时,简单菜单垂直对齐,使所有菜单项完全可见。
消除歧义:与简单菜单相反,简单对话框可以呈现与可用列表项相关的附加细节,或提供与主要任务相关的导航或正交操作。尽管它们可以显示相同的内容,但是简单菜单比简单对话框更好,因为简单菜单对用户的当前上下文干扰较小。
选择一个选项将立即提交该选项并关闭菜单。
触摸菜单外部,或按下系统后退按钮,会取消操作并关闭菜单。
当简单菜单打开时,会尝试将当前选定的菜单项与列表项垂直对齐。当前选定的菜单项将高亮显示。
不要随意地把第一个菜单项置于列表项上。
当靠近屏幕边缘时,简单菜单会重新定位进行垂直对齐,以使所有菜单项完全可见。
简单菜单出现在触发它的元素上,而不是下面。
菜单宽度取决于字符串长度,在移动设备上定义为 56dp 单位的倍数。
简单菜单通常和屏幕的左右边缘保持 16dp(手机)或 24dp(平板)的距离。
如果简单菜单中的文本需要换行,请改用简单对话框。简单对话框可以有不同高度的行。
在内容可以滚动时,菜单会显示一个持续显示的滚动条。
简单菜单的最大高度应该比视图高度低一行或多行。这确保了在简单菜单外面留出一部分可点击区域,用于关闭菜单。
不要重复显示菜单项。
简单菜单始终与列表项文本的开头左对齐,且不会基于触摸位置重新水平定位。
规范提供了不同平台上,不同大小及不同菜单类型的尺寸标准。在菜单顶部和底部添加 8dp 的内边距。
菜单的字体样式由Material 排版比例来决定。
默认情况下,菜单使用:16sp(移动设备上),15sp(桌面端)
密集型界面上使用:14sp(移动设备上),13sp(桌面端)