टेक्स्ट फ़ील्ड में स्टाइलस का इनपुट

Android 14 (एपीआई लेवल 34) और उसके बाद के वर्शन, उपयोगकर्ताओं को किसी भी टेक्स्ट इनपुट में लिखने की सुविधा देते हैं स्टाइलस का इस्तेमाल करके किसी भी ऐप्लिकेशन में बदलाव कर सकते हैं. Android टेक्स्ट एंट्री फ़ील्ड, जिनमें ये शामिल हैं EditText कॉम्पोनेंट और WebView टेक्स्ट विजेट, सहायता डिफ़ॉल्ट रूप से स्टाइलस इनपुट.

हालांकि, अगर आपके ऐप्लिकेशन को कस्टम टेक्स्ट इनपुट फ़ील्ड की ज़रूरत है, तो कस्टम टेक्स्ट देखें एडिटर) या इसमें एक जटिल लेआउट है, जिसमें ड्रॉइंग की सतह को टेक्स्ट एंट्री फ़ील्ड के साथ ओवरले किया गया है, तो आपको आपको ऐप कस्टमाइज़ करना होगा.

पहली इमेज. स्टाइलस के साथ हाथ से लिखा गया इनपुट.

EditText

Android 14 में, सभी EditText फ़ील्ड के लिए स्टाइलस हैंडराइटिंग डिफ़ॉल्ट रूप से चालू होती है और भी कई नतीजों पर मिलेंगे. स्टाइलस के हिलने पर भी EditText के लिए हैंडराइटिंग मोड चालू हो जाता है इवेंट का पता व्यू की हैंडराइटिंग सीमाओं में पता चलता है.

हैंडराइटिंग के बाउंड में 40 dp की वर्टिकल पैडिंग और 10 dp हॉरिज़ॉन्टल शामिल हैं जोड़ी भी जा सकती है. हैंडराइटिंग बाउंड्री सेट करें setHandwritingBoundsOffsets(). इसके साथ हैंडराइटिंग बंद करें setAutoHandwritingEnabled(false).

रेक्टैंगल के आस-पास मौजूद इनपुट फ़ील्ड, जो स्टाइलस मोशन इवेंट का पता लगाने के लिए बाउंड दिखाती है.
दूसरी इमेज. EditText फ़ील्ड की हैंडराइटिंग सीमाएं.

इनपुट डेलिगेशन

ऐप्लिकेशन, प्लेसहोल्डर यूज़र इंटरफ़ेस (यूआई) एलिमेंट दिखा सकते हैं. ये एलिमेंट, टेक्स्ट इनपुट फ़ील्ड जैसे दिखते हैं. हालांकि, असल में, स्टैटिक यूज़र इंटरफ़ेस (यूआई) एलिमेंट हैं जिनमें टेक्स्ट इनपुट करने की सुविधा नहीं है. Search Network में दिखने वाले विज्ञापन फ़ील्ड के सामान्य उदाहरण हैं. स्टैटिक यूज़र इंटरफ़ेस (यूआई) एलिमेंट पर टैप करने से ट्रांज़िशन ट्रिगर होता है जिसमें इनपुट के लिए फ़ोकस किया गया फ़ंक्शनल टेक्स्ट इनपुट फ़ील्ड शामिल है.

तीसरी इमेज. स्टैटिक यूज़र इंटरफ़ेस (यूआई) एलिमेंट से टेक्स्ट इनपुट फ़ील्ड में इनपुट डेलिगेशन.

स्टाइलस इनपुट डेलिगेशन

हैंडराइटिंग डेलिगेशन एपीआई का इस्तेमाल करके, स्टाइलस हैंडराइटिंग इनपुट की सुविधा का इस्तेमाल करें प्लेसहोल्डर इनपुट फ़ील्ड (देखें 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().

मटीरियल लाइब्रेरी में हैंडराइटिंग को ऐक्सेस करने की सुविधा कॉन्फ़िगर की गई है. इसके लिए, कोई अन्य आपके ऐप्लिकेशन में डेवलपमेंट की ज़रूरत होगी.

ड्रॉइंग प्लैटफ़ॉर्म से ओवरलैप होना

अगर आपके ऐप्लिकेशन में ड्रॉइंग सरफ़ेस को ओवरले करने वाला टेक्स्ट फ़ील्ड है, तो आपको उपयोगकर्ता को ड्रॉ करने की अनुमति देने के लिए, स्टाइलस हैंडराइटिंग को बंद करना पड़ सकता है. यहां जाएं: setAutoHandwritingEnabled().

टेस्ट करना

स्टाइलस हैंडराइटिंग, Android 14 और उसके बाद के वर्शन वाले उन डिवाइसों पर काम करती है जिनमें साथ काम करने वाला स्टाइलस इनपुट डिवाइस और एक इनपुट का तरीका एडिटर (IME) को Android 14 पर स्टाइलस हैंडराइटिंग एपीआई इस्तेमाल किए जा सकते हैं.

अगर आपके पास स्टाइलस इनपुट डिवाइस नहीं है, तो किसी भी डिवाइस पर स्टाइलस इनपुट को सिम्युलेट करें नीचे दिए गए 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 के साथ काम नहीं करता, तो इसकी जांच करने के लिए Gboard के बीटा वर्शन का इस्तेमाल करें स्टाइलस.

अन्य संसाधन