Creating TV Navigation
https://developer.android.google.cn/training/tv/start/navigation.html
TV 使用的是遥控器,所以要多考虑导航
Enable D-pad Navigation
Android framework自动地处理布局元素之间的方向导航操作,一般情况不需要特殊处理,但还是要测。
测是否能到达所有可见控件、列表的选中、滚动、控件间来回是可预测的等。
Modifying directional navigation
默认属性不合适时,可以手动修改
<TextView android:id="@+id/Category1"
android:nextFocusDown="@+id/Category2"\>
我们应该设置导航顺序为一个循环,最后一个控件返回至第一个焦点。
Provide Clear Focus and Selection
给每个操作提供清晰的响应,基本上就是控件 focus 、选中时的动画、selector等效果。如果一个控件没有设置额外的选中效果,用户会找不到焦点。
<!-- res/drawable/button.xml -->
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/button_pressed" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/button_focused" /> <!-- focused -->
<item android:state_hovered="true"
android:drawable="@drawable/button_focused" /> <!-- hovered -->
<item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>
比如 在按钮上使用
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/button" />