WebView
एक आम तौर पर इस्तेमाल किया जाने वाला कॉम्पोनेंट है. यह स्टेटस मैनेजमेंट के लिए बेहतर सिस्टम उपलब्ध कराता है. कॉन्फ़िगरेशन में होने वाले बदलावों के बावजूद, WebView
को अपनी स्थिति और स्क्रोल की पोज़िशन बनाए रखनी चाहिए. जब कोई उपयोगकर्ता डिवाइस को घुमाता है या फ़ोल्ड किए जा सकने वाले फ़ोन को खोलता है, तो WebView
के स्क्रोल की स्थिति बदल सकती है. इससे उपयोगकर्ता को WebView
के सबसे ऊपर से, स्क्रोल की पिछली स्थिति तक फिर से स्क्रोल करना पड़ता है.
WebView
अपनी स्थिति को मैनेज करने में अच्छा है. इस क्वालिटी का फ़ायदा पाने के लिए, कॉन्फ़िगरेशन में जितने हो सके उतने बदलाव मैनेज करें. इससे WebView
को फिर से बनाने की संख्या कम हो जाएगी. आपके ऐप्लिकेशन को कॉन्फ़िगरेशन में हुए बदलावों को मैनेज करना चाहिए, क्योंकि गतिविधि को फिर से बनाना (सिस्टम का कॉन्फ़िगरेशन में हुए बदलावों को मैनेज करने का तरीका) WebView
को फिर से बनाता है. इस वजह से, WebView
की स्थिति बदल जाती है.
स्टेट मैनेज करना
कॉन्फ़िगरेशन में बदलाव करते समय, Activity
को फिर से बनाने से जितना हो सके उतना बचें. साथ ही, WebView
को अमान्य होने दें, ताकि वह अपनी स्थिति बनाए रखते हुए साइज़ बदल सके.
WebView
की स्थिति मैनेज करने के लिए:
- आपके ऐप्लिकेशन से मैनेज किए जा रहे कॉन्फ़िगरेशन में हुए बदलावों के बारे में बताना
WebView
स्टेटस को अमान्य करना
1. अपने ऐप्लिकेशन की AndroidManifest.xml
फ़ाइल में कॉन्फ़िगरेशन में किए गए बदलाव जोड़ना
सिस्टम के बजाय, आपके ऐप्लिकेशन से मैनेज किए जाने वाले कॉन्फ़िगरेशन में हुए बदलावों की जानकारी देकर, गतिविधि को फिर से बनाने से बचें:
<activity
android:name=".MyActivity"
android:configChanges="screenLayout|orientation|screenSize
|keyboard|keyboardHidden|smallestScreenSize" />
2. जब भी आपके ऐप्लिकेशन में कॉन्फ़िगरेशन में बदलाव होता है, तब WebView
को अमान्य कर दें
Kotlin
override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged(newConfig) webView.invalidate() }
Java
@Override public void onConfigurationChanged(@NonNull Configuration newConfig) { super.onConfigurationChanged(newConfig); webview.invalidate(); }
यह चरण सिर्फ़ व्यू सिस्टम पर लागू होता है, क्योंकि Composable
एलिमेंट का साइज़ सही तरीके से बदलने के लिए, Jetpack Compose को किसी भी चीज़ को अमान्य करने की ज़रूरत नहीं होती. हालांकि, अगर WebView
को सही तरीके से मैनेज नहीं किया जाता है, तो Compose अक्सर उसे फिर से बना देता है.
प्रमुख बिंदु
android:configChanges
: मेनिफ़ेस्ट<activity>
एलिमेंट का एट्रिब्यूट. गतिविधि से मैनेज किए गए कॉन्फ़िगरेशन में हुए बदलावों की सूची दिखाता है.View#invalidate()
: वह तरीका जिससे व्यू फिर से रेंडर होता है.WebView
ने इनहेरिट किया है.
नतीजे
आपके ऐप्लिकेशन के WebView
कॉम्पोनेंट अब कॉन्फ़िगरेशन में होने वाले कई बदलावों के बावजूद अपनी स्थिति और स्क्रोल की पोज़िशन बनाए रखते हैं. इन बदलावों में, डिवाइस के साइज़ में बदलाव करना, ओरिएंटेशन में बदलाव करना, और डिवाइस को फ़ोल्ड और अनफ़ोल्ड करना शामिल है.
ऐसे संग्रह जिनमें यह गाइड शामिल है
यह गाइड, चुने गए क्विक गाइड के कलेक्शन का हिस्सा है. इसमें Android डेवलपमेंट के बड़े लक्ष्यों के बारे में बताया गया है:
![](https://developer.android.google.cn/static/images/quick-guides/collection-illustration.png?hl=hi)