वेबव्यू की स्थिति मैनेज करना

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 से इनहेरिट किया गया.

ऐसे कलेक्शन जिनमें यह गाइड शामिल है

यह गाइड, Quick Guide के इन चुने गए कलेक्शन का हिस्सा है. इनमें Android डेवलपमेंट के ज़्यादातर लक्ष्यों के बारे में बताया गया है:

अपने ऐप्लिकेशन को टैबलेट, फ़ोल्ड किए जा सकने वाले डिवाइसों, और ChromeOS डिवाइसों पर ऑप्टिमाइज़ किए गए उपयोगकर्ता अनुभव के साथ काम करने की सुविधा दें.

कोई सवाल पूछना या सुझाव/राय देना या शिकायत करना

अक्सर पूछे जाने वाले सवालों वाले पेज पर जाएं और क्विक गाइड के बारे में जानें. इसके अलावा, हमसे संपर्क करें और हमें अपने सुझाव/राय दें या शिकायत करें.