텍스트 입력란의 스타일러스 입력

Android 14 (API 수준 34) 이상에서는 사용자가 모든 텍스트 입력에 쓸 수 있습니다. 필드를 작성할 수 있습니다. 다음을 포함한 Android 텍스트 입력란 EditText 구성요소 및 WebView 텍스트 위젯, 지원 기본적으로 사용됩니다.

그러나 앱에 맞춤 텍스트 입력란이 필요한 경우 (맞춤 텍스트 입력란 참고) 편집자) 또는 복잡한 레이아웃이 그리기 표면에 오버레이되는 텍스트 입력란입니다. 앱을 맞춤설정해야 합니다

그림 1. 스타일러스를 사용한 필기 입력

EditText

Android 14에서는 스타일러스 필기 입력이 모든 EditText 필드에 기본적으로 사용 설정됩니다. 및 그 이상입니다. 스타일러스가 움직일 때 EditText에 필기 입력 모드가 시작됩니다. 이벤트는 뷰의 필기 입력 경계 내에서 감지됩니다.

필기 입력 경계에는 세로 패딩 40dp, 가로 10dp가 포함됩니다. 뷰 주위의 패딩입니다. 다음을 사용하여 필기 입력 경계 조정 setHandwritingBoundsOffsets() 필기 입력 사용 중지 setAutoHandwritingEnabled(false)

스타일러스 모션 이벤트 감지를 위한 경계를 나타내는 직사각형을 둘러싸고 있는 입력 필드
그림 2. EditText 필드의 필기 입력 범위

입력 위임

앱은 텍스트 입력란처럼 보이는 자리표시자 UI 요소를 표시할 수 있지만 사실은 텍스트 입력 기능이 없는 정적 UI 요소일 뿐입니다. 검색 필드가 일반적인 예입니다. 정적 UI 요소를 탭하면 전환 트리거 입력에 중점을 둔 기능적 텍스트 입력란이 포함된 새로운 UI로 변경되었습니다.

그림 3. 정적 UI 요소에서 텍스트 입력란으로의 입력 위임

스타일러스 입력 위임

필기 입력 위임 API를 사용하여 다음 작업에 대한 스타일러스 필기 입력 지원 자리표시자 입력란( setHandwritingDelegatorCallback() 드림 및 setIsHandwritingDelegate()) 자리표시자 UI 요소가 필기 입력을 기능에 위임하도록 구성되어 있습니다. 입력합니다. 예를 들면 다음과 같습니다.

Kotlin

if (Build.VERSION.SDK_INT >= 34) {
    placeholderInputField.setHandwritingDelegatorCallback {
        showAndFocusDelegateInputField()
    }
    delegateInputField.setIsHandwritingDelegate(true)
}

자바

if (Build.VERSION.SDK_INT >= 34) {
    placeholderInputField.setHandwritingDelegatorCallback(this::showAndFocusInputFieldDelegate);
    delegateInputField.setIsHandwritingDelegate(true);
}

자리표시자 텍스트 입력란 뷰 위의 스타일러스 모션은 콜백을 호출합니다. 콜백은 UI 전환을 트리거하여 함수 입력을 표시하고 포커스를 둡니다. 필드를 확인합니다. 콜백 구현은 일반적으로 를 사용해야 합니다. 함수 필드에 를 만듭니다. InputConnection님, 스타일러스 필기 입력 모드가 시작됩니다.

그림 4. 정적 UI 요소에서 텍스트 입력 필드로 스타일러스 입력 위임

머티리얼 디자인

com.google.android.material.search 드림 라이브러리를 제공하여 SearchBar 및 수업 SearchView개 자리표시자 UI 패턴 구현을 용이하게 합니다.

자리표시자 및 기능 검색 뷰는 setUpWithSearchBar()

필기 입력 위임은 추가 작업 없이 Material 라이브러리에서 구성됩니다. 개발이 필요할 수 있습니다

그리기 표면과 겹침

앱에 그리기 표면과 표면에 오버레이되는 텍스트 필드가 있는 경우 사용자가 그릴 수 있도록 스타일러스 필기 입력을 사용 중지해야 할 수도 있습니다. 자세한 내용은 setAutoHandwritingEnabled()

테스트

스타일러스 필기 입력은 호환되는 스타일러스 입력 장치 및 입력 방법 편집기 (IME)를 Android 14 스타일러스 필기 입력 API를 지원합니다.

스타일러스 입력 기기가 없는 경우 어느 기기에서나 스타일러스 입력을 시뮬레이션합니다. 다음 Android 디버그 브리지를 사용하는 루트 액세스 권한 (에뮬레이터 포함) (adb) 명령어:


// Android 14
adb shell setprop persist.debug.input.simulate_stylus_with_touch true && adb shell stop && adb shell start

// Android 15 and higher
// Property takes effect after screen reconfiguration such as orientation change.
adb shell setprop debug.input.simulate_stylus_with_touch true

지원되지 않는 기기를 사용하는 경우 Gboard 베타를 사용하여 테스트해 보세요 스타일러스.

추가 리소스