ย้ายข้อมูลจากการสังเคราะห์ Kotlin ไปยังการเชื่อมโยงมุมมอง Jetpack

เลิกใช้งานส่วนขยาย 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

เพื่อใช้คลาสการเชื่อมโยงที่สร้างขึ้นแทนพร็อพเพอร์ตี้สังเคราะห์เพื่อ อ้างอิงมุมมอง เปลี่ยนแปลงกิจกรรมและคลาสส่วนย่อยโดยการดำเนินการ ดังต่อไปนี้:

  1. นำการนำเข้าทั้งหมดออกจาก kotlinx.android.synthetic

  2. เพิ่มอินสแตนซ์ของคลาสการเชื่อมโยงที่สร้างขึ้นสำหรับกิจกรรม หรือ ที่จะใช้

  3. เปลี่ยนการอ้างอิงมุมมองทั้งหมดเพื่อใช้อินสแตนซ์คลาสการเชื่อมโยงแทน คุณสมบัติที่ผ่านการสังเคราะห์:

// 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

ดูข้อมูลเพิ่มเติมได้ที่ส่วนการใช้งานใน ในคู่มือการเชื่อมโยงมุมมอง