電視設(shè)備為應(yīng)用程序提供了一套有限的導(dǎo)航控件杖刷。為你的應(yīng)用程序創(chuàng)建一個(gè)有效的導(dǎo)航方案取決于在操作你的應(yīng)用程序時(shí)對(duì)有限的導(dǎo)航控件和用戶感知的理解。當(dāng)你為電視創(chuàng)建應(yīng)用程序時(shí)桶蛔,需要特別注意的是用戶使用遙控按鈕來實(shí)現(xiàn)導(dǎo)航港华,而不是觸摸屏酱畅。
使用方向鍵導(dǎo)航
用戶可以使用遙控器的方向鍵或者箭頭鍵來遠(yuǎn)程控制電視。這種類型的控制限制為向上惩激,向下咙轩,向左,向右運(yùn)動(dòng)申鱼。
Android框架自動(dòng)處理布局元素之間的方向?qū)Ш椒哂眨ǔ2恍枰獮閼?yīng)用程序做任何額外的操作。然而捐友,你應(yīng)該使用方向鍵來徹底的測試以便發(fā)現(xiàn)導(dǎo)航過程中的任何問題淫半。遵循以下規(guī)則:
1.用戶使用方向鍵能夠?yàn)g覽到屏幕上的所有控件。
2.通過焦點(diǎn)滾動(dòng)列表匣砖,通過上下鍵滾動(dòng)列表科吭,使用“Enter”鍵可以選中子項(xiàng)昏滴。
3.確保控件之間的切換是直接的对人、可預(yù)測的谣殊。
修改方向?qū)Ш?/h4>
Android框架自動(dòng)使用基于布局可聚焦元素的相對(duì)位置的定向?qū)Ш椒桨浮D銘?yīng)該使用方向鍵測試你的應(yīng)用程序生成的導(dǎo)航方案牺弄。測試之后姻几,如果你希望用戶以特定的方式來控制你的布局,你可以為視圖設(shè)置顯式定向?qū)Ш绞聘妗H缦拢?/p>
<TextView android:id="@+id/Category1"
android:nextFocusDown="@+id/Category2"\>
nextFoucsDown 按下方向鍵時(shí)蛇捌,指定下一個(gè)獲取焦點(diǎn)的視圖;
nextFoucsLeft 按左方向鍵時(shí)咱台,指定下一個(gè)獲取焦點(diǎn)的視圖络拌;
nextFoucsRight 按 右方向鍵時(shí),指定下一個(gè)獲取焦點(diǎn)的視圖回溺;
nextFoucsUp 按上方向鍵時(shí)春贸,指定下一個(gè)獲取焦點(diǎn)的視圖;
提供清晰的焦點(diǎn)和選擇
在電視上一個(gè)成功的應(yīng)用導(dǎo)航方案取決于用戶確定屏幕中界面的元素焦點(diǎn)的難易程度遗遵。
如果你沒有為焦點(diǎn)項(xiàng)目提供明確的變化跡象祥诽,用戶會(huì)很快變得沮喪并退出應(yīng)用程序。
你的布局應(yīng)該通過顏色瓮恭、大小雄坪、動(dòng)畫或者這些屬性的組合幫助用戶輕松的確定下一步的行為。使用統(tǒng)一的方案指示應(yīng)用程序的焦點(diǎn)屯蹦。
Android提供了 Drawable State List Resources來實(shí)現(xiàn)對(duì)焦點(diǎn)和選中控件的突出维哈。代碼如下:
<!-- 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>
在xml中使用:
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/button" />