키보드 탐색 지원

소프트 입력 방법(예: 화면상의 입력 방식) 외에도 키보드 - Android는 기기에 연결된 물리적 키보드를 지원합니다. 가 키보드는 편리한 텍스트 입력 모드를 제공하고 사용자가 앱과 상호작용할 수 있습니다. 다음과 같은 대부분의 휴대용 장치는 휴대전화는 터치를 상호작용의 기본 모드로 사용, 태블릿 등 다양한 장치가 사용되고 있으며 많은 사용자가 키보드 액세서리를 있습니다.

이러한 경험을 제공하는 Android 기기가 많아짐에 따라 키보드를 통한 상호작용을 지원하도록 앱을 최적화해야 합니다. 이 문서에서는 키보드를 사용한 탐색을 개선하는 방법을 설명합니다.

<ph type="x-smartling-placeholder">

앱 테스트

사용자가 이미 키보드를 사용하여 앱을 탐색할 수 있을 수도 있습니다. Android 시스템은 기본적으로 필요한 대부분의 동작을 활성화합니다.

Android 프레임워크에서 제공하는 모든 대화형 위젯(예: ButtonEditText—= 포커스 가능합니다 즉, 사용자는 D패드 또는 키보드와 같은 제어 장치로 탐색할 수 있습니다. 각 위젯이 빛나거나 다른 방식으로 입력 포커스를 획득합니다.

앱을 테스트하려면 다음 절차를 따르세요.

  1. 하드웨어 키보드를 제공하는 기기에 앱을 설치합니다.

    키보드가 있는 하드웨어 기기가 없는 경우 USB 키보드 또는 USB 키보드가 있습니다.

    다음과 같은 방법으로 Android 에뮬레이터를 사용할 수도 있습니다.

    1. AVD Manager에서 New Device를 클릭하거나 기존 프로필을 선택하고 클론을 클릭합니다.
    2. 표시되는 창에서 KeyboardDPad가 사용 설정되어 있습니다.
  2. 앱을 테스트하려면 Tab 키만 사용하여 있습니다. 각 UI 컨트롤에 예상대로 포커스가 맞춰지는지 확인합니다.

    예상치 못한 상황에서 포커스가 이동하는 경우가 있는지 확인합니다. 제공합니다

  3. 앱을 처음부터 다시 시작하여 UI를 탐색합니다. 키보드의 화살표 키와 같은 방향 컨트롤을 사용하면 됩니다. 각 위로, 아래를 누른 후 왼쪽오른쪽:

    예상치 못한 상황에서 포커스가 이동하는 경우가 있는지 확인합니다. 제공합니다

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패드 또는 트랙볼을 사용하여 탐색할 때와 동일하게 작동합니다. 시스템 '최선의 추측' 결과 제공 특정 방향으로 포커스를 둘 뷰 뷰 레이아웃에 따라 달라집니다. 그러나 때때로 추측해야 합니다.

지정된 방향으로 포커스를 받아야 하는 뷰를 다음과 같이 지정합니다. 속성:

각 속성은 사용자가 알림을 받을 때 포커스를 받을 다음 뷰를 지정함 뷰 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"
    ...  />
드림 <ph type="x-smartling-placeholder">

추가 리소스

다음 관련 리소스를 참조하세요.