【核心提示】本次我们将围绕设计错误展开话题,指出在Android开发领域人们在设计App导航时常犯的一些错误,以便更好的避开他们。大家好,这里是2014年第一期的ADiA官方教程,在上一篇设计失误的文章中,我们简单提到了导航设计中的失误。这一次,我们将围绕这个主题展开,并指出人们在设计应用程序导航时经常犯的一些错误,以便更好地理解。避开他们。Top10导航设计“反模式”,Android开发者联系团队为大家呈现~希望大家看到(good)get(good)开(中)心(gun)~1.将导航item放在Action中Overflow我应该不止一次看到人们将导航项放在各种应用程序的ActionOverflow中。ActionOverflow中经常放置的导航有“首页”、“店铺”、“我的信息(微信、推特截图)”,甚至还有一些分类。但是ActionOverflow确实不是导航项应该去的地方。别忘了这个地方是ActionOverflow,是用来操作的。另一个非常重要的原因是,在许多带有菜单按钮的手机上,应用程序中不会显示操作溢出。还得靠Menu键叫出来,能见度太低,Menu键问题很大。堆问题(这里不展开)。另外很重要的一点是,在现在的Android上,界面UI已经逐渐形成了规则——左侧导航,右侧操作。如果你硬要把导航放到ActionOverflow中,你无形中就违反了这条规则。2.错误的导航级别这个错误也很常见。在Android中我们有很多常用的导航方式,比如Tabs、Spinners和Drawer。当然,这些导航方法可以一起使用,但是当你一起使用这些导航方法时,请注意它们之间的层次关系。当您规划导航层次结构时,通常会构建一个树结构,一个级别有其他子级别,等等。在Android中,不同的层级一般对应不同的导航方式。错误的用法是,如上图,将Tab作为顶层导航层,Spinners作为子层,Drawer作为底层。在Android上,这三种导航方式对应的level有比较严格的规定。上图是正常情况下正确的做法。通常,抽屉(如果有)代表最高级别的导航,然后是微调器,然后是选项卡。如果你的导航层次超过三层,我们强烈建议你把最上面的几层放在Drawer中(只有Drawer可以放多一层导航,因为Drawer中的item可以合理展开),然后再放其余两个级别分配给Spinners和Tabs。当然,其实作为一款移动应用,简化层级也是非常重要的。我们强烈不建议您在您的应用程序中使用非常深的导航层次结构,这只会让用户感到困惑。还有一点需要注意的是,虽然上图中Spinner和Drawer并存,看起来Spinner在ActionBar上(Drawer其实在ActionBar下面),但是在实际应用中,当用户绘制Drawer时,你应该让Drawer淡入另一种外观-只留下应用程序中的全局通用操作,例如搜索,隐藏其他东西,例如微调器,并将它们替换为应用程序的名称。这样就不会在导航层级上出现混乱。另外,关于Drawer,我们还有一期ADiA:AndroidDesignTrends专门针对它——NavigationDrawer。3.无法滑动切换的标签。在Android中,Tab几乎是绑定了横向滑动的操作。用户对Tabs的期望是可以滑动。如果在页面中使用分页(ViewPager)内容,那么内容上的滑动操作会和Tabs的全局滑动混淆。当然,如果页面只有一小部分是可滑动的内容——比如非全屏图片浏览,那么这样做是完全没问题的,只要不与Tabs本身的滑动手势冲突即可。正确的做法很简单,把水平的ViewPager改成垂直的就可以了。当然,如果你有其他的解决方案也没关系,只要避免手势与导航冲突即可。4.深/顽固的标签什么是“深”标签?说明深,一般来说,我们用“浅”来比喻。在Android上,Tabs应该很浅。您使用Tabs尝试更改或切换类别,并且Tabs内不应该有层次结构和历史记录。通常,Tabs应该只出现在导航界面中。在上面的示例中,当用户单击某个项目时,它应该打开一个全新的页面,而不是刷新Tabs下的内容。这种不断出现的tab就是我们所说的deeptab,或者tab里面有history。你不这样做的原因是当你离开这个Tab时,比如当你滑到另一个Tab时,你把这个Tab置于一个尴尬的境地——现在这个Tab(对于用户来说是看不见的)应该显示什么?当用户从另一个Tab回到这个Tab(无论是点击还是滑动)时,他应该保持原来的样子(显示内容)还是显示列表?在这种情况下,用户很容易感到困惑。为避免这种尴尬,我们建议将Tabs做得更浅。另外,如果你的Tabs保持不变,也会大大影响Back的功能。当用户切换到不同的Tab,并在这个Tab中进行一些操作时,Back的作用就变得不明确了。如果你非要在同一个视图中展示新的内容,那我们推荐你使用为全局内容切换而生的Drawer。上图是打开一个没有Tabs和Up的新界面的正确方式,而不是继续显示Tabs。5.回溯(反向遍历)Tabs前面提到的Tabs不要太深,也有提到Tabs不要包含历史。不包括历史是什么意思?这意味着你对Tabs的操作不能被Back回溯。不应回溯相同的导航级别。6、回溯(反向遍历)Drawer和Tabs一样,Drawer中的导航项不应该回溯。原因同上。当用户在不同的导航项之间切换时,您应该重置任务状态。在不同的导航项之间切换就像在不同的应用程序之间切换(例如,在Google+中,照片选项卡根本就是另一个应用程序......)。当用户按下返回时,你应该退出应用程序,或者回到应用程序的主界面——这里的主界面指的是自然状态下的初始界面,是你特别希望用户(同时用户也特别希望能够轻松地回到。7.DeepNavigationDrawer如前所述,移动应用程序不应具有复杂的结构。如果您需要很多导航层,那么您真正应该做的是简化您的应用程序结构。Drawer的意义在于提供了一个稳定的导航枢纽,让用户无需记住自己身处何处,只要打开Drawer自然而然地了解一切。但是,在Drawer中弹出一个辅助Drawer会让很多人抓狂。虽然Drawer有承载多级导航的能力,但正确的做法是不要这样做。当需要在Drawer中放置多个导航层级时,不应该弹出一个新的Drawer,而是应该以展开/折叠的方式呈现这个子层级。展开和折叠不会引起整个控件的剧烈变化,同时可以向用户展示更少和更多的项目。关于Drawer上的navigationitems和toucharea的设置,在AndroidDesign中有提到。如果你的导航层次真的很深,你可以做一个单独的子导航页面来显示所有的导航项。比如在PlayMusic中,曲库下的Tabs(艺术家、专辑、风格、曲目)其实可以做成Drawer中的二级导航项,但是分散到Tabs中可以更好的优化导航。(上图有点类似腹肌式的导航,当然不要只在上面写文字,可以往里面加点图片,内容预览什么的)8.错误的Drawertransition我们在什么时候这里说的transition,就是过渡动画,有Drawer的界面和没有Drawer的界面之间的切换。以下两个错误与此转换有关。当用户打开抽屉并按下其中一项时,他不应被带到带有向上箭头的新界面。抽屉中呈现的所有导航项都应在其界面中显示抽屉指示(例如,“汉堡包”)。而且,当用户通过Drawer从一个导航项进入另一个导航项时,他不应该看到标准的视图切换动画(淡入淡出+放大,进入新界面/新活动时常见),而是一个详细的和快速动画。的淡入+淡入动画在Drawer关闭时完成。同样的动画也应该应用在操作栏的过渡上。开发者另一个常见的讨论是使用Activity还是Fragment?这个问题没有标准答案,也很难回答。一般来说,这取决于情况——实施起来有多难?它对我的应用程序可靠吗?如果您有任何建议,欢迎您发表评论。上图显示了在操作栏上显示抽屉指示器的正确方法。9、不显示向上箭头上面说了,所有出现在Drawer中的导航页面都应该显示Drawer指示,反之亦然——没有显示在Drawer中的东西不应该显示Drawer指示。比如上图中,当用户输入某个内容时,Drawer指示器仍然显示。其实这个内容页已经不是导航页了,也没有显示在Drawer中。这是应用程序的更深层次,不再受Drawer控制。它应该出现在这里。在显示Up时,您还可以允许用户通过边缘滑动来调出Drawer。不必总是显示Drawer指示器来告诉用户可以调用Drawer,因为在二级界面调用Drawer是一种“高级用户操作”。有人发现了,那好,没有人发现,没关系,他们还是可以通过Up找回Drawer的。此外,您还可以查看GooglePlay报亭如何处理没有抽屉指示的抽屉-淡入淡出动画非常重要。10.导航靠右前面说过,Android有一个规则,就是“导航在左边,操作在右边”。对于从左到右阅读的用户,左侧导航项可以更好地强调导航层次。另外,由于Spinners只能出现在左边,所以Tabs往往会把最左边的设为默认,右边的Drawer离这些操作太远了。而且,抽屉指示器位于左侧,操作时会向左缩回。如果你使用右侧的抽屉,你会遇到各种视觉隐喻冲突。正确的做法如上图所示。当然,如果是在从右到左的语言环境下(比如希伯来语什么的,不过我觉得我们国家的开发者应该不太擅长适配希伯来语……),那么当然就是这些东西应该放在哪里逆转。这些都是本期ADiA中涵盖的十个导航设计错误。如果大家有更常见/不常见的错误,或者针对上面提出的错误有更好的解决方案,当然欢迎大家评论。***,一如既往地感谢+RomanNurik和+NickButcher的AndroidDesigninAction活动。原文地址:http://www.geekpark.net/read/view/199244
