使用者與應用程式互動時,通常會使用非觸控輸入機制:
- 電腦環境:使用者透過實體硬體鍵盤和觸控板瀏覽及輸入資料。
- Android TV:使用者可使用 D-pad 瀏覽介面。
- 車輛:駕駛人和乘客使用旋轉控制器互動。
- 摺疊式裝置和平板電腦:使用者會加裝鍵盤保護套和外接輸入配件。
在上述所有情況中,應用程式都必須追蹤畫面上處於活動狀態的互動式元素,這個活動狀態稱為「焦點」。
提供直覺式鍵盤瀏覽體驗的關鍵因素
如要在非觸控裝置和大螢幕上提供優質的使用者體驗,請依下列原則設計應用程式:
- 邏輯初始焦點:將初始焦點放在使用者進入畫面時最有可能互動的元素上。
- 一致的導覽順序:提供可預測的一維 (Tab 鍵) 和二維 (方向鍵或 D-pad) 焦點遍歷。
- 持續焦點:在發生中斷、對話方塊關閉或設定變更後,無縫還原焦點。
- 清楚的焦點狀態:顯示顯眼且易於存取的視覺提示 (例如焦點環或漣漪),指出目前焦點所在的元素。
- 直覺式捲動:確保焦點元素及其周圍內容順暢捲動至可視區域。
專注模式指南
請參閱下列指南,瞭解如何在 Compose 中管理及自訂焦點:
- 焦點目標:瞭解互動式元件如何成為焦點目標,以及如何讓自訂可組合項可聚焦。
- 焦點遍歷順序:瞭解 1D 外觀順序和 2D 空間導覽,以及如何自訂遍歷路徑。
- 文字欄位中的焦點:瞭解單行和多行文字欄位如何處理 Tab 鍵和方向鍵,以及 TV IME 的互動方式。
- 將焦點目標分組:使用
focusGroup將元件分組,並攔截進入或離開重新導向。 - 還原焦點:將焦點還原至容器中先前處於啟用狀態的子項、處理導覽元件,以及管理畫面轉換期間的焦點。
- 指出焦點狀態:套用視覺提示和自訂指標,醒目顯示焦點元件。
- 回應焦點:使用
onFocusChanged觀察焦點變更,並查詢焦點狀態屬性。 - 以程式輔助方式要求焦點:明確移動焦點,以回應使用者動作或驗證錯誤。
- 移動及清除焦點:使用
FocusManager以程式輔助方式前進或清除焦點。 - 擷取及釋放焦點:擷取模式子互動的焦點,並安全地釋放焦點。
- 測試焦點導覽:編寫自動化 Compose 測試,驗證 1D、2D 和文字欄位鍵盤互動。