WebView
เป็นคอมโพเนนต์ที่ใช้กันโดยทั่วไปซึ่งมีระบบขั้นสูงสำหรับการจัดการสถานะ WebView
ต้องรักษาสถานะและตำแหน่งการเลื่อนไว้ตลอดการเปลี่ยนแปลงการกำหนดค่า WebView
อาจสูญเสียตำแหน่งการเลื่อนเมื่อผู้ใช้หมุนอุปกรณ์หรือกางโทรศัพท์แบบพับได้ ซึ่งจะทำให้ผู้ใช้ต้องเลื่อนอีกครั้งจากด้านบนของWebView
ไปยังตำแหน่งการเลื่อนก่อนหน้า
WebView
จัดการสถานะได้ดี คุณใช้ประโยชน์จากคุณภาพนี้ได้ด้วยการจัดการการเปลี่ยนแปลงการกําหนดค่าให้มากที่สุดเพื่อลดจํานวนครั้งที่ต้องสร้าง WebView
ขึ้นมาใหม่ แอปควรจัดการการเปลี่ยนแปลงการกําหนดค่าเนื่องจากการสร้างกิจกรรมใหม่ (วิธีจัดการการเปลี่ยนแปลงการกําหนดค่าของระบบ) จะสร้าง WebView
ขึ้นมาใหม่ ซึ่งทําให้ WebView
สูญเสียสถานะ
จัดการสถานะ
หลีกเลี่ยงการสร้าง Activity
ใหม่มากที่สุดเท่าที่จะเป็นไปได้ในระหว่างการเปลี่ยนแปลงการกําหนดค่า และปล่อยให้ WebView
ลบล้างเพื่อให้ปรับขนาดได้ในขณะที่ยังคงสถานะไว้
วิธีจัดการสถานะ WebView
- ประกาศการเปลี่ยนแปลงการกําหนดค่าที่แอปจัดการ
- ทำให้สถานะ
WebView
เป็นโมฆะ
1. เพิ่มการเปลี่ยนแปลงการกําหนดค่าลงในไฟล์ AndroidManifest.xml
ของแอป
หลีกเลี่ยงการสร้างกิจกรรมอีกครั้งโดยระบุการเปลี่ยนแปลงการกําหนดค่าที่แอปของคุณจัดการ (แทนที่จะเป็นระบบ)
<activity
android:name=".MyActivity"
android:configChanges="screenLayout|orientation|screenSize
|keyboard|keyboardHidden|smallestScreenSize" />
2. ทำให้ WebView
ใช้งานไม่ได้ทุกครั้งที่แอปของคุณได้รับการเปลี่ยนการกำหนดค่า
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 ไม่จำเป็นต้องทำให้ข้อมูลใดๆ ใช้งานไม่ได้เพื่อปรับขนาดองค์ประกอบ Composable
ให้ถูกต้อง อย่างไรก็ตาม Compose จะสร้าง WebView
ขึ้นมาใหม่บ่อยครั้งหากไม่ได้รับการจัดการอย่างถูกต้อง
ข้อมูลสำคัญ
android:configChanges
: แอตทริบิวต์ขององค์ประกอบ<activity>
ในไฟล์ Manifest แสดงรายการการเปลี่ยนแปลงการกําหนดค่าที่จัดการโดยกิจกรรมView#invalidate()
: เมธอดที่ทำให้วาดมุมมองใหม่ รับค่าโดยWebView
ผลลัพธ์
ตอนนี้คอมโพเนนต์ WebView
ของแอปจะยังคงสถานะและตำแหน่งการเลื่อนไว้แม้จะมีการเปลี่ยนแปลงการกำหนดค่าหลายอย่าง ตั้งแต่การปรับขนาดไปจนถึงการเปลี่ยนแปลงการวางแนว ตลอดจนการพับและการกางอุปกรณ์
คอลเล็กชันที่มีคู่มือนี้
คู่มือนี้เป็นส่วนหนึ่งของคอลเล็กชันคู่มือฉบับย่อที่มีการดูแลจัดการ ซึ่งครอบคลุมเป้าหมายการพัฒนา Android ที่กว้างขึ้น ดังนี้
![](https://developer.android.google.cn/static/images/quick-guides/collection-illustration.png?hl=th)