जब भी किसी डिवाइस से कीबोर्ड अटैच या डिटैच किया जाता है, तब Android सिस्टम कॉन्फ़िगरेशन में बदलाव करता है. उपयोगकर्ताओं को बेहतर अनुभव देने और डिटैच किए जा सकने वाले कीबोर्ड वाले बड़े स्क्रीन वाले डिवाइसों पर उनकी प्रॉडक्टिविटी बढ़ाने के लिए, आपके ऐप्लिकेशन को कीबोर्ड कॉन्फ़िगरेशन में होने वाले बदलावों को असरदार तरीके से मैनेज करना होगा.
नतीजे
आपका ऐप्लिकेशन, बाहरी कीबोर्ड को अटैच या डिटैच करने पर जवाब देता है. इसके लिए, उसे चालू गतिविधि को फिर से बनाने की ज़रूरत नहीं पड़ती.
कीबोर्ड बदलने पर गतिविधि को फिर से शुरू होने से रोकना है
डिटैच किए जा सकने वाले कीबोर्ड को अटैच या डिटैच करने पर, आपकी गतिविधि को फिर से बनाने से रोकने के लिए, अपने ऐप्लिकेशन मेनिफ़ेस्ट के configChanges एट्रिब्यूट में कीबोर्ड से जुड़ी वैल्यू जोड़ें. साथ ही, गतिविधि की व्यू हैरारकी में एक व्यू जोड़ें, ताकि आपका ऐप्लिकेशन कॉन्फ़िगरेशन में होने वाले बदलावों को सुन सके.
1. configChanges एट्रिब्यूट की वैल्यू सबमिट करना
ऐप्लिकेशन मेनिफ़ेस्ट में <activity> एलिमेंट को अपडेट करें. इसके लिए, पहले से मैनेज किए गए कॉन्फ़िगरेशन में किए गए बदलावों की सूची में keyboard|keyboardHidden वैल्यू जोड़ें:
<activity
...
android:configChanges="...|keyboard|keyboardHidden">
2. व्यू हैरारकी में एक खाली व्यू जोड़ना
एक नया व्यू घोषित करें और व्यू के onConfigurationChanged() तरीके में अपना हैंडलर कोड जोड़ें:
Kotlin
val v = object : View(this) { override fun onConfigurationChanged(newConfig: Configuration?) { super.onConfigurationChanged(newConfig) // Handler code here. } }
Java
View v = new View(this) { @Override protected void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // Handler code here. } };
प्रमुख बिंदु
android:configChanges: यह ऐप्लिकेशन मेनिफ़ेस्ट के<activity>एलिमेंट का एट्रिब्यूट है. यह सिस्टम को उन कॉन्फ़िगरेशन में हुए बदलावों के बारे में बताता है जिन्हें ऐप्लिकेशन मैनेज करता है.View#onConfigurationChanged(): यह एक ऐसा तरीका है जो ऐप्लिकेशन के नए कॉन्फ़िगरेशन के लागू होने पर काम करता है.
ऐसे कलेक्शन जिनमें यह गाइड शामिल है
यह गाइड, Quick Guide के इन चुने गए कलेक्शन का हिस्सा है. इनमें Android डेवलपमेंट के ज़्यादातर लक्ष्यों के बारे में बताया गया है: