קלט סטיילוס בשדות טקסט

תרמיל ה-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"
    }
}

מגניב

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 בתנועת סטיילוס האירוע מזוהה בגבולות כתב היד של הרכיב.

הגבולות של כתב היד כוללים מרווח פנימי של 40dp ורוחב של 10dp המרווח הפנימי סביב שדה הקלט.

שדה להזנת קלט עם מלבן מסביבו מציין את הגבולות לזיהוי אירועים של תנועת סטיילוס.
איור 2. גבולות כתב יד של רכיבי TextField.

אין תמיכה בכתיבה ידנית בסטיילוס בשדות TextField כששיטת הקלט נשלחה בקשת עריכה באמצעות KeyboardType.Password.

הענקת גישה לקלט

אפליקציות יכולות להציג רכיבי placeholder בממשק המשתמש שנראים כמו שדות של קלט טקסט, הם למעשה רכיבים סטטיים בממשק המשתמש, ללא יכולת של קלט טקסט. קמפיינים לרשת החיפוש הם דוגמה נפוצה לשדות. הקשה על הרכיב הסטטי של ממשק המשתמש מפעילה מעבר לממשק משתמש חדש שמכיל שדה פונקציונלי להזנת קלט, שמתמקד בקלט.

איור 3. יש להזין את הקצאת הגישה מהרכיב הסטטי של ממשק המשתמש לשדה להזנת קלט טקסט.

הרשאת גישה לקלט סטיילוס

שימוש בממשקי ה-API להאצלת כתב יד כדי לתמוך בקלט כתב יד בסטיילוס בשדות להזנת קלט placeholder (ראו handwritingDetector handwritingHandler). רכיב ה-placeholder של ממשק המשתמש הוא מוגדרת להאציל את כתב היד לשדה פונקציונלי להזנת קלט. לדוגמה להטמעה, ראה HandwritingDetectorSample.kt

מצב כתב יד בסטיילוס מתחיל כששדה הקלט הפונקציונלי מקבל מיקוד יוצרת InputConnection

איור 4. הענקת גישה לקלט סטיילוס מרכיב בממשק משתמש סטטי לשדה להזנת טקסט.

בדיקה

כתיבה ידנית בסטיילוס נתמכת במכשירים עם Android מגרסה 14 ואילך עם מכשיר תואם לקלט סטיילוס ושיטת קלט עורך (IME) תומך בממשקי API לכתיבה ידנית בסטיילוס ב-Android 14.

אם אין לך מכשיר לקלט סטיילוס, עליך לדמות קלט סטיילוס בכל מכשיר עם גישה לרמה הבסיסית (root) (כולל אמולטורים) באמצעות הגשר הבא לניפוי באגים ב-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 כדי לבדוק אם אתם משתמשים במכשיר שלא תומך בו. בסטיילוס.

מקורות מידע נוספים