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

द जेटपैक androidx.compose.material3 लाइब्रेरी से उपयोगकर्ता इसमें किसी भी TextField कॉम्पोनेंट में लिख सकते हैं स्टाइलस का इस्तेमाल करने वाले किसी भी ऐप्लिकेशन के साथ काम करता है.

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

स्टाइलस इनपुट को डिफ़ॉल्ट रूप से चालू करने के लिए, अपने ऐप्लिकेशन की लाइब्रेरी डिपेंडेंसी जोड़ें build.gradle फ़ाइल:

Kotlin

dependencies {
    implementation("androidx.compose.foundation:foundation:LATEST_COMPOSE_VERSION")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "LATEST_EXTENSION_VERSION"
    }

    kotlinOptions {
        jvmTarget = "LATEST_JVM_VERSION"
    }
}

ग्रूवी

dependencies {
    implementation 'androidx.compose.foundation:foundation:LATEST_COMPOSE_VERSION'
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = 'LATEST_EXTENSION_VERSION'
    }

    kotlinOptions {
        jvmTarget = 'LATEST_JVM_VERSION'
    }
}

TextField

स्टाइलस हैंडराइटिंग, सभी TextField कॉम्पोनेंट के लिए डिफ़ॉल्ट रूप से चालू रहती है Android 14 और उसके बाद के वर्शन के लिए, androidx.compose.foundation:foundation:1.7.0 निर्भर है. स्टाइलस के हिलने पर भी TextField के लिए हैंडराइटिंग मोड चालू हो जाता है इवेंट का पता कॉम्पोनेंट की हैंडराइटिंग की सीमाओं में लगाया जाता है.

हैंडराइटिंग के बाउंड में 40 dp की वर्टिकल पैडिंग और 10 dp हॉरिज़ॉन्टल शामिल हैं इनपुट फ़ील्ड के आस-पास पैडिंग (जगह).

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

इनपुट का तरीका इस्तेमाल करते समय, TextField फ़ील्ड में स्टाइलस हैंडराइटिंग काम नहीं करती KeyboardType.Password के लिए एडिटर का अनुरोध किया गया.

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

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

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

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

हैंडराइटिंग डेलिगेशन एपीआई का इस्तेमाल करके, स्टाइलस हैंडराइटिंग इनपुट की सुविधा का इस्तेमाल करें प्लेसहोल्डर इनपुट फ़ील्ड (handwritingDetector और handwritingHandler). प्लेसहोल्डर का यूज़र इंटरफ़ेस (यूआई) एलिमेंट है हैंडराइटिंग को फ़ंक्शनल इनपुट फ़ील्ड में सौंपने के लिए कॉन्फ़िगर किया गया है. उदाहरण के लिए लागू करने के लिए, HandwritingDetectorSample.kt.

स्टाइलस हैंडराइटिंग मोड तब शुरू होता है, जब फ़ंक्शनल इनपुट फ़ील्ड फ़ोकस हासिल कर लेता है और एक InputConnection.

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

टेस्ट करना

स्टाइलस हैंडराइटिंग, 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 के बीटा वर्शन का इस्तेमाल करें स्टाइलस.

अन्य संसाधन