WebView একটি বহুল ব্যবহৃত কম্পোনেন্ট যা স্টেট ম্যানেজমেন্টের জন্য একটি উন্নত সিস্টেম প্রদান করে। কনফিগারেশন পরিবর্তনের পরেও একটি WebView তার স্টেট এবং স্ক্রল পজিশন বজায় রাখতে হয়। ব্যবহারকারী যখন ডিভাইসটি ঘোরান বা একটি ফোল্ডেবল ফোন খোলেন, তখন WebView তার স্ক্রল পজিশন হারাতে পারে, যার ফলে ব্যবহারকারীকে WebView উপর থেকে পূর্ববর্তী স্ক্রল পজিশনে আবার স্ক্রল করতে হয়।
WebView তার স্টেট পরিচালনা করতে বেশ পারদর্শী। আপনি এই গুণটির সুবিধা নিতে পারেন যত বেশি সম্ভব কনফিগারেশন পরিবর্তন পরিচালনা করার মাধ্যমে, যাতে একটি WebView পুনরায় তৈরি হওয়ার সংখ্যা কমানো যায়। আপনার অ্যাপের কনফিগারেশন পরিবর্তনগুলো পরিচালনা করা উচিত, কারণ অ্যাক্টিভিটি রিক্রিয়েশন (কনফিগারেশন পরিবর্তন পরিচালনা করার জন্য সিস্টেমের পদ্ধতি) WebView টিকে পুনরায় তৈরি করে, যার ফলে WebView টি তার স্টেট হারিয়ে ফেলে।
ফলাফল
আপনার অ্যাপের WebView কম্পোনেন্টগুলো আকার পরিবর্তন, ওরিয়েন্টেশন পরিবর্তন এবং ডিভাইস ভাঁজ ও খোলার মতো একাধিক কনফিগারেশন পরিবর্তনের পরেও তাদের অবস্থা এবং স্ক্রোল অবস্থান ধরে রাখে।
সংস্করণ সামঞ্জস্য
এই বাস্তবায়নটি সকল এপিআই স্তরের সাথে সামঞ্জস্যপূর্ণ।
নির্ভরশীলতা
কিছুই না।
অবস্থা পরিচালনা করুন
কনফিগারেশন পরিবর্তনের সময় অ্যাক্টিভিটি পুনরায় তৈরি করা যথাসম্ভব এড়িয়ে চলুন, এবং WebView ইনভ্যালিডেট হতে দিন যাতে এটি তার অবস্থা বজায় রেখে আকার পরিবর্তন করতে পারে।
WebView অবস্থা পরিচালনা করতে:
- আপনার অ্যাপ দ্বারা পরিচালিত কনফিগারেশন পরিবর্তনগুলি ঘোষণা করুন
-
WebViewএর অবস্থা বাতিল করুন
১. আপনার অ্যাপের AndroidManifest.xml ফাইলে কনফিগারেশন পরিবর্তনগুলো যোগ করুন।
সিস্টেমের পরিবর্তে আপনার অ্যাপ দ্বারা পরিচালিত কনফিগারেশন পরিবর্তনগুলি নির্দিষ্ট করে অ্যাক্টিভিটি পুনরায় তৈরি হওয়া এড়িয়ে চলুন:
<activity
android:name=".MyActivity"
android:configChanges="screenLayout|orientation|screenSize
|keyboard|keyboardHidden|smallestScreenSize" />
২. যখনই আপনার অ্যাপে কোনো কনফিগারেশন পরিবর্তন আসবে, WebView বাতিল করে দিন।
কোটলিন
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
webView.invalidate()
}
জাভা
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
webview.invalidate();
}
এই ধাপটি শুধুমাত্র ভিউ সিস্টেমের জন্য প্রযোজ্য, কারণ Composable এলিমেন্টগুলোর আকার সঠিকভাবে পরিবর্তন করার জন্য জেটপ্যাক কম্পোজকে কোনো কিছু ইনভ্যালিডেট করার প্রয়োজন হয় না। তবে, সঠিকভাবে পরিচালনা করা না হলে কম্পোজ প্রায়শই একটি WebView পুনরায় তৈরি করে।
মূল বিষয়গুলো
-
android:configChanges: ম্যানিফেস্টের<activity>এলিমেন্টের অ্যাট্রিবিউট। অ্যাক্টিভিটি দ্বারা সম্পাদিত কনফিগারেশন পরিবর্তনগুলোর তালিকা এখানে থাকে। -
View#invalidate(): এই মেথডটি একটি ভিউকে পুনরায় আঁকতে সাহায্য করে। এটিWebViewথেকে উত্তরাধিকারসূত্রে প্রাপ্ত।
যে সংগ্রহগুলিতে এই নির্দেশিকাটি রয়েছে
এই নির্দেশিকাটি বিশেষভাবে নির্বাচিত কুইক গাইড সংকলনগুলোর একটি অংশ, যা অ্যান্ড্রয়েড ডেভেলপমেন্টের বৃহত্তর লক্ষ্যগুলো পূরণ করে:
