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:
![](https://developer.android.com/static/images/quick-guides/collection-illustration.png?hl=tr)