إدخال قلم الشاشة في الحقول النصية

يتيح نظام Android 14 (المستوى 34 لواجهة برمجة التطبيقات) والإصدارات الأحدث للمستخدمين إمكانية الكتابة في أي نص. في أي تطبيق باستخدام قلم الشاشة. حقول إدخال النص في Android، بما في ذلك مكوّنات EditText تطبيقات مصغّرة لـ WebView، الدعم إدخال قلم الشاشة تلقائيًا.

مع ذلك، إذا كان تطبيقك يتطلّب حقول إدخال نص مخصّصة (راجِع نص مخصّص المحرِّرون) أو تخطيط معقد مع حقول إدخال نص متراكبة على سطح رسم، فيجب تحتاج إليها لتخصيص تطبيقك.

الشكل 1. إدخال مكتوب بخط اليد باستخدام قلم شاشة

EditText

تكون الكتابة بخط اليد بقلم الشاشة مفعَّلة تلقائيًا في جميع حقول EditText على نظام التشغيل Android 14. وأعلى. يتم تفعيل وضع "الكتابة بخط اليد" على جهاز "EditText" عند تحريك قلم الشاشة. الحدث ضمن حدود الكتابة بخط اليد في طريقة العرض.

تشمل حدود الكتابة بخط اليد المساحة المتروكة العمودية التي تبلغ 40 بكسل مستقل الكثافة و10 بكسل مستقل الكثافة المساحة المتروكة حول العرض. ضبط حدود الكتابة بخط اليد باستخدام setHandwritingBoundsOffsets() إيقاف الكتابة بخط اليد باستخدام setAutoHandwritingEnabled(false)

حقل إدخال يتضمّن مستطيلاً يحيط به يشير إلى حدود رصد أحداث حركة قلم الشاشة.
الشكل 2. حدود الكتابة بخط اليد في حقلَين (EditText)

تفويض الإدخال

يمكن للتطبيقات عرض عناصر واجهة المستخدم النائبة التي تبدو كحقول إدخال نص، ولكن هي في الواقع مجرد عناصر ثابتة لواجهة المستخدم بدون إمكانية إدخال نص. حملة على شبكة البحث والحقول مثالاً شائعًا. يؤدي النقر على عنصر واجهة المستخدم الثابت إلى تشغيل عملية انتقال إلى واجهة مستخدم جديدة تحتوي على حقل إدخال نص عملي يركز على الإدخال.

الشكل 3. تفويض الإدخال من عنصر واجهة مستخدم ثابت إلى حقل إدخال النص

تفويض الإدخال بقلم الشاشة

استخدام واجهات برمجة التطبيقات لتفويض الكتابة بخط اليد لدعم إدخال الكتابة بخط اليد بقلم الشاشة حقول إدخال العنصر النائب (راجع 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، يبدأ وضع الكتابة بخط اليد بقلم الشاشة.

الشكل 4. تفويض إدخال قلم الشاشة من عنصر واجهة المستخدم الثابت إلى حقل إدخال النص

التصميم متعدد الأبعاد

تشير رسالة الأشكال البيانية com.google.android.material.search المكتبة توفر SearchBar و SearchView صف لتسهيل تنفيذ نمط واجهة المستخدم النائب.

ترتبط مشاهدات العناصر النائبة والبحث الوظيفي setUpWithSearchBar()

يتم ضبط تفويض الكتابة بخط اليد في مكتبة المواد بدون إضافات والتطوير اللازم لتطبيقك.

التداخل مع أسطح الرسم

إذا كان تطبيقك يحتوي على سطح رسم مع حقل نصي يتراكب على السطح، إلى إيقاف الكتابة بخط اليد بقلم الشاشة للسماح للمستخدم بالرسم. عرض setAutoHandwritingEnabled()

الاختبار

تتوفّر الكتابة بخط اليد باستخدام قلم الشاشة على الأجهزة التي تعمل بالإصدار 14 من نظام التشغيل Android والإصدارات الأحدث التي تتضمن جهاز إدخال قلم شاشة متوافق وأسلوب إدخال محرر (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 للاختبار إذا كنت تستخدم جهازًا غير متوافق مع هذه الميزة. قلم الشاشة.

مصادر إضافية