Android Developers:针对电视机优化导航

Android Developers:针对电视优化导航直接的交互界面是用户使用电视用户体验的一个重要方面。当你针对电视

Android Developers:针对电视优化导航

直接的交互界面是用户使用电视用户体验的一个重要方面。当你针对电视优化你的Android应用的时候,你应该特别注意,当使用远程控制替代触摸时用户在你的应用程序中的实际导航。 

 

这节课程向你展示了通过如下如何针对优化导航: 

  • 确保所有布局控制对支持D-Pad。 

  • 对UI导航提供高度明显的反馈。 

  • 将布局控制放置便于访问。 

     

    处理D-pad导航 

    ——————————————————————————————————————————————————————

    在电视中,用户使用D-pad或者方向键运行导航控制。这限制了上,下,左,和右的运动。为了构建完美的电视优化应用,你必须一个导航方案,使用它用户能快速学习如何在远程导航你的应用。 

     

    当你针对D-pad设计导航的时候,遵守这些原则: 

    • 确保D-pad能导航到屏幕上所有的可见控件。 

    • 对于滑动列表焦点,D-pad上/下键滑动列表和输入关键字选择列表中的表项。确保用户能在列表中选择一个元素,并且当一个元素被选择的时候列表持续滑动。 

    • 确保控件之间的运动是简单的和可预示的。 

       

      Android通常在布局元素之间自动处理导航顺序,所以你不需要额外做任何事情。如果屏幕布局使导航变得困难,或者如果你想用户以一种指定的方式在布局上移动,你可以为你的控制设置明确的导航。例如,为一个android.widget.EditText,定义获取焦点的下一个控件,使用: 

      下面的表格列出了所有可用的导航属性: 

      Attribute 

      Function 

      nextFocusDown 

      定义了当用户向下导航的时候下一个获取焦点的视图。 

      nextFocusLeft 

      定义了当用户向左导航的时候下一个获取焦点的视图。 

      nextFocusRight 

      定义了当用户向右导航的时候下一个获取焦点的视图。 

      nextFocusUp 

      定义了当用户向上导航的时候下一个获取焦点的视图。 

      为了使用这些明确的导航属性,设置在布局中其它控件ID值(android:id值)。你应该设置循环的导航顺序,以至于最后的控件指引焦点返回到第一个。 

       

      注意:你应该仅当系统应用的默认顺序不能很好的工作的时候,使用这些属性来修改导航顺序。 

       

      为焦点和选择提供清晰可见的说明 

      ————————————————————————————————————————————————————————— 

      为在界面中所有的导航和可选择的元素使用合适的高亮颜色。这使得当使用D-pad导航的时候,用户知道这个控件当前是否获取焦点或者可选变得容易。并且,在你的应用中使用高度统一的计划。 

       

      Android提供Drawable State List Resourdes类实现被选中或者获取焦点控件的高亮效果。例如: 

      res/drawable/button.xml: 

      XML布局在一个按钮中应用上面的状态列表图片: 

      在可获取焦点和可被选择的控件之间提供足够的填充,以至于在它们周围的高亮是清晰可见的。 

       

      设计便于导航 

      —————————————————————————————————————————————————————————

      用户应该能通过几次D-pad的点击导航到任何UI控件。导航应该容易并直观的理解。对于一些不直观的动作,使用通过帮助按钮或者帮助栏触发的对话框,给用户提供书面的帮助。 

       

      预测用户想导航到的下一个屏幕,并提供一次点击导航到它。如果当前屏幕的UI非常稀疏,考虑使它成为一个多面板屏幕,使用Fragment来实现多面板屏幕。例如,看下面的多面板UI,大陆名称在左侧,并且在每个大陆很酷的地方列表在右侧。 

      Android Developers:针对电视机优化导航

      上面的UIyou由三个Fragment组成,left_size_action_controls,continents和placs,正如下面它的xml布局文件所展示。这样的多面板UI使D-pad导航更容易,并是充分利用了电视屏幕的横向控件。 

       

      res/layout/cool_places.xml 

      另外,注意上面的UI布局,动作控件是在左侧的一个竖直滑动列表,使得它们使用D-pad更容易访问。通常,对于使用横向滑动组件的布局,放置动作控件在左侧或者右侧,反之竖向滑动的组件。