WebView هو مكوّن شائع الاستخدام يوفّر نظامًا متقدّمًا لإدارة الحالة. يجب أن تحتفظ WebView بحالتها وموضع التمرير خلال تغييرات الضبط. قد يفقد WebView موضع الانتقال عند تدوير المستخدم للجهاز أو فتح هاتف قابل للطي، ما يضطر المستخدم إلى الانتقال مرة أخرى من أعلى WebView إلى موضع الانتقال السابق.
أفضل الممارسات
تقليل عدد المرات التي يتم فيها إعادة إنشاء WebView يُعد WebView جيدًا في إدارة حالته، ويمكنك الاستفادة من هذه الميزة من خلال إدارة أكبر عدد ممكن من تغييرات الإعدادات. يجب أن يتعامل تطبيقك مع تغييرات الإعدادات لأنّ إعادة إنشاء Activity (وهي طريقة النظام في التعامل مع تغييرات الإعدادات) تؤدي أيضًا إلى إعادة إنشاء WebView، ما يؤدي إلى فقدان WebView لحالته.
المكوّنات
-
android:configChanges: سمة العنصر<activity>في ملف البيان تعرض هذه السمة قائمة بتغييرات الإعدادات التي يتم التعامل معها من خلال النشاط. -
View#invalidate(): الطريقة التي تؤدي إلى إعادة رسم العرض. مكتسب منWebView
الخطوات
لحفظ حالة WebView، تجنَّب إعادة إنشاء Activity قدر الإمكان، ثم اسمح بإبطال 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 بشكل متكرّر إذا لم تتم إدارتها بشكل صحيح. استخدِم برنامج تضمين WebView الخاص بميزة "المرافقة" لحفظ حالة WebView واستعادتها في تطبيقات Compose.
النتائج
تحتفظ مكوّنات WebView في تطبيقك الآن بحالتها وموضع التمرير
عند حدوث تغييرات متعدّدة في الإعدادات، بدءًا من تغيير الحجم إلى تغيير الاتجاه إلى
الطي والفتح.
مراجع إضافية
لمزيد من المعلومات حول تغييرات الإعدادات وكيفية إدارتها، يمكنك الاطّلاع على التعامل مع تغييرات الإعدادات.