WebView
adalah komponen yang umum digunakan
dan menawarkan sistem lanjutan untuk pengelolaan status. WebView
harus mempertahankan status dan posisi scroll di seluruh perubahan konfigurasi. WebView
dapat kehilangan posisi scroll saat pengguna memutar perangkat atau membuka
ponsel foldable, yang memaksa pengguna men-scroll lagi dari bagian atas
WebView
ke posisi scroll sebelumnya.
WebView
mampu mengelola statusnya dengan baik. Anda dapat memanfaatkan kualitas ini
dengan mengelola sebanyak mungkin perubahan konfigurasi untuk meminimalkan frekuensi
WebView
dibuat ulang. Aplikasi Anda harus menangani perubahan konfigurasi
karena pembuatan ulang aktivitas (cara sistem menangani perubahan
konfigurasi) membuat ulang WebView
, yang menyebabkan WebView
kehilangan status.
Mengelola status
Hindari pembuatan ulang Activity
sebanyak mungkin
selama perubahan konfigurasi, dan biarkan WebView
dibatalkan sehingga
dapat diubah ukurannya sambil mempertahankan statusnya.
Untuk mengelola status WebView
:
- Mendeklarasikan perubahan konfigurasi yang ditangani oleh aplikasi Anda
- Membatalkan status
WebView
1. Menambahkan perubahan konfigurasi ke file AndroidManifest.xml
aplikasi Anda
Hindari pembuatan ulang aktivitas dengan menentukan perubahan konfigurasi yang ditangani oleh aplikasi Anda (bukan oleh sistem):
<activity
android:name=".MyActivity"
android:configChanges="screenLayout|orientation|screenSize
|keyboard|keyboardHidden|smallestScreenSize" />
2. Membatalkan WebView
setiap kali aplikasi Anda menerima perubahan konfigurasi
Kotlin
override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged(newConfig) webView.invalidate() }
Java
@Override public void onConfigurationChanged(@NonNull Configuration newConfig) { super.onConfigurationChanged(newConfig); webview.invalidate(); }
Langkah ini hanya berlaku untuk sistem tampilan karena Jetpack Compose tidak perlu
membatalkan apa pun untuk mengubah ukuran
elemen Composable
dengan benar. Namun, Compose sering membuat ulang WebView
jika tidak dikelola
dengan benar.
Poin utama
android:configChanges
: Atribut elemen<activity>
manifes. Mencantumkan perubahan konfigurasi yang ditangani oleh aktivitas.View#invalidate()
: Metode yang menyebabkan tampilan digambar ulang. Diwarisi olehWebView
.
Hasil
Komponen WebView
aplikasi Anda sekarang mempertahankan status dan posisi scroll
di beberapa perubahan konfigurasi, mulai dari mengubah ukuran hingga perubahan orientasi
hingga melipat dan membentangkan perangkat.
Koleksi yang berisi panduan ini
Panduan ini adalah bagian dari koleksi Panduan Cepat pilihan yang membahas sasaran pengembangan Android yang lebih luas:
![](https://developer.android.google.cn/static/images/quick-guides/collection-illustration.png?hl=id)