テキスト フィールドのタッチペン入力

Jetpack androidx.compose.material3 ライブラリを使用して、ユーザーが任意の TextField コンポーネントに タッチペンを使うアプリでも使えます

図 1. タッチペンによる手書き入力。

デフォルトでタッチペン入力を有効にするには、ライブラリの依存関係をアプリの build.gradle ファイル:

Kotlin

dependencies {
    implementation("androidx.compose.foundation:foundation:LATEST_COMPOSE_VERSION")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "LATEST_EXTENSION_VERSION"
    }

    kotlinOptions {
        jvmTarget = "LATEST_JVM_VERSION"
    }
}

Groovy

dependencies {
    implementation 'androidx.compose.foundation:foundation:LATEST_COMPOSE_VERSION'
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = 'LATEST_EXTENSION_VERSION'
    }

    kotlinOptions {
        jvmTarget = 'LATEST_JVM_VERSION'
    }
}

TextField

すべての TextField コンポーネントで、タッチペンでの手書き入力がデフォルトで有効になります。 Android 14 以降および androidx.compose.foundation:foundation:1.7.0 学びます。タッチペンを動かすと、TextField の手書き入力モードが開始されます コンポーネントの手書き入力境界内で検出されます。

手書き入力の境界には、垂直方向のパディング 40 dp、水平方向のパディング 10 dp が含まれます。 パディングされます。

タッチペンのモーション イベントの検出範囲を示す周囲四角形を入力フィールド。
図 2. TextField コンポーネントの手書き入力境界。

入力方法の場合、TextField フィールドでタッチペンによる手書き入力はサポートされていません エディタは KeyboardType.Password でリクエストされます。

入力の委任

アプリは、テキスト入力フィールドのように見えるプレースホルダ UI 要素を表示できますが、 実際には、テキスト入力機能のない静的な UI 要素です。検索 一般的な例です。静的な UI 要素をタップすると遷移がトリガーされる 入力用にフォーカスされた機能的テキスト入力フィールドを含む新しい UI です。

図 3. 静的 UI 要素からテキスト入力フィールドへの入力の委任。

タッチペン入力の委任

手書き入力委任 API を使用して、タッチペンの手書き入力をサポートする プレースホルダの入力フィールド(handwritingDetectorhandwritingHandler)。プレースホルダの UI 要素は 手書き入力を機能の入力フィールドに委任するように設定されています。例 については、以下をご覧ください。 HandwritingDetectorSample.kt

ファンクショナル入力フィールドにフォーカスが移り、タッチペン手書き入力モードが開始する が、 InputConnection

図 4. 静的 UI 要素からテキスト入力フィールドへのタッチペン入力の委任。

テスト

タッチペンでの手書き入力は、以下を搭載した Android 14 以降のデバイスでサポートされています。 対応するタッチペン入力デバイスと入力方法 エディタ(IME)が起動され、 Android 14 のタッチペン手書き API をサポートしています。

タッチペン入力デバイスがない場合は、任意のデバイスでタッチペン入力をシミュレートします 次の Android Debug Bridge を使用して、root アクセス権(エミュレータを含む)でアクセスできる (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 のベータ版を使用してください タッチペン。

参考情報