WebView एक ऐसा कॉम्पोनेंट है जिसका इस्तेमाल आम तौर पर किया जाता है. यह कॉम्पोनेंट, स्टेट मैनेजमेंट के लिए एक बेहतर सिस्टम उपलब्ध कराता है. कॉन्फ़िगरेशन में बदलाव होने पर भी, WebView को अपनी स्थिति और स्क्रोल की पोज़िशन बनाए रखनी चाहिए. जब उपयोगकर्ता डिवाइस को घुमाता है या फ़ोल्ड किए जा सकने वाले फ़ोन को खोलता है, तो WebView की स्क्रोल पोज़िशन खत्म हो सकती है. इससे उपयोगकर्ता को WebView में, पिछली स्क्रोल पोज़िशन पर जाने के लिए, सबसे ऊपर से फिर से स्क्रोल करना पड़ता है.
WebView अपनी स्थिति को मैनेज करने में बेहतर है. कॉन्फ़िगरेशन में ज़्यादा से ज़्यादा बदलावों को मैनेज करके, इस सुविधा का फ़ायदा लिया जा सकता है. इससे WebView को फिर से बनाने की संख्या कम हो जाती है. आपके ऐप्लिकेशन को कॉन्फ़िगरेशन में हुए बदलावों को हैंडल करना चाहिए. ऐसा इसलिए, क्योंकि ऐक्टिविटी को फिर से बनाने पर (कॉन्फ़िगरेशन में हुए बदलावों को हैंडल करने का सिस्टम का तरीका), WebView को फिर से बनाया जाता है. इससे WebView की स्थिति खत्म हो जाती है.
नतीजे
आपके ऐप्लिकेशन के WebView कॉम्पोनेंट, कॉन्फ़िगरेशन में कई बदलाव होने पर भी अपनी स्थिति और स्क्रोल की पोज़िशन बनाए रखते हैं. जैसे, साइज़ बदलने, ओरिएंटेशन बदलने, डिवाइस को फ़ोल्ड करने, और डिवाइस को अनफ़ोल्ड करने पर.
वर्शन के साथ काम करने की सुविधा
यह सुविधा, एपीआई के सभी लेवल के साथ काम करती है.
डिपेंडेंसी
कोई नहीं.
स्थिति मैनेज करना
कॉन्फ़िगरेशन में बदलाव होने पर, ऐक्टिविटी को फिर से बनाने से बचें. साथ ही, 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();
}
यह चरण सिर्फ़ व्यू सिस्टम पर लागू होता है, क्योंकि Jetpack Compose को
किसी भी चीज़ को अमान्य करने की ज़रूरत नहीं होती, ताकि Composable एलिमेंट का साइज़ सही तरीके से बदला जा सके. हालांकि, अगर Compose को सही तरीके से मैनेज नहीं किया जाता है, तो वह अक्सर WebView को फिर से बनाता है.
खास बातें
android:configChanges: मेनिफ़ेस्ट के<activity>एलिमेंट का एट्रिब्यूट. इसमें, ऐक्टिविटी से हैंडल किए जाने वाले कॉन्फ़िगरेशन में हुए बदलावों की सूची होती है.View#invalidate(): यह एक ऐसा तरीका है जिससे व्यू को फिर से बनाया जाता है.WebViewसे इनहेरिट किया गया.
इस गाइड को शामिल करने वाले कलेक्शन
यह गाइड, चुने गए उन क्विक गाइड कलेक्शन का हिस्सा है जिनमें Android डेवलपमेंट के बड़े लक्ष्यों के बारे में बताया गया है: