在 Compose 中聚焦

使用者與應用程式互動時,通常會使用非觸控輸入機制:

  • 電腦環境:使用者透過實體硬體鍵盤和觸控板瀏覽及輸入資料。
  • Android TV:使用者可使用 D-pad 瀏覽介面。
  • 車輛:駕駛人和乘客使用旋轉控制器互動。
  • 摺疊式裝置和平板電腦:使用者會加裝鍵盤保護套和外接輸入配件。

在上述所有情況中,應用程式都必須追蹤畫面上處於活動狀態的互動式元素,這個活動狀態稱為「焦點」。

提供直覺式鍵盤瀏覽體驗的關鍵因素

如要在非觸控裝置和大螢幕上提供優質的使用者體驗,請依下列原則設計應用程式:

  1. 邏輯初始焦點:將初始焦點放在使用者進入畫面時最有可能互動的元素上。
  2. 一致的導覽順序:提供可預測的一維 (Tab 鍵) 和二維 (方向鍵或 D-pad) 焦點遍歷。
  3. 持續焦點:在發生中斷、對話方塊關閉或設定變更後,無縫還原焦點。
  4. 清楚的焦點狀態:顯示顯眼且易於存取的視覺提示 (例如焦點環或漣漪),指出目前焦點所在的元素。
  5. 直覺式捲動:確保焦點元素及其周圍內容順暢捲動至可視區域。

專注模式指南

請參閱下列指南,瞭解如何在 Compose 中管理及自訂焦點:

  • 焦點目標:瞭解互動式元件如何成為焦點目標,以及如何讓自訂可組合項可聚焦。
  • 焦點遍歷順序:瞭解 1D 外觀順序和 2D 空間導覽,以及如何自訂遍歷路徑。
  • 文字欄位中的焦點:瞭解單行和多行文字欄位如何處理 Tab 鍵和方向鍵,以及 TV IME 的互動方式。
  • 將焦點目標分組:使用 focusGroup 將元件分組,並攔截進入或離開重新導向。
  • 還原焦點:將焦點還原至容器中先前處於啟用狀態的子項、處理導覽元件,以及管理畫面轉換期間的焦點。
  • 指出焦點狀態:套用視覺提示和自訂指標,醒目顯示焦點元件。
  • 回應焦點:使用 onFocusChanged 觀察焦點變更,並查詢焦點狀態屬性。
  • 以程式輔助方式要求焦點:明確移動焦點,以回應使用者動作或驗證錯誤。
  • 移動及清除焦點:使用 FocusManager 以程式輔助方式前進或清除焦點。
  • 擷取及釋放焦點:擷取模式子互動的焦點,並安全地釋放焦點。
  • 測試焦點導覽:編寫自動化 Compose 測試,驗證 1D、2D 和文字欄位鍵盤互動。