除了軟式輸入法,例如螢幕上 鍵盤 - Android 支援連接到裝置的實體鍵盤。A 罩杯 鍵盤提供便利的文字輸入模式,可讓使用者 以及與應用程式互動的方式雖然大部分的手持裝置, 手機使用觸控功能做為互動、平板電腦等類似模式的主要模式 其中,許多使用者喜歡搭配鍵盤配件 具體做法是指示 Kubernetes 建立並維護 一或多個代表這些 Pod 的物件
隨著越來越多的 Android 裝置提供這種使用體驗, ,方便您最佳化應用程式,支援鍵盤互動。這個 文件:說明如何使用鍵盤提升瀏覽體驗。
測試應用程式
使用者或許能以鍵盤瀏覽您的應用程式,因為 Android 系統預設會啟用大部分的必要行為。
Android 架構提供的所有互動式小工具,例如
「Button
」和
EditText
—為
可聚焦。因此,使用者可使用 D-Pad 或
調光或改變外觀
來獲得輸入關注
如要測試應用程式,請執行下列程序:
- 在提供實體鍵盤的裝置上安裝應用程式。
如果您沒有具備鍵盤的硬體裝置,請連結藍牙 鍵盤或 USB 鍵盤。
您也可以使用 Android 模擬器:
- 在 AVD Manager 中,按一下「New Device」或選取 現有設定檔,然後按一下「Clone」(複製)。
- 在隨即顯示的視窗中,確認已勾選「鍵盤」和「DPad」
- 如要測試應用程式,請只用 Tab 鍵前往
第一種是使用無代碼解決方案 AutoML
透過使用者介面建立機器學習模型確認每個 UI 控制項都能正常聚焦。
檢查焦點在未預期的情況下移動的所有例項 。
- 從頭開始,並瀏覽使用者介面。
使用鍵盤上的方向鍵等方向控制項每個
UI 中的可聚焦元素,請按向上、向下鍵,
「Left」和「Right」。
檢查焦點在未預期的情況下移動的所有例項 。
如果遇到任何使用 Tab 鍵進行瀏覽的執行個體 或方向控制項無法正常運作,請指定焦點應移至何處 ,如以下各節所述。
處理分頁導覽
當使用者以鍵盤 Tab 鍵瀏覽您的應用程式時, 系統會根據元素產生輸入焦點的順序 也會出現在版面配置中舉例來說,如果您使用相對版面配置 畫面上的元素與檔案的順序不同 您可能需要手動指定焦點順序
舉例來說,在以下版面配置中,兩個按鈕靠右對齊
而文字欄位與第二個按鈕的左側對齊票證
將焦點從第一個按鈕移至文字欄位,再到第二個按鈕
版面配置需要為每個可聚焦項目明確定義焦點順序
含有
android:nextFocusForward
敬上
屬性。
<androidx.constraintlayout.widget.ConstraintLayout ...> <Button android:id="@+id/button1" android:nextFocusForward="@+id/editText1" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" ... /> <Button android:id="@+id/button2" android:nextFocusForward="@+id/button1" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/button1" ... /> <EditText android:id="@id/editText1" android:nextFocusForward="@+id/button2" app:layout_constraintBottom_toBottomOf="@+id/button2" app:layout_constraintRight_toLeftOf="@id/button2 ... /> ... </androidx.constraintlayout.widget.ConstraintLayout>
現在,焦點並非從 button1
移至
button2
和 editText1
,會正確移動
根據螢幕外觀:從 button1
到
editText1
,之後是button2
。
處理方向導覽
使用者也可以透過鍵盤上的方向鍵瀏覽應用程式, 運作方式與使用 D-Pad 或軌跡球進行瀏覽時相同。系統 提供「最有可能的」以便將焦點放在特定方向的檢視區塊 而根據螢幕上的檢視畫面版面配置但有時候系統 猜錯了
如果系統在 來指定要接收焦點的檢視區塊,並設定如下 屬性:
每個屬性都會指定下一個要接收焦點的檢視畫面 以該方向瀏覽,如資料檢視 ID 所指定。這會顯示在 範例:
<Button android:id="@+id/button1" android:nextFocusRight="@+id/button2" android:nextFocusDown="@+id/editText1" ... /> <Button android:id="@id/button2" android:nextFocusLeft="@id/button1" android:nextFocusDown="@id/editText1" ... /> <EditText android:id="@id/editText1" android:nextFocusUp="@id/button1" ... />
其他資源
請參閱下列相關資源: