WebView durumunu yönetme

WebView, durum yönetimi için gelişmiş bir sistem sunan yaygın olarak kullanılan bir bileşendir. WebView, yapılandırma değişikliklerinde durumunu ve kaydırma konumunu korumalıdır. Kullanıcı cihazı döndürdüğünde veya katlanabilir telefonu açtığında WebView kaydırma konumunu kaybedebilir. Bu durumda kullanıcı, WebView'ün üst kısmından önceki kaydırma konumuna tekrar kaydırmaya zorlanır.

WebView, durumunu yönetme konusunda iyidir. WebView öğesinin yeniden oluşturulma sayısını en aza indirmek için mümkün olduğunca fazla yapılandırma değişikliği yöneterek bu özellikten yararlanabilirsiniz. Etkinlik yeniden oluşturulması (sistemin yapılandırma değişikliklerini işleme şekli) WebView'ı yeniden oluşturduğundan ve bu da WebView'ın durumunu kaybetmesine neden olduğundan uygulamanız yapılandırma değişikliklerini işlemelidir.

Durumu yönetme

Yapılandırma değişiklikleri sırasında Activity öğesini yeniden oluşturmaktan mümkün olduğunca kaçının ve WebView öğesinin durumunu korurken yeniden boyutlandırabilmesi için geçersiz kılınmasına izin verin.

WebView durumunu yönetmek için:

  • Uygulamanız tarafından yönetilen yapılandırma değişikliklerini beyan etme
  • WebView durumunu geçersiz kılma

1. Uygulamanızın AndroidManifest.xml dosyasına yapılandırma değişiklikleri ekleme

Yapılandırma değişikliklerini sistem yerine uygulamanız tarafından yapılacağını belirterek etkinliklerin yeniden oluşturulmasını önleyin:

<activity
  android:name=".MyActivity"
  android:configChanges="screenLayout|orientation|screenSize
      |keyboard|keyboardHidden|smallestScreenSize" />

2. Uygulamanız yapılandırma değişikliği aldığında WebView değerini geçersiz kıl

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'un Composable öğelerini doğru şekilde yeniden boyutlandırmak için hiçbir şeyi geçersiz kılması gerekmediğinden bu adım yalnızca görüntüleme sistemi için geçerlidir. Ancak Düzenle, doğru şekilde yönetilmezse genellikle WebView öğesini yeniden oluşturur.

Önemli noktalar

  • android:configChanges: Manifest <activity> öğesinin özelliği. Etkinlik tarafından yönetilen 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ı.

Sonuçlar

Uygulamanızın WebView bileşenleri artık boyut değiştirmeden yön değişikliklerine ve cihazın katlanması ile açılmasına kadar birden fazla yapılandırma değişikliğinde durumlarını ve kaydırma konumlarını koruyor.

Bu kılavuzu içeren koleksiyonlar

Bu kılavuz, daha geniş Android geliştirme hedeflerini kapsayan, özel olarak seçilmiş Hızlı Kılavuz koleksiyonlarından biridir:

Uygulamanızın tabletler, katlanabilir cihazlar ve ChromeOS cihazlarda optimize edilmiş bir kullanıcı deneyimi sunmasını sağlayın.

Sorularınız veya geri bildiriminiz mi var?

Sık sorulan sorular sayfamıza giderek kısa kılavuzlar hakkında bilgi edinebilir veya bize ulaşarak düşüncelerinizi bizimle paylaşabilirsiniz.