बड़ी स्क्रीन के लिए ऑप्टिमाइज़ करने में, बाहरी कीबोर्ड से इनपुट लेने की सुविधा शामिल है. जैसे, वीडियो और अन्य मीडिया को रोकने या फिर से चलाने के लिए, स्पेसबार दबाने पर रिस्पॉन्स देना. यह सुविधा, टैबलेट के लिए खास तौर पर काम की है, क्योंकि अक्सर टैबलेट को बाहरी कीबोर्ड से कनेक्ट किया जाता है. इसके अलावा, Chromebook के लिए भी यह सुविधा काम की है, क्योंकि आम तौर पर Chromebook के साथ बाहरी कीबोर्ड मिलता है. हालांकि, इसे टैबलेट मोड में भी इस्तेमाल किया जा सकता है.
जब विंडो में सिर्फ़ मीडिया एलिमेंट हो (जैसे, फ़ुल-स्क्रीन पर वीडियो चलाना), तो Jetpack Compose में स्क्रीन लेवल पर, कीप्रेस इवेंट पर रिस्पॉन्स दें.
सबसे सही तरीके
जब भी आपका ऐप्लिकेशन कोई मीडिया फ़ाइल चलाता है, तो उपयोगकर्ताओं के पास फ़िज़िकल कीबोर्ड पर स्पेसबार दबाकर, वीडियो को रोकने और फिर से चलाने का विकल्प होना चाहिए.
सामग्री
KEYCODE_SPACE: स्पेसबार के लिए, की कोड कॉन्स्टैंट.onPreviewKeyEvent:Modifier, जो किसी कॉम्पोनेंट को हार्डवेयर की इवेंट को इंटरसेप्ट करने की अनुमति देता है. ऐसा तब होता है, जब उस कॉम्पोनेंट (या उसके किसी चाइल्ड कॉम्पोनेंट) पर फ़ोकस किया जाता है.onKeyEvent: यहModifier,onPreviewKeyEventकी तरह ही काम करता है. यह किसी कॉम्पोनेंट को हार्डवेयर की इवेंट को इंटरसेप्ट करने की अनुमति देता है. ऐसा तब होता है, जब उस कॉम्पोनेंट (या उसके किसी चाइल्ड कॉम्पोनेंट) पर फ़ोकस किया जाता है.
चरण
Jetpack Compose में कीबोर्ड की कुंजियां दबाने पर रिस्पॉन्स देने के लिए, आपके ऐप्लिकेशन को कीप्रेस इवेंट को मॉनिटर करना होगा. साथ ही, इवेंट को फ़िल्टर करना होगा और चुनिंदा कीप्रेस पर रिस्पॉन्स देना होगा. जैसे, स्पेसबार दबाने पर.
1. कीबोर्ड इवेंट को मॉनिटर करना
Jetpack Compose की मदद से, कीस्ट्रोक को मैनेज करने वाले कॉम्पोनेंट में, onPreviewKeyEvent या onKeyEvent मॉडिफ़ायर का इस्तेमाल किया जा सकता है.
इन दोनों मॉडिफ़ायर के बीच मुख्य अंतर यह है कि अगर मॉडिफ़ायर, इवेंट का इस्तेमाल नहीं करता है, तो इवेंट कहां भेजा जाता है:
onPreviewKeyEvent— इवेंट को उसके पहले चाइल्ड कॉम्पोनेंट पर भेजता है.onKeyEvent— इवेंट को कंपोज़ेबल के पैरंट कॉम्पोनेंट पर भेजता है.
2. स्पेसबार दबाने की कार्रवाई को फ़िल्टर करना और मैनेज करना
onPreviewKeyEvent या onKeyEvent मॉडिफ़ायर लैम्डा में, की इवेंट को फ़िल्टर करें. इसमें, की रिलीज़ (KeyEventType.KeyUp) स्पेसबार (Key.Spacebar) से मैच होनी चाहिए.
अगर आपका कोड, इवेंट को मैनेज करता है और आपको इवेंट को आगे नहीं भेजना है, तो true वैल्यू दिखाएं. अन्य कॉम्पोनेंट को इवेंट मैनेज करने की अनुमति देने के लिए, false वैल्यू दिखाएं.
पहला विकल्प:
onPreviewKeyEventका इस्तेमाल करनाColumn( modifier = Modifier.onPreviewKeyEvent { event -> if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) { // Handle spacebar keypress to pause/resume playback. true } else { false } } ) { // Content }
दूसरा विकल्प:
onKeyEventका इस्तेमाल करनाColumn( modifier = Modifier.onKeyEvent { event -> if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) { // Handle spacebar keypress to pause/resume playback. true } else { false } } ) { // Content }
नतीजे
अब आपका ऐप्लिकेशन, वीडियो या अन्य मीडिया को रोकने और फिर से चलाने के लिए, स्पेसबार दबाने पर रिस्पॉन्स दे सकता है.
अन्य संसाधन
कीबोर्ड इवेंट और उन्हें मैनेज करने के तरीके के बारे में ज़्यादा जानने के लिए, कीबोर्ड से मिलने वाले इनपुट को मैनेज करना लेख पढ़ें.