เลิกใช้งานส่วนขยาย Android ของ Kotlin แล้ว ซึ่งหมายความว่าการใช้ Kotlin ระบบไม่รองรับการสังเคราะห์สำหรับการเชื่อมโยงมุมมองอีกต่อไป หากแอปใช้ Kotlin สังเคราะห์สําหรับการเชื่อมโยงมุมมอง ใช้คู่มือนี้เพื่อย้ายข้อมูลไปยังการเชื่อมโยงมุมมองของ Jetpack
หากแอปยังไม่ได้ใช้ Kotlin สังเคราะห์สำหรับการเชื่อมโยงมุมมอง โปรดดู View การเชื่อมโยงสำหรับข้อมูลการใช้งานพื้นฐาน
อัปเดตไฟล์ Gradle
การเชื่อมโยงมุมมอง Jetpack จะเปิดใช้แบบโมดูลต่อโมดูลเช่นเดียวกับ Android Extensions
พื้นฐาน สำหรับแต่ละโมดูลที่ใช้การเชื่อมโยงข้อมูลพร็อพเพอร์ตี้ ให้ตั้งค่าบิลด์ viewBinding
เป็น true
ในไฟล์ build.gradle
ระดับโมดูล
ดึงดูด
android { ... buildFeatures { viewBinding true } }
Kotlin
android { ... buildFeatures { viewBinding = true } }
หากแอปไม่ได้ใช้ Parcelable
ใหม่ ให้นำบรรทัดที่เปิดใช้ส่วนขยาย Android ของ Kotlin ออก
ดึงดูด
plugins { id 'kotlin-android-extensions' }
Kotlin
plugins { kotlin("android.extensions") }
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการเปิดใช้การเชื่อมโยงมุมมองในโมดูล โปรดดูการตั้งค่า วิธีการ
อัปเดตกิจกรรมและคลาสส่วนย่อย
เมื่อใช้การเชื่อมโยงมุมมอง Jetpack ระบบจะสร้างคลาสการเชื่อมโยงสำหรับไฟล์เลย์เอาต์ XML แต่ละไฟล์
ที่โมดูลมีด้วย ชื่อของคลาสการเชื่อมโยงนี้คือชื่อของ XML
ในกรณีของ Pascal ที่มีคำว่า Binding ต่อท้าย ตัวอย่างเช่น หาก
ชื่อไฟล์เลย์เอาต์คือ result_profile.xml
ซึ่งเป็นชื่อของที่สร้างขึ้น
คลาสการผูกคือ ResultProfileBinding
เพื่อใช้คลาสการเชื่อมโยงที่สร้างขึ้นแทนพร็อพเพอร์ตี้สังเคราะห์เพื่อ อ้างอิงมุมมอง เปลี่ยนแปลงกิจกรรมและคลาสส่วนย่อยโดยการดำเนินการ ดังต่อไปนี้:
นำการนำเข้าทั้งหมดออกจาก
kotlinx.android.synthetic
เพิ่มอินสแตนซ์ของคลาสการเชื่อมโยงที่สร้างขึ้นสำหรับกิจกรรม หรือ ที่จะใช้
- สำหรับกิจกรรม ให้ทำตามวิธีการในหัวข้อใช้การเชื่อมโยงมุมมองใน
กิจกรรมเพื่อเพิ่มปริมาณ
ในเหตุการณ์
onCreate()
- สำหรับส่วนย่อย ให้ทำตามวิธีการในใช้การเชื่อมโยงมุมมองใน
ส่วนย่อยเพื่อทำให้อินสแตนซ์สูงเกินจริง
ในส่วนย่อยของคุณ
onCreateView()
- สำหรับกิจกรรม ให้ทำตามวิธีการในหัวข้อใช้การเชื่อมโยงมุมมองใน
กิจกรรมเพื่อเพิ่มปริมาณ
ในเหตุการณ์
เปลี่ยนการอ้างอิงมุมมองทั้งหมดเพื่อใช้อินสแตนซ์คลาสการเชื่อมโยงแทน คุณสมบัติที่ผ่านการสังเคราะห์:
// Reference to "name" TextView using synthetic properties.
name.text = viewModel.nameString
// Reference to "name" TextView using the binding class instance.
binding.name.text = viewModel.nameString
ดูข้อมูลเพิ่มเติมได้ที่ส่วนการใช้งานใน ในคู่มือการเชื่อมโยงมุมมอง
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- ดูการเชื่อมโยง
- ภาพรวมของไลบรารีการแบ่งหน้า
- ทดสอบการใช้งานการแบ่งหน้า