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