ב-Android 14 ואילך (רמת API 34 ואילך), משתמשים יכולים לכתוב באמצעות סטיילוס בכל שדה להזנת טקסט בכל אפליקציה. שדות להזנת טקסט ב-Android, כולל רכיבים של EditText
וווידג'טים של טקסט מסוג WebView
, תומכים כברירת מחדל בהזנה באמצעות עט.
עם זאת, אם האפליקציה שלכם דורשת שדות להזנת טקסט בהתאמה אישית (ראו עורכי טקסט בהתאמה אישית) או שיש לה פריסה מורכבת עם שדות להזנת טקסט שמופיעים על גבי משטח ציור, תצטרכו להתאים אישית את האפליקציה.
EditText
כברירת מחדל, כתיבה ידנית בסטיילוס מופעלת בכל השדות של EditText
ב-Android מגרסה 14 ואילך. מצב כתב היד מופעל ב-EditText
כשמתגלה אירוע תנועה של עט בתוך גבולות כתב היד בתצוגה.
גבולות הכתב כוללים 40dp של ריפוד אנכי ו-10dp של ריפוד אופקי סביב התצוגה. משנים את גבולות כתב היד באמצעות setHandwritingBoundsOffsets()
.
משביתים את הכתיבה הידנית באמצעות setAutoHandwritingEnabled(false)
.
![שדה קלט עם מלבן שמקיף אותו ומציין את הגבולות לזיהוי אירועי תנועה של עט.](https://developer.android.google.cn/static/images/develop/ui/compose/touch-input/stylus-input/shared/edittext_handwriting_bounds.png?authuser=0&hl=he)
EditText
.
הענקת גישה לקלט
אפליקציות יכולות להציג רכיבי placeholder של ממשק משתמש שנראים כמו שדות להזנת טקסט, אבל הם למעשה רק רכיבי ממשק משתמש סטטיים ללא יכולת להזנת טקסט. שדות חיפוש הם דוגמה נפוצה. הקשה על רכיב ממשק המשתמש הסטטי מפעילה מעבר לממשק משתמש חדש שמכיל שדה קלט טקסט פונקציונלי שמתמקד בהזנה.
הענקת גישה לקלט של סטיילוס
משתמשים בממשקי ה-API להענקת גישה לכתב יד כדי לתמוך בהזנת כתב יד בעט stylus בשדות קלט של 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.
הקריאה החוזרת מפעילה את המעבר בממשק המשתמש כדי להציג את שדה הקלט הפונקציונלי ולהתמקד בו. בדרך כלל, הטמעת ה-callback זהה לטמעה של רכיב מעקב קליקים ברכיב placeholder. כששדה הקלט הפונקציונלי יוצר את הערך InputConnection
, מתחיל מצב כתב היד בסטיילוס.
Material Design
הספרייה com.google.android.material.search
מספקת את המחלקות SearchBar
ו-SearchView
כדי להקל על ההטמעה של דפוס ממשק המשתמש של placeholder.
תצוגות של placeholder ותצוגות חיפוש פונקציונליות מקושרות באמצעות setUpWithSearchBar()
.
הענקת הגישה לכתב היד מוגדרת בספריית Material, ללא צורך בפיתוח נוסף באפליקציה.
חפיפה עם משטחי שרטוט
אם באפליקציה שלכם יש משטח ציור עם שדה טקסט שמופיע מעל המשטח, יכול להיות שתצטרכו להשבית את הכתיבה בכתב יד בעזרת עט כדי לאפשר למשתמש לצייר. מידע נוסף זמין במאמר setAutoHandwritingEnabled()
.
בדיקה
יש תמיכה בכתיבה ידנית בסטיילוס במכשירי Android מגרסה 14 ואילך עם מכשיר קלט תואם לסטיילוס ועורך שיטת קלט (IME) שתומך בממשקי ה-API לכתיבה ידנית בסטיילוס של Android 14.
אם אין לכם מכשיר קלט עם עט, תוכלו לדמות קלט בעט בכל מכשיר עם הרשאת root (כולל מכשירי אמולציה) באמצעות הפקודות הבאות של Android Debug Bridge (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 לצורך בדיקה.
מקורות מידע נוספים
- Material Design – שדות טקסט
- עורכי טקסט בהתאמה אישית