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
باطل کنید
کاتلین
override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged(newConfig) webView.invalidate() }
جاوا
@Override public void onConfigurationChanged(@NonNull Configuration newConfig) { super.onConfigurationChanged(newConfig); webview.invalidate(); }
این مرحله فقط برای سیستم view اعمال می شود، زیرا Jetpack Compose برای تغییر اندازه عناصر Composable
به درستی نیازی به بی اعتبار کردن چیزی ندارد. با این حال، Compose اغلب اگر به درستی مدیریت نشود، یک WebView
دوباره ایجاد می کند.
نکات کلیدی
-
android:configChanges
: ویژگی عنصر<activity>
مانیفست. تغییرات پیکربندی انجام شده توسط فعالیت را فهرست می کند. -
View#invalidate()
: روشی که باعث میشود یک view دوباره ترسیم شود. توسطWebView
به ارث رسیده است.
نتایج
مؤلفههای WebView
برنامه شما اکنون وضعیت خود را حفظ کرده و موقعیت خود را در چندین تغییر پیکربندی، از تغییر اندازه گرفته تا تغییر جهت، تا کردن و باز کردن دستگاه حفظ میکنند.
مجموعه هایی که حاوی این راهنما هستند
این راهنما بخشی از مجموعههای راهنمای Quick Guide است که اهداف توسعه Android گستردهتری را پوشش میدهد:
![](https://developer.android.com/static/images/quick-guides/collection-illustration.png?hl=fa)