از Kotlin synthetics به Jetpack view binding مهاجرت کنید

برنامه افزودنی اندروید Kotlin منسوخ شده است، به این معنی که استفاده از ترکیب مصنوعی Kotlin برای اتصال مشاهده دیگر پشتیبانی نمی شود. اگر برنامه شما از مواد مصنوعی Kotlin برای اتصال به نمایش استفاده می کند، از این راهنما برای انتقال به جت پک نمای صحافی استفاده کنید.

اگر برنامه شما قبلاً از ترکیبات مصنوعی Kotlin برای اتصال مشاهده استفاده نمی‌کند، برای اطلاعات اولیه استفاده، به View binding مراجعه کنید.

فایل Gradle را به روز کنید

مانند برنامه‌های افزودنی اندروید، جت‌پک نمای جت بر اساس ماژول به ماژول فعال می‌شود. برای هر ماژولی که از view binding استفاده می کند، گزینه ساخت viewBinding را در فایل build.gradle سطح ماژول روی true تنظیم کنید:

شیار

android {
    ...
    buildFeatures {
        viewBinding true
    }
}

کاتلین

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

اگر برنامه شما از ویژگی‌های Parcelable استفاده نمی‌کند، خطی را که برنامه‌های افزودنی اندروید Kotlin را فعال می‌کند حذف کنید:

شیار

plugins {
  id 'kotlin-android-extensions'
}

کاتلین

plugins {
    kotlin("android.extensions")
}

برای کسب اطلاعات بیشتر در مورد فعال کردن اتصال مشاهده در یک ماژول، به دستورالعمل‌های راه‌اندازی مراجعه کنید.

به روز رسانی فعالیت و کلاس های قطعه

با Jetpack view binding، یک کلاس binding برای هر فایل طرح بندی XML که ماژول حاوی آن است، تولید می شود. نام این کلاس binding نام فایل XML در حروف پاسکال است که در انتهای آن کلمه Binding اضافه شده است. برای مثال، اگر نام فایل layout result_profile.xml باشد، نام کلاس binding تولید شده ResultProfileBinding است.

برای استفاده از کلاس‌های binding تولید شده به جای ویژگی‌های مصنوعی برای ارجاع نماها، کلاس‌های Activity و Fragment خود را با انجام کارهای زیر تغییر دهید:

  1. تمام موارد وارداتی را از kotlinx.android.synthetic حذف کنید.

  2. یک نمونه از کلاس اتصال تولید شده را برای استفاده از اکتیویتی یا قطعه ایجاد کنید.

  3. همه مراجع مشاهده را تغییر دهید تا از نمونه کلاس binding به جای ویژگی های مصنوعی استفاده کنید:

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

برای کسب اطلاعات بیشتر، بخش استفاده را در راهنمای اتصال مشاهده ببینید.

{% کلمه به کلمه %} {% آخر کلمه %} {% کلمه به کلمه %} {% آخر کلمه %}