Kotlin সিন্থেটিক্স থেকে Jetpack ভিউ বাইন্ডিংয়ে মাইগ্রেট করা

Kotlin Android এক্সটেনশন বন্ধ করে দেওয়া হয়েছে, যার অর্থ হল ভিউ বাইন্ডিংয়ের জন্য Kotlin সিন্থেটিক্স ব্যবহার করার সুবিধা আর কাজ করে না। আপনার অ্যাপ ভিউ বাইন্ডিংয়ের জন্য Kotlin সিন্থেটিক্স ব্যবহার করলে, Jetpack ভিউ বাইন্ডিংয়ে মাইগ্রেট করতে এই নির্দেশিকা ব্যবহার করুন।

আপনার অ্যাপ যদি ভিউ বাইন্ডিংয়ের জন্য আগে থেকেই Kotlin সিন্থেটিক্স ব্যবহার না করে, তাহলে ব্যবহারের প্রাথমিক তথ্যের জন্য ভিউ বাইন্ডিং দেখুন।

Gradle ফাইল আপডেট করুন

Android এক্সটেনশনের মতো, Jetpack ভিউ বাইন্ডিং মডিউল-বাই-মডিউল ভিত্তিতে চালু করা হয়। ভিউ বাইন্ডিং ব্যবহার করে এমন প্রতিটি মডিউলের জন্য, মডিউল-লেভেল build.gradle ফাইলে viewBinding বিল্ড বিকল্পটি true-এ সেট করুন:

গ্ৰুভি

android {
    ...
    buildFeatures {
        viewBinding true
    }
}

Kotlin

android {
    ...
    buildFeatures {
        viewBinding = true
    }
}

আপনার অ্যাপ যদি Parcelable ফিচার ব্যবহার না করে, তাহলে Kotlin Android এক্সটেনশন চালু করে এমন লাইনটি সরিয়ে দিন:

গ্ৰুভি

plugins {
  id 'kotlin-android-extensions'
}

Kotlin

plugins {
    kotlin("android.extensions")
}

কোনও মডিউলে ভিউ বাইন্ডিং চালু করার ব্যাপারে আরও জানতে, সেট-আপ নির্দেশাবলী দেখুন।

অ্যাক্টিভিটি ও ফ্র্যাগমেন্ট ক্লাস আপডেট করুন

Jetpack ভিউ বাইন্ডিংয়ের মাধ্যমে, মডিউলে থাকা প্রতিটি XML লেআউট ফাইলের জন্য একটি বাইন্ডিং ক্লাস তৈরি করা হয়। এই বাইন্ডিং ক্লাসের নাম হল XML ফাইলের নাম, যা Pascal case-এ লেখা এবং শেষে 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

আরও জানতে, ভিউ বাইন্ডিং গাইডের ব্যবহার বিভাগ দেখুন।