如果你曾经尝试用手写笔或轨迹球来导航移动电话的菜单系统,那么,你就会知道在移动设备上使用传统的菜单系统是笨拙的。
为了改进应用程序菜单的实用性,Android为小屏幕提供了三个阶段优化的菜单系统:
❑ 图标菜单
当Menu按钮按下时,这种紧凑的菜单(如图4-4)显示在屏幕的底部。它显示多达6个图标和文字的菜单项(子菜单)。
图4-4
这种图标菜单不把checkbox,radio button和快捷键作为菜单项进行显示,所以,一般好的习惯是不指定checkbox或radio button作为菜单项,因为它们将无法使用。
如果多于6个菜单项被定义,More菜单项包括在内,当选择时,显示扩展菜单。按下Back按钮关闭图标菜单。
❑ 扩展菜单
当用户从图标菜单中选择More菜单项时触发扩展菜单。扩展菜单(如图4-5)显示了一个可滚动的菜单项(那些不能在图标菜单中可见的菜单项)列表。这个菜单中可以显示全文字、快捷键、checkbox和radio button。
图4-5
然后,它不显示图标。所以,你应该避免指定图标给那些有可能只出现在扩展菜单中的菜单项。
按下Back按钮从扩展菜单回到icon菜单。
你不能强迫Android用扩展菜单来替代图标菜单显示。因此,你需要特别注意的是,那些checkbox或radio button菜单项只能在扩展菜单中使用或者它们的状态信息改用图标或文本来显示。
❑ 子菜单
传统的“扩展层次树”对于用鼠标导航来说是笨拙的,因此,毫不奇怪,这种东西在移动设备上使用尤其的不合适。Android变通的地方是使用一个漂浮的窗口来显示每个子菜单。例如,当用户选择图4-5中标明为Submenu的子菜单时,它的菜单项会显示在一个漂浮的菜单对话框上,如图4-6.
图4-6
注意:子菜单的名字显示在头条(Header bar)上,它的子菜单显示为全文本、checkbox(如果需要)和快捷键等。因为Android不支持嵌套的子菜单,所以你不能为子菜单添加子菜单(尝试会导致异常)。
和扩展菜单一样,图标也不显示在子菜单项中,所以,一个好习惯是避免指定图标给子菜单项。
按下Back按钮会关闭漂浮的窗口而不会导航回扩展菜单或图标菜单。