কোটলিন সিন্থেটিক্স থেকে জেটপ্যাক ভিউ বাইন্ডিং-এ স্থানান্তর করুন

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

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

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

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

গ্রোভি

android {
    ...
    buildFeatures {
        viewBinding true
    }
}

কোটলিন

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

যদি আপনার অ্যাপটি Parcelable বৈশিষ্ট্যগুলি ব্যবহার না করে, তাহলে কোটলিন অ্যান্ড্রয়েড এক্সটেনশানগুলিকে সক্ষম করে এমন লাইনটি সরান:

গ্রোভি

plugins {
  id 'kotlin-android-extensions'
}

কোটলিন

plugins {
    kotlin("android.extensions")
}

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

আপডেট কার্যকলাপ এবং খণ্ড ক্লাস

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

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

{% শব্দার্থে %} {% endverbatim %} {% শব্দার্থে %} {% endverbatim %}