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 jumlah waktu 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.
Hasil
Komponen WebView
aplikasi Anda mempertahankan status dan posisi scroll di beberapa perubahan konfigurasi, mulai dari mengubah ukuran hingga perubahan orientasi hingga melipat dan membentangkan perangkat.
Mengelola status
Hindari pembuatan ulang aktivitas 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
.
Koleksi yang berisi panduan ini
Panduan ini adalah bagian dari koleksi Panduan Cepat pilihan yang mencakup tujuan pengembangan Android yang lebih luas:
