WebView
, durum yönetimi için gelişmiş bir sistem sunan ve yaygın olarak kullanılan bir bileşendir. Bir WebView
, yapılandırma değişiklikleri sırasında durumunu ve kaydırma konumunu korumalıdır. Kullanıcı cihazı döndürdüğünde veya katlanabilir bir telefonu açtığında WebView
kaydırma konumunu kaybedebilir. Bu durumda kullanıcının, WebView
'nın en üstünden önceki kaydırma konumuna tekrar kaydırması gerekir.
WebView
, durumunu yönetme konusunda iyidir. WebView
öğesinin yeniden oluşturulma sayısını en aza indirmek için mümkün olduğunca çok yapılandırma değişikliği yaparak bu kaliteden yararlanabilirsiniz. Uygulamanız, yapılandırma değişikliklerini işlemelidir. Çünkü etkinlik yeniden oluşturma (sistemin yapılandırma değişikliklerini işleme yöntemi) WebView
öğesini yeniden oluşturur ve bu da WebView
öğesinin durumunu kaybetmesine neden olur.
Sonuçlar
Uygulamanızın WebView
bileşenleri, yeniden boyutlandırma, yön değişikliği, cihazı katlama ve açma gibi birden fazla yapılandırma değişikliğinde durumlarını ve kaydırma konumlarını korur.
Yönetim durumunu yönetme
Yapılandırma değişiklikleri sırasında etkinliklerin yeniden oluşturulmasını mümkün olduğunca önleyin ve WebView
'nın geçersiz kılınmasına izin verin. Böylece WebView
, durumunu koruyarak yeniden boyutlandırılabilir.
WebView
durumunu yönetmek için:
- Uygulamanız tarafından işlenen yapılandırma değişikliklerini bildirme
WebView
durumunu geçersiz kılma
1. Uygulamanızın AndroidManifest.xml
dosyasına yapılandırma değişiklikleri ekleme
Uygulamanızın (sistem yerine) işlediği yapılandırma değişikliklerini belirterek etkinliğin yeniden oluşturulmasını önleyin:
<activity
android:name=".MyActivity"
android:configChanges="screenLayout|orientation|screenSize
|keyboard|keyboardHidden|smallestScreenSize" />
2. Uygulamanızda yapılandırma değişikliği olduğunda WebView
öğesini geçersiz kılın.
Kotlin
override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged(newConfig) webView.invalidate() }
Java
@Override public void onConfigurationChanged(@NonNull Configuration newConfig) { super.onConfigurationChanged(newConfig); webview.invalidate(); }
Bu adım yalnızca görünüm sistemi için geçerlidir. Jetpack Compose, Composable
öğelerini doğru şekilde yeniden boyutlandırmak için herhangi bir şeyi geçersiz kılmaya gerek duymaz. Ancak, Compose doğru şekilde yönetilmezse WebView
öğesini sık sık yeniden oluşturur.
Önemli noktalar
android:configChanges
: Manifest<activity>
öğesinin özelliği. Etkinlik tarafından işlenen yapılandırma değişikliklerini listeler.View#invalidate()
: Bir görünümün yeniden çizilmesine neden olan yöntem.WebView
tarafından devralındı.
Bu kılavuzu içeren koleksiyonlar
Bu kılavuz, daha geniş Android geliştirme hedeflerini kapsayan şu seçilmiş Hızlı Kılavuz koleksiyonlarının bir parçasıdır:
