当在写一个Android应用时,要记住Android设备有很多不同的屏幕尺寸类型。要保证内容能适应多屏幕尺寸以及屏幕朝向。
Panels是一个很好的能实现这个要求的方法。当横向时,有很多空间,它们允许你把多个视图结合成一个复合视图,当可用空间比较少的时候,它们会把内容分割开。
& 把多个视图结合成一个:在小的设备上,典型的安排是分成一个主要的grid或list视图和一个detail视图。点击一个项目后,进入detail视图。但因为平板上有很多空间,你可以使用panels把多个相关的list和detail视图结合成一个复合的视图。这可以更有效地使用多余的空间,并且使应用导航更为简单。
& 复合视图和朝向改变(与平板有关,先略过)
有效地导航也是一个良好设计要关心的部分。用Swipe,可以通过一个简单的手势来实现从一个item到另一个item的转换,使浏览和使用数据变得更为流畅。
& 在Detai视图间Swipe
在之前的设计里,比如邮件,是分为一个List视图和一个Detail视图,点击进入一个item之后,要看其他的item,只能退出去后再点击进入。这叫“pogo-sticking”。
现在可以通过使用Swipe手势来导航上一个/下一个 视图。
& 在Tabs间Swipe
如果使用Action Bar tabs,使用Swipe在不同的视图间进行切换。
Android 3.0 开始,长按手势的作用全局性的变为了数据选择。这影响你处理多选择和上下文Actions的方式。
& 变化
之前长按的效果是显示上下文Actions,在3.0之后,用作选择数据,把上下文Action和selection management function 结合成一个新的元素,叫作CAB(contextual action bar)
& 使用 CAB
这个CAB是一个暂时性出现在你的应用当前的Action Bar位置的一个东西。出现在长按一个item之后。在这里,用户可以进行下列操作:
& 选择CAB Actions
你可以决定在CAB上放哪些Action。可以参考Action Bar pattern指引,来决定哪些item是可以放到CAB里的。
& 动态调整CAB Actions
大多数情况下,当用户选择了很多的item之后,CAB需要有一个动态的变化。
Action Bar是一个很重要的元素。主要目的如下:
要注意,Action Bar是一个重要的元素。
& 通常的安排
一般是分成四个部分
& 适应旋转以及不同尺寸的屏幕
写一个应用时一个重要的UI 问题就是如何适应屏幕旋转和不同尺寸的屏幕。你可以通过使用split action bars来适应这种变化,就是把action bar 内容分配到不同的bars里,这些可以位于main action之下,或者在屏幕最下。
& Split Action Bars布局考虑
如果是这样的布局,一般分成三个部分:
如果用户可以回到上层界面,Main action 要包括一个小的箭头
如果允许用户快速在应用的界面间切换,可以在top bar里使用Tabs或spinner
如果要显示Actions,或者action overflow,使用Bottom bar
参见上文
Tabs:
如果希望用户经常在几个部分间切换,可以使用Tabs。 有两种Tabs:固定的(fixed)跟可滑动的(scrollable)
Scrollable:经常占据整个Bar的宽度,当前的活动View在中间位置,因此需要在一个专用的Bar里。可以自己水平的scroll,来显示更多其他的view。使用情况:如果有很多的Views或者你不确定有多少Views,因为可能是动态添加的。Scrollable Tabs应该总是允许用户通过左右Swipe来切换Views。
Fixed Tabs:固定的Tabs不能被移动,当屏幕朝向变化时,它可能会被移动到Top bar位置去。
Spinners:
在这些情况下使用Spinners,而不是Tabs:
Action buttons:
要分清楚哪些Action是经常使用的,并根据这个来安排它们的位置。应该显示最常用的Actions,把其他不是常用的放到overflow里。如果一个Action在当前不被使用,把它隐藏掉,而不是显示为不能用。
使用FIT表来分辨优先级。如果FIT中有一个适用,就把它放到Action bar,否则就放到Action overflow里。
Action overflow:
把不常用的Action放到这里。这个东西只出现在没有实体按键的手机里。如果有menu实体按键的手机,就可以通过点击menu按来显示Action icon。
在Action bar里能放多少个图标,也有一定的要求。参见这部分的guide。
Sharing data:
任何时候你想分享数据,比如图片或电影,在你的Action bar里使用share action provider。这个Share action provider是用来加速分享。
总结:
在说干计划分割Action bars的时候,问以下问题:
提示系统允许你的应用给用户提示重要的事件,比如信息之类的东西。但是太多的,不重要的信息会打扰用户,所以要慎重地使用。
& 何时使用:
创建一个用户喜欢的应用,要意识到,用户的注意力和焦点是一个应该受保护的资源。也就是不要随便打断用户的注意力。创建一个Notification是一个要小心的事。
Notifications应该被使用在时间敏感事件上,尤其如果这些事件还包括了其他人。比如信息,是时间敏感的,并且包括了其他的人;日历提醒,也是这样的。
& 不应该使用:
& 设计指导:
& 交互:
一般的提示可以通过左右Swipe来取消掉,但是进行中的(ongoing)提示不能被取消,如音乐播放或者下载之类的操作。
& 流程和结构:
& 设计
用虚拟导航控制的手机,在Action Bar里有一个Button,也就是overflow部分,可以放很多的选项;
实体的机子,用menu键来替代overflow这个Button,但弹出来的内容显示在屏幕底部,而不是在顶部。
遗留下来的问题:如果是为2.3开发的应用,则会在导航Bar的最右边出一个action overflow,用来显示menu。
不要跟其他平台上设计得一样。
& 不要模仿其他平台上的元素:
不要把其他平台上的UI元素以及它们的行为拿过来使用。如果想要息定义UI元素,要根据自己的产品来做,而不要根据一个不同的平台来做。
& 不要搬抄其他平台特殊的图标:
当你把一个应用从其他平台移植过来的时候,注意要准备一份Android上的图标副本
& 不要使用底部Tab bars:
有些平台使用底部的Tab bars来切换界面。在Android里,切换界面的Tab bars一般在顶部,而在底部是用来显示split action bar 。
& 不要硬编码链接到其他应用:
如果要使用其他的应用,不要在代码里写死要用哪个其他的应用,而是用Android intent API来打开一个选择页面,让用户选择用哪个相关应用来处理这个事件。如果是分享的话,考虑使用Action bar里的Share Action Provider 来处理分享事件。
& 不要在Action bars里使用带标签的返回按钮:
不要像IOS里的返回那样。
& 不要在item里使用向右箭头