يتيح الإصدار 14 من نظام التشغيل Android (المستوى 34 لواجهة برمجة التطبيقات) والإصدارات الأحدث للمستخدمين الكتابة في أي حقل إدخال
نصي في أي تطبيق باستخدام قلم الشاشة. تتوافق حقول إدخال النصوص في Android، بما في ذلك المكوّنات
EditText
وتطبيقات المصغّرات النصية
WebView
، مع
إدخال القلم اللوحي تلقائيًا.
ومع ذلك، إذا كان تطبيقك يتطلّب حقول إدخال نص مخصّصة (راجِع محرّري النصوص المخصّصة) أو يتضمّن تنسيقًا معقّدًا مع حقول إدخال نص فوق سطح رسم، عليك تخصيص تطبيقك.
EditText
تكون ميزة الكتابة بخط اليد باستخدام قلم الشاشة مفعّلة تلقائيًا لجميع حقول EditText
على الإصدار 14 من نظام التشغيل Android
والإصدارات الأحدث. يتم بدء وضع الكتابة اليدوية لعنصر EditText
عند رصد حدث
حركة قلم الشاشة ضمن حدود الكتابة اليدوية للعرض.
تتضمّن حدود الكتابة اليدوية مساحة سمك عمودي تبلغ 40 وحدة بكسل ومساحة سمك أفقي تبلغ 10
وحدات بكسل حول العرض. عدِّل حدود الكتابة اليدوية باستخدام
setHandwritingBoundsOffsets()
.
أوقِف ميزة "الكتابة بخط اليد" باستخدام
setAutoHandwritingEnabled(false)
.

EditText
تفويض الإدخال
يمكن للتطبيقات عرض عناصر واجهة مستخدم نائبة تبدو كحقول إدخال نص، ولكنها في الواقع مجرد عناصر واجهة مستخدم ثابتة لا تتيح إدخال نص. وتعدّ حقول البحث مثالاً شائعًا. يؤدي النقر على عنصر واجهة المستخدم الثابت إلى بدء عملية انتقال إلى واجهة مستخدم جديدة تحتوي على حقل إدخال نص وظيفي يتم التركيز عليه لإدخال البيانات.
تفويض إدخال قلم الشاشة
استخدِم واجهات برمجة التطبيقات لمنح الأذونات الخاصة بالكتابة اليدوية لإتاحة إدخال الكتابة اليدوية باستخدام قلم الشاشة في
حقول إدخال العنصر النائب (راجِع
setHandwritingDelegatorCallback()
و
setIsHandwritingDelegate()
).
يتم ضبط عنصر واجهة المستخدم النائب لمنح الأذونات الخاصة بالكتابة اليدوية لحقل إدخال وظيفي، على سبيل المثال:
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); }
يؤدي تحريك قلم الشاشة فوق عرض حقل إدخال النص النائب إلى استدعاء دالة الاستدعاء.
يؤدي الإجراء المُعاد الاتصال به إلى بدء عملية انتقال واجهة المستخدم لعرض حقل الإدخال الوظيفي
وتركيزه. يكون تنفيذ دالة الاستدعاء عادةً مطابقًا لتنفيذ معالج
النقرات على عنصر العنصر النائب. عندما ينشئ حقل الإدخال الوظيفي رمزًا InputConnection
، يبدأ وضع الكتابة اليدوية باستخدام قلم الشاشة.
التصميم متعدد الأبعاد
توفّر مكتبة
com.google.android.material.search
فئتَي
SearchBar
و
SearchView
لتسهيل تنفيذ نمط واجهة المستخدم للعنصر النائب.
يتم ربط العنصر النائب وطريقة عرض البحث الوظيفي باستخدام العنصر
setUpWithSearchBar()
.
يتم ضبط تفويض الكتابة اليدوية في مكتبة Material بدون الحاجة إلى تطوير إضافي في تطبيقك.
التداخل مع مساحات الرسم
إذا كان تطبيقك يتضمّن سطح رسم مع حقل نص متراكب على السطح،
قد تحتاج إلى إيقاف ميزة الكتابة اليدوية باستخدام قلم الشاشة للسماح للمستخدم بالرسم. يُرجى الاطّلاع على
setAutoHandwritingEnabled()
.
الاختبار
تتوفّر ميزة الكتابة اليدوية باستخدام قلم الشاشة على أجهزة Android 14 والإصدارات الأحدث التي تتضمّن جهاز إدخال قلم شاشة متوافقًا وأداة تعديل طريقة الإدخال (IME) التي تتوافق مع واجهات برمجة التطبيقات لميزة الكتابة اليدوية باستخدام قلم الشاشة في Android 14.
إذا لم يكن لديك جهاز إدخال قلم، يمكنك محاكاة إدخال القلم على أي جهاز باستخدام إذن الوصول إلى الجذر (بما في ذلك المحاكيات) باستخدام أوامر 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 للاختبار إذا كنت تستخدم جهازًا لا يتيح استخدام القلم.
مصادر إضافية
- تصميم المواد: حقول النص
- محرّرات النصوص المخصّصة