बड़ी स्क्रीन के लिए ऑप्टिमाइज़ करने का मतलब है कि बाहरी कीबोर्ड से मिले इनपुट को हैंडल किया जा सकता है. जैसे, वीडियो और अन्य मीडिया को रोकने या फिर से चलाने के लिए, स्पेसबार दबाने पर प्रतिक्रिया देना. यह सुविधा खास तौर पर टैबलेट के लिए फ़ायदेमंद है. टैबलेट को अक्सर बाहरी कीबोर्ड से कनेक्ट किया जाता है. साथ ही, Chromebook के लिए भी यह सुविधा फ़ायदेमंद है. Chromebook में आम तौर पर बाहरी कीबोर्ड होता है, लेकिन इसे टैबलेट मोड में भी इस्तेमाल किया जा सकता है.
जब विंडो में सिर्फ़ मीडिया होता है (जैसे, फ़ुल-स्क्रीन वीडियो चलाना), तो Jetpack Compose में स्क्रीन लेवल पर कीप्रेस इवेंट का जवाब दें.
सबसे सही तरीके
जब भी आपका ऐप्लिकेशन कोई मीडिया फ़ाइल चलाता है, तो उपयोगकर्ताओं के पास फ़िज़िकल कीबोर्ड पर Spacebar दबाकर, मीडिया फ़ाइल को रोकने और फिर से चलाने का विकल्प होना चाहिए.
सामग्री
KEYCODE_SPACE: Spacebar के लिए कुंजी कोड कॉन्स्टेंट.onPreviewKeyEvent:Modifier, जो किसी कॉम्पोनेंट को हार्डवेयर की इवेंट को इंटरसेप्ट करने की सुविधा देता है. ऐसा तब होता है, जब उस कॉम्पोनेंट या उसके किसी चाइल्ड कॉम्पोनेंट पर फ़ोकस किया जाता है.onKeyEvent:onPreviewKeyEventकी तरह ही, यहModifierकिसी कॉम्पोनेंट को हार्डवेयर के मुख्य इवेंट को इंटरसेप्ट करने की सुविधा देता है. ऐसा तब होता है, जब कॉम्पोनेंट (या उसके किसी चाइल्ड कॉम्पोनेंट) पर फ़ोकस किया जाता है.
चरण
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 }
विकल्प B:
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 }
नतीजे
अब आपका ऐप्लिकेशन, स्पेसबार दबाने पर वीडियो या अन्य मीडिया को रोकने और फिर से चलाने की सुविधा दे सकता है.
अन्य संसाधन
कीबोर्ड इवेंट और उन्हें मैनेज करने के तरीके के बारे में ज़्यादा जानने के लिए, कीबोर्ड इनपुट को मैनेज करना लेख पढ़ें.