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

Android 14 (רמת API 34) ואילך מאפשרת למשתמשים לכתוב בכל קלט טקסט בשדה של אפליקציה כלשהי באמצעות סטיילוס. שדות הזנת טקסט ב-Android, כולל EditText רכיבים ו תמיכה בווידג'טים של טקסט WebView כברירת מחדל, בקלט סטיילוס.

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

איור 1. קלט בכתב יד עם סטיילוס.

EditText

ב-Android 14, כתיבה ידנית בסטיילוס מופעלת כברירת מחדל בכל EditText השדות גבוהה יותר. מצב כתב יד מופעל ב-EditText כשתנועת סטיילוס האירוע מזוהה בגבולות כתב היד בתצוגה.

הגבולות של כתב היד כוללים מרווח פנימי של 40dp ורוחב של 10dp המרווח הפנימי מסביב לתצוגה. התאמת גבולות כתב היד באמצעות setHandwritingBoundsOffsets() השבתת כתב יד עם setAutoHandwritingEnabled(false)

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

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

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

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

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

שימוש בממשקי ה-API להאצלת כתב יד כדי לתמוך בקלט כתב יד בסטיילוס בשדות להזנת קלט placeholder (ראו setHandwritingDelegatorCallback() וגם setIsHandwritingDelegate()). רכיב ה-placeholder בממשק המשתמש מוגדר להאציל את כתב היד לפונקציונליות שדה להזנת קלט, לדוגמה:

Kotlin

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

Java

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

תנועת הסטיילוס מעל תצוגת השדה של קלט הטקסט של ה-placeholder מפעילה את הקריאה החוזרת. הקריאה החוזרת מפעילה את המעבר בממשק המשתמש כדי להציג את הקלט הפונקציונלי ולמקד אותו השדה הזה. ההטמעה של הקריאה החוזרת (callback) בדרך כלל זהה להטמעה ל-click listener ברכיב ה-placeholder. כאשר שדה הקלט הפונקציונלי יוצרת InputConnection מצב כתיבה ידנית בסטיילוס מתחיל.

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

עיצוב חומר

com.google.android.material.search מספקת SearchBar והקבוצה SearchView כיתות כדי להקל על ההטמעה של תבנית ה-placeholder של ממשק המשתמש.

תצוגות חיפוש פונקציונליות ו-placeholder מקושרות אל setUpWithSearchBar()

הענקת גישה לכתיבה ידנית מוגדרת בספריית Material ללא נוספות שנדרש להתפתחות של האפליקציה.

חפיפה עם משטחי שרטוט

אם לאפליקציה יש משטח שרטוט עם שדה טקסט שמכסה את פני השטח, יכול להיות שתצטרכו להשבית את התכונה 'כתיבה ידנית בסטיילוס' כדי לאפשר למשתמש לצייר. צפייה setAutoHandwritingEnabled()

בדיקה

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

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