WebView durumunu yönetme

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önetmede 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 şekli) 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şiklikleri, cihazı katlama ve açma gibi birden fazla yapılandırma değişikliğinde durumlarını ve kaydırma konumlarını korur.

Sürüm uyumluluğu

Bu uygulama, tüm API düzeyleriyle uyumludur.

Bağımlılıklar

Yok.

Yönetim durumu

Yapılandırma değişiklikleri sırasında etkinlik yeniden oluşturulmasını mümkün olduğunca önleyin ve WebView öğesinin geçersiz kılınmasına izin verin. Böylece öğe, 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ız bir yapılandırma değişikliği aldığında 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, doğru yönetilmezse Oluşturma özelliği WebView simgesini sıklıkla 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 kapsamlı Android geliştirme hedeflerini ele alan aşağıdaki seçilmiş Hızlı Kılavuz koleksiyonlarının bir parçasıdır:

Uygulamanızın tabletlerde, katlanabilir cihazlarda ve ChromeOS cihazlarda optimize edilmiş bir kullanıcı deneyimini desteklemesini sağlayın.

Sorularınız veya geri bildiriminiz mi var?

Sık sorulan sorular sayfamıza giderek hızlı kılavuzlar hakkında bilgi edinebilir veya düşüncelerinizi bize iletebilirsiniz.