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

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 डेवलपमेंट के बड़े लक्ष्यों के बारे में बताया गया है:

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

क्या आपका कोई सवाल है या सुझाव/राय देनी है

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