उपयोगकर्ता के इंटरैक्शन चालू करें

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

टेक्स्ट चुनें

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

@Composable
fun SelectableText() {
    SelectionContainer {
        Text("This text is selectable")
    }
}

उपयोगकर्ता का चुना गया छोटा टेक्स्ट.

हो सकता है कि आपको चुनी जा सकने वाली जगह के कुछ हिस्सों को चुनने की सुविधा बंद करनी हो. ऐसा करने के लिए, आपको चुने न जा सकने वाले हिस्से को DisableSelection कॉम्पोज़ेबल के साथ रैप करना होगा:

@Composable
fun PartiallySelectableText() {
    SelectionContainer {
        Column {
            Text("This text is selectable")
            Text("This one too")
            Text("This one as well")
            DisableSelection {
                Text("But not this one")
                Text("Neither this one")
            }
            Text("But again, you can select this one")
            Text("And this one too")
        }
    }
}

टेक्स्ट का लंबा पैराग्राफ़. उपयोगकर्ता ने पूरा पैसेज चुनने की कोशिश की, लेकिन दो लाइनों पर DisableSelection लागू होने की वजह से, उन्हें नहीं चुना गया.

LinkAnnotation की मदद से, टेक्स्ट के क्लिक किए जा सकने वाले सेक्शन बनाएं

Text पर होने वाले क्लिक सुनने के लिए, clickable बदलाव करने वाला टूल जोड़ा जा सकता है. हालांकि, हो सकता है कि आप Text वैल्यू के किसी हिस्से में ज़्यादा जानकारी अटैच करना चाहें. जैसे, ब्राउज़र में खोले जाने के लिए किसी शब्द से जुड़ा यूआरएल. ऐसे मामलों में, आपको LinkAnnotation का इस्तेमाल करना होगा. यह एक ऐसा एनोटेशन है जो टेक्स्ट के क्लिक किए जा सकने वाले हिस्से को दिखाता है.

LinkAnnotation का इस्तेमाल करके, Text कॉम्पोज़ेबल के किसी हिस्से में यूआरएल जोड़ा जा सकता है, जो क्लिक करने पर अपने-आप खुलता है. इस बारे में यहां दिए गए स्निपेट में बताया गया है:

Text कंपोज़ेबल के किसी हिस्से पर उपयोगकर्ता से मिले क्लिक के जवाब में भी कस्टम ऐक्शन कॉन्फ़िगर किया जा सकता है. नीचे दिए गए स्निपेट में, जब उपयोगकर्ता “Jetpack Compose” पर क्लिक करता है, तो एक लिंक दिखता है. अगर उपयोगकर्ता उस लिंक पर क्लिक करता है, तो मेट्रिक लॉग की जाती हैं: