نوشتن مطلب

با «عناصر طراحی Material» آماده استفاده، «میاناهای کاربر Jetpack Compose» بسازید. این نقطه ورود سطح بالاتر «نگارش» است که برای ارائه مؤلفه‌هایی طراحی شده است که با مؤلفه‌های شرح‌داده‌شده در www.material.io مطابقت دارند.
جدیدترین به‌روزرسانی نسخه پایدار نامزد انتشار انتشار نسخه بتا نسخه آلفا
۷ اکتبر ۲۰۲۶ ۱.۱۲.۱ - 1.13.0-beta01 -

ساختار

«ترکیب» ترکیبی از ۷ «شناسه گروه Maven» در androidx است. هر «گروه» حاوی زیرمجموعه هدف‌گذاری‌شده‌ای از عملکرد است که هرکدام مجموعه یادداشت‌های انتشار خود را دارند.

این جدول گروه‌ها و پیوندها به هر مجموعه از یادداشت‌های انتشار را توضیح می‌دهد.

گروهشرح
compose.animationدر برنامه‌های Jetpack Compose خود پویانمایی بسازند تا تجربه کاربری را غنی‌تر کنند.
compose.compilerبا افزونه مترجم Kotlin، توابع @Composable را تبدیل کنید و بهینه‌سازی‌ها را فعال کنید.
compose.foundationبرنامه‌های Jetpack Compose را با واحدهای سازنده آماده استفاده بنویسید و پایه را گسترش دهید تا عناصر سیستم طراحی خودتان را بسازید.
compose.materialبا «عناصر طراحی Material» آماده استفاده، «میاناهای کاربر Jetpack Compose» بسازید. این نقطه ورود سطح بالاتر «نگارش» است که برای ارائه مؤلفه‌هایی طراحی شده است که با مؤلفه‌های شرح‌داده‌شده در www.material.io مطابقت دارند.
compose.material3ساختن میاناهای کاربر Jetpack Compose با «عناصر طراحی سه‌بعدی ۳»، تکامل بعدی «طراحی سه‌بعدی». «طراحی مادی ۳» شامل زمینه‌سازی و عناصر به‌روزرسانی‌شده و ویژگی‌های شخصی‌سازی «طراحی مادی شما» مثل رنگ پویا است و به‌گونه‌ای طراحی شده است که با سبک بصری جدید Android 12 و واسط کاربر سیستم منسجم باشد.
compose.runtimeواحدهای سازنده بنیادی مدل برنامه‌نویسی و مدیریت وضعیت Compose، و زمان اجرای اصلی برای هدف‌یابی «افزایه کامپایلر Compose».
compose.uiعناصر اساسی میانای کاربر Compose که برای تعامل با دستگاه لازم است، ازجمله چیدمان، طراحی، و ورودی.

اعلام وابستگی‌ها

برای افزودن وابستگی به Compose، باید مخزن Google Maven را به پروژه‌تان اضافه کنید. برای اطلاعات بیشتر، مخزن Maven در Google را بخوانید.

وابستگی‌های آرتیفکت‌های موردنیازتان را در فایل build.gradle برای برنامه یا واحدتان اضافه کنید:

گرووی

dependencies {
    implementation "androidx.compose.material:material:1.12.1"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

کاتلین

dependencies {
    implementation("androidx.compose.material:material:1.12.1")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

برای اطلاعات بیشتر درباره وابستگی‌ها، افزودن وابستگی‌های ساخت را ببینید.

بازخورد

بازخوردتان به بهبود Jetpack کمک می‌کند. اگر مشکلات جدیدی پیدا کردید یا ایده‌هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل‌از ایجاد کتابخانه جدید، مشکلات موجود در این کتابخانه را بررسی کنید. با کلیک کردن روی دکمه ستاره می‌توانید رأی خود را به یک مشکل موجود اضافه کنید.

ایجاد مشکل جدید

برای کسب اطلاعات بیشتر، به مستندات «پیگیری مسائل» مراجعه کنید.

نسخه ۱.۱۳

نسخه 1.13.0-beta01

۷ اکتبر ۲۰۲۶

‫androidx.compose.material:material-*:1.13.0-beta01 منتشر شد. نسخه 1.13.0-beta01 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • کتابخانه‌ها اکنون Kotlin 2.2 را هدف‌یابی می‌کنند و به kotlinc 2.2 نیاز دارند (I82396، b/498369605)

نسخه 1.13.0-alpha03

۹ سپتامبر ۲۰۲۶

‫androidx.compose.material:material-*:1.13.0-alpha03 منتشر شد. نسخه 1.13.0-alpha03 شامل این تعهدها است.

تغییرات میانای برنامه‌سازی کاربردی

  • فیلدهای نوشتاری «مطلب ۲» که value, onValueChange پارامتر را می‌پذیرند منسوخ شده‌اند. لطفاً به سرباری که از TextFieldState برای بالا بردن وضعیتش استفاده می‌کند انتقال دهید. (I6b841، b/556234973)

رفع اشکال‌ها

  • ‫compileSdk برای کتابخانه‌های Compose به نسخه ۳۷.۱ به‌روز شد. این کار مستلزم به‌روزرسانی انتقالی compileSdk برای همه برنامه‌ها و کتابخانه‌هایی است که از Compose استفاده می‌کنند. (I05b0f)
  • ‫SecureTextField و OutlinedSecureTextField عنصر (و همچنین BasicSecureTextField سربار منسوخ‌شده) به‌روزرسانی شد تا به‌جای TextObfuscationMode.RevealLastTyped از TextObfuscationMode.System به‌عنوان حالت مبهم‌سازی پیش‌فرض استفاده کند. (I76c7e)

نسخه 1.13.0-alpha02

۲۶ اوت ۲۰۲۶

‫androidx.compose.material:material-*:1.13.0-alpha02 منتشر شد. نسخه 1.13.0-alpha02 شامل این تغییرات است.

نسخه 1.13.0-alpha01

‫۱۲ اوت ۲۰۲۶

‫androidx.compose.material:material-*:1.13.0-alpha01 منتشر شد. نسخه 1.13.0-alpha01 شامل این تغییرات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫androidx.benchmark اکنون minSdk برابر با ۲۴ دارد. (Ic2a85)

رفع اشکال‌ها

  • مقداردهی اولیه بهینه‌سازی‌شده سطح فایل برای material مشخصه‌های کلاس مقدار سطح بالا بااستفاده از دریافت‌کننده‌های پویا. (Iae591)
  • بااستفاده از دریافت‌کننده‌های پویا، مقداردهی اولیه شیء همراه بهینه‌سازی‌شده material کلاس مقدار (FabPosition و Strings) انجام شد. (I0c7c0)
  • برداشتن الزام compileSdk 37 (If78b4)

نسخه ۱.۱۲

نسخه ۱.۱۲.۱

۹ سپتامبر ۲۰۲۶

‫androidx.compose.material:material-*:1.12.1 منتشر شد. نسخه ۱.۱۲.۱ شامل این تعهدات است.

نسخه ۱.۱۲.۰

‫۱۲ اوت ۲۰۲۶

‫androidx.compose.material:material-*:1.12.0 منتشر شد. نسخه ۱.۱۲.۰ شامل این تعهدات است.

تغییرات مهم از ۱.۱۱.۰:

نسخه 1.12.0-rc01

۲۹ ژوئیه ۲۰۲۶

‫androidx.compose.material:material-*:1.12.0-rc01 منتشر شد. نسخه 1.12.0-rc01 شامل این تعهدات است.

نسخه 1.12.0-beta02

۱ ژوئیه ۲۰۲۶

‫androidx.compose.material:material-*:1.12.0-beta02 منتشر شد. نسخه 1.12.0-beta02 شامل این تعهدها است.

نسخه 1.12.0-beta01

‫۱۷ ژوئن ۲۰۲۶

‫androidx.compose.material:material-*:1.12.0-beta01 منتشر شد. نسخه 1.12.0-beta01 شامل این تعهدات است.

نسخه 1.12.0-alpha03

‫۱۹ مه ۲۰۲۶

‫androidx.compose.material:material-*:1.12.0-alpha03 منتشر شد. نسخه 1.12.0-alpha03 شامل این تعهدات است.

نسخه 1.12.0-alpha02

۶ مه ۲۰۲۶

‫androidx.compose.material:material-*:1.12.0-alpha02 منتشر شد. نسخه 1.12.0-alpha02 شامل این تعهدات است.

نسخه 1.12.0-alpha01

‫۲۲ آوریل ۲۰۲۶

‫androidx.compose.material:material-*:1.12.0-alpha01 منتشر شد. نسخه 1.12.0-alpha01 شامل این تعهدها است.

تغییرات میانای برنامه‌سازی کاربردی

  • VelocityTracker تغییر کرد تا از پیاده‌سازی ارائه‌شده توسط «چارچوب Android» استفاده کند (با AndroidComposeUiFlags.isFrameworkVelocityTrackerEnabled قابل پیکربندی است). (Ibc7e2، b/359962905)

رفع اشکال‌ها

  • ‫Compose compileSdk به API 37 به‌روز شد. این یعنی هنگام استفاده از «نوشتن»، حداقل نسخه AGP باید ۹.۲.۰ باشد. (Id45cd،‏ b/413674743)

نسخه ۱.۱۱

نسخه ۱.۱۱.۴

۱ ژوئیه ۲۰۲۶

‫androidx.compose.material:material-*:1.11.4 منتشر شد. نسخه ۱.۱۱.۴ شامل این تعهدات است.

نسخه ۱.۱۱.۳

‫۱۷ ژوئن ۲۰۲۶

‫androidx.compose.material:material-*:1.11.3 منتشر شد. نسخه ۱.۱۱.۳ شامل این تعهدات است.

نسخه ۱.۱۱.۲

‫۱۹ مه ۲۰۲۶

‫androidx.compose.material:material-*:1.11.2 منتشر شد. نسخه ۱.۱۱.۲ شامل این تعهدات است.

نسخه ۱.۱۱.۱

۶ مه ۲۰۲۶

‫androidx.compose.material:material-*:1.11.1 منتشر شد. نسخه ۱.۱۱.۱ شامل این تعهدات است.

نسخه ۱.۱۱.۰

‫۲۲ آوریل ۲۰۲۶

‫androidx.compose.material:material-*:1.11.0 منتشر شد. نسخه ۱.۱۱.۰ شامل این تعهدات است.

نسخه 1.11.0-rc01

۸ آوریل ۲۰۲۶

‫androidx.compose.material:material-*:1.11.0-rc01 منتشر شد. نسخه 1.11.0-rc01 شامل این تعهدات است.

نسخه 1.11.0-beta02

۲۵ مارس ۲۰۲۶

‫androidx.compose.material:material-*:1.11.0-beta02 منتشر شد. نسخه 1.11.0-beta02 شامل این تعهدات است.

نسخه 1.11.0-beta01

۱۱ مارس ۲۰۲۶

‫androidx.compose.material:material-*:1.11.0-beta01 منتشر شد. نسخه 1.11.0-beta01 شامل این تعهدات است.

نسخه 1.11.0-alpha06

۲۵ فوریه ۲۰۲۶

‫androidx.compose.material:material-*:1.11.0-alpha06 منتشر شد. نسخه 1.11.0-alpha06 شامل این تعهدها است.

نسخه 1.11.0-alpha05

‫۱۱ فوریه ۲۰۲۶

‫androidx.compose.material:material-*:1.11.0-alpha05 منتشر شد. نسخه 1.11.0-alpha05 شامل این تعهدات است.

نسخه 1.11.0-alpha04

‫۲۸ ژانویه ۲۰۲۶

‫androidx.compose.material:material-*:1.11.0-alpha04 منتشر شد. نسخه 1.11.0-alpha04 شامل این تعهدات است.

نسخه 1.11.0-alpha03

‫۱۴ ژانویه ۲۰۲۶

‫androidx.compose.material:material-*:1.11.0-alpha03 منتشر شد. نسخه 1.11.0-alpha03 شامل این تعهدات است.

نسخه 1.11.0-alpha02

‫۱۷ دسامبر ۲۰۲۵

‫androidx.compose.material:material-*:1.11.0-alpha02 منتشر شد. نسخه 1.11.0-alpha02 شامل این تعهدات است.

نسخه 1.11.0-alpha01

۳ دسامبر ۲۰۲۵

‫androidx.compose.material:material-*:1.11.0-alpha01 منتشر شد. نسخه 1.11.0-alpha01 شامل این تعهدات است.

نسخه ۱.۱۰

نسخه ۱.۱۰.۶

۲۵ مارس ۲۰۲۶

‫androidx.compose.material:material-*:1.10.6 منتشر شد. نسخه 1.10.6 شامل این تعهدات است.

نسخه ۱.۱۰.۵

۱۱ مارس ۲۰۲۶

‫androidx.compose.material:material-*:1.10.5 منتشر شد. نسخه ۱.۱۰.۵ شامل این تعهدها است.

نسخه ۱.۱۰.۴

۲۵ فوریه ۲۰۲۶

‫androidx.compose.material:material-*:1.10.4 منتشر شد. نسخه ۱.۱۰.۴ شامل این تعهدات است.

نسخه ۱.۱۰.۳

‫۱۱ فوریه ۲۰۲۶

‫androidx.compose.material:material-*:1.10.3 منتشر شد. نسخه ۱.۱۰.۳ حاوی این تعهدات است.

نسخه ۱.۱۰.۲

‫۲۸ ژانویه ۲۰۲۶

‫androidx.compose.material:material-*:1.10.2 منتشر شد. نسخه ۱.۱۰.۲ شامل این تعهدات است.

نسخه ۱.۱۰.۱

‫۱۴ ژانویه ۲۰۲۶

‫androidx.compose.material:material-*:1.10.1 منتشر شد. نسخه ۱.۱۰.۱ شامل این تعهدات است.

نسخه ۱.۱۰.۰

۳ دسامبر ۲۰۲۵

‫androidx.compose.material:material-*:1.10.0 منتشر شد. نسخه ۱.۱۰.۰ شامل این تعهدات است.

نسخه 1.10.0-rc01

‫۱۹ نوامبر ۲۰۲۵

‫androidx.compose.material:material-*:1.10.0-rc01 منتشر شد. نسخه 1.10.0-rc01 شامل این تعهدات است.

نسخه 1.10.0-beta02

۵ نوامبر ۲۰۲۵

‫androidx.compose.material:material-*:1.10.0-beta02 منتشر شد. نسخه 1.10.0-beta02 شامل این تعهدات است.

نسخه 1.10.0-beta01

‫۲۲ اکتبر ۲۰۲۵

‫androidx.compose.material:material-*:1.10.0-beta01 منتشر شد. نسخه 1.10.0-beta01 شامل این تعهدات است.

نسخه 1.10.0-alpha05

‫۸ اکتبر ۲۰۲۵

‫androidx.compose.material:material-*:1.10.0-alpha05 منتشر شد. نسخه 1.10.0-alpha05 شامل این تعهدات است.

نسخه 1.10.0-alpha04

‫۲۴ سپتامبر ۲۰۲۵

‫androidx.compose.material:material-*:1.10.0-alpha04 منتشر شد. نسخه 1.10.0-alpha04 شامل این تعهدات است.

نسخه 1.10.0-alpha03

‫۱۰ سپتامبر ۲۰۲۵

‫androidx.compose.material:material-*:1.10.0-alpha03 منتشر شد. نسخه 1.10.0-alpha03 شامل این تعهدات است.

نسخه 1.10.0-alpha02

‫۲۷ اوت ۲۰۲۵

‫androidx.compose.material:material-*:1.10.0-alpha02 منتشر شد. نسخه 1.10.0-alpha02 شامل این تعهدات است.

نسخه 1.10.0-alpha01

‫۱۳ اوت ۲۰۲۵

‫androidx.compose.material:material-*:1.10.0-alpha01 منتشر شد. نسخه 1.10.0-alpha01 شامل این تعهدات است.

رفع اشکال‌ها

  • انتقال minSdk پیش‌فرض از «میانای برنامه‌سازی کاربردی» ۲۱ به «میانای برنامه‌سازی کاربردی» ۲۳. (Ibdfca، b/380448311، b/435705964، b/435705223)

نسخه ۱.۹

نسخه ۱.۹.۵

‫۱۹ نوامبر ۲۰۲۵

‫androidx.compose.material:material-*:1.9.5 منتشر شد. نسخه ۱.۹.۵ شامل این تعهدات است.

نسخه ۱.۹.۴

‫۲۲ اکتبر ۲۰۲۵

‫androidx.compose.material:material-*:1.9.4 منتشر شد. نسخه 1.9.4 شامل این تعهدات است.

نسخه 1.9.3

‫۸ اکتبر ۲۰۲۵

‫androidx.compose.material:material-*:1.9.3 منتشر شد. نسخه ۱.۹.۳ حاوی این تعهدات است.

نسخه ۱.۹.۲

‫۲۴ سپتامبر ۲۰۲۵

‫androidx.compose.material:material-*:1.9.2 منتشر شد. نسخه 1.9.2 شامل این تعهدات است.

نسخه ۱.۹.۱

‫۱۰ سپتامبر ۲۰۲۵

‫androidx.compose.material:material-*:1.9.1 منتشر شد. نسخه 1.9.1 شامل این تعهدات است.

نسخه ۱.۹.۰

‫۱۳ اوت ۲۰۲۵

‫androidx.compose.material:material-*:1.9.0 منتشر شد. نسخه 1.9.0 شامل این تعهدات است.

تغییرات مهم از نسخه ۱.۸.۰

تغییرات رفتار

  • بررسی‌های Lint که همراه با Compose ارسال می‌شوند اکنون به حداقل نسخه ۸.۸.۲ از AGP نیاز دارند. اگر نمی‌توانید AGP را ارتقا دهید، می‌توانید به‌جای آن بااستفاده از android.experimental.lint.version=8.8.2 (یا نسخه جدیدتر) در gradle.properties، خود Lint را ارتقا دهید. برای اجرای بررسی‌های lint در Compose درون IDE، به Android Studio Ladybug یا نسخه‌های جدیدتر نیاز است.

تغییرات میانای برنامه‌سازی کاربردی

  • برای مصرف پروژه‌های منتشرشده با Kotlin 2.0، به KGP 2.0.0 یا جدیدتر نیاز است. (Idb6b5)
  • میاناهای برنامه‌سازی کاربردی چارگوش تزئینی فیلد نوشتار دیگر آزمایشی نیستند. (I7480f)

رفع اشکال‌ها

  • ‫ExposedDropdownMenu با نسخه‌های قدیمی‌تر سازگاری باینری دارد. (I133f7)

نسخه 1.9.0-rc01

۳۰ ژوئیه ۲۰۲۵

‫androidx.compose.material:material-*:1.9.0-rc01 منتشر شد. نسخه 1.9.0-rc01 شامل این تعهدات است.

نسخه 1.9.0-beta03

‫۱۶ ژوئیه ۲۰۲۵

‫androidx.compose.material:material-*:1.9.0-beta03 منتشر شد. نسخه 1.9.0-beta03 شامل این تعهدات است.

نسخه 1.9.0-beta02

‫۲ ژوئیه ۲۰۲۵

‫androidx.compose.material:material-*:1.9.0-beta02 منتشر شد. نسخه 1.9.0-beta02 شامل این تعهدات است.

نسخه 1.9.0-beta01

‫۱۸ ژوئن ۲۰۲۵

‫androidx.compose.material:material-*:1.9.0-beta01 منتشر شد. نسخه 1.9.0-beta01 شامل این تعهدات است.

رفع اشکال‌ها

  • پیوندهای Text(AnnotatedString) اکنون به‌طور پیش‌فرض سبک «طراحی مواد» دارند. (I0e8ed، b/339843816)

نسخه 1.9.0-alpha04

‫۴ ژوئن ۲۰۲۵

‫androidx.compose.material:material-*:1.9.0-alpha04 منتشر شد. نسخه 1.9.0-alpha04 شامل این تعهدها است.

نسخه 1.9.0-alpha03

‫۲۰ مه ۲۰۲۵

‫androidx.compose.material:material-*:1.9.0-alpha03 منتشر شد. نسخه 1.9.0-alpha03 شامل این تعهدات است.

نسخه 1.9.0-alpha02

۷ مه ۲۰۲۵

‫androidx.compose.material:material-*:1.9.0-alpha02 منتشر شد. نسخه 1.9.0-alpha02 شامل این تعهدات است.

نسخه 1.9.0-alpha01

‫۲۳ آوریل ۲۰۲۵

‫androidx.compose.material:material-*:1.9.0-alpha01 منتشر شد. نسخه 1.9.0-alpha01 شامل این تعهدها است.

تغییرات رفتار

  • بررسی‌های Lint که همراه با Compose ارسال می‌شوند اکنون به حداقل نسخه ۸.۸.۲ از AGP نیاز دارند. اگر نمی‌توانید AGP را ارتقا دهید، می‌توانید به‌جای آن بااستفاده از android.experimental.lint.version=8.8.2 (یا نسخه جدیدتر) در gradle.properties، خود Lint را ارتقا دهید. برای اجرای بررسی‌های lint در Compose درون IDE، به Android Studio Ladybug یا نسخه‌های جدیدتر نیاز است.

تغییرات میانای برنامه‌سازی کاربردی

  • برای مصرف پروژه‌های منتشرشده با Kotlin 2.0، به KGP 2.0.0 یا جدیدتر نیاز است. (Idb6b5)
  • میاناهای برنامه‌سازی کاربردی چارگوش تزئین فیلد نوشتاری دیگر آزمایشی نیستند (I7480f، b/269651160)
  • runWithTimingDisabled را به‌نفع runWithMeasurementDisabled منسوخ کنید، که رفتار را واضح‌تر توصیف می‌کند - همه سنجه‌ها موقتاً متوقف می‌شوند. علاوه‌براین، ابرکلاس MicrobenchmarkScope را نمایان کنید زیرا بازاعلان کردن تابع runWithMeasurementDisabled برای باز کردن دسترسی امکان‌پذیر نیست، چون درون‌خطی است. ‫(I9e23b،‏ b/389149423،‏ b/149979716)

رفع اشکال‌ها

  • ‫ExposedDropdownMenu با نسخه‌های قدیمی‌تر سازگاری باینری دارد. (I133f7)
  • خرابی در نشانگرهای پیشرفت و بار کردن درصورتی‌که Float.NaN به‌عنوان پیشرفت ارسال شود برطرف شد. (I4fa96, b/352364576)

نسخه ۱.۸

نسخه ۱.۸.۳

‫۱۸ ژوئن ۲۰۲۵

‫androidx.compose.material:material-*:1.8.3 منتشر شد. نسخه ۱.۸.۳ شامل این تعهدات است.

نسخه ۱.۸.۲

‫۲۰ مه ۲۰۲۵

‫androidx.compose.material:material-*:1.8.2 منتشر شد. نسخه ۱.۸.۲ شامل این تعهدات است.

نسخه ۱.۸.۱

۷ مه ۲۰۲۵

‫androidx.compose.material:material-*:1.8.1 منتشر شد. نسخه ۱.۸.۱ شامل این تعهدات است.

نسخه ۱.۸.۰

‫۲۳ آوریل ۲۰۲۵

‫androidx.compose.material:material-*:1.8.0 منتشر شد. نسخه ۱.۸.۰ شامل این تعهدات است.

نسخه 1.8.0-rc03

‫۹ آوریل ۲۰۲۵

‫androidx.compose.material:material-*:1.8.0-rc03 منتشر شد. نسخه 1.8.0-rc03 شامل این تعهدها است.

نسخه 1.8.0-rc02

‫۲۶ مارس ۲۰۲۵

‫androidx.compose.material:material-*:1.8.0-rc02 منتشر شد. نسخه 1.8.0-rc02 شامل این تعهدات است.

نسخه 1.8.0-rc01

‫۱۲ مارس ۲۰۲۵

‫androidx.compose.material:material-*:1.8.0-rc01 منتشر شد. نسخه 1.8.0-rc01 شامل این تعهدات است.

نسخه 1.8.0-beta03

‫۲۶ فوریه ۲۰۲۵

‫androidx.compose.material:material-*:1.8.0-beta03 منتشر شد. نسخه 1.8.0-beta03 شامل این تعهدات است.

نسخه 1.8.0-beta02

‫۱۲ فوریه ۲۰۲۵

‫androidx.compose.material:material-*:1.8.0-beta02 منتشر شد. نسخه 1.8.0-beta02 شامل این تعهدات است.

نسخه 1.8.0-beta01

‫۲۹ ژانویه ۲۰۲۵

‫androidx.compose.material:material-*:1.8.0-beta01 منتشر شد. نسخه 1.8.0-beta01 شامل این تعهدها است.

نسخه 1.8.0-alpha08

‫۱۵ ژانویه ۲۰۲۵

‫androidx.compose.material:material-*:1.8.0-alpha08 منتشر شد. نسخه 1.8.0-alpha08 شامل این تعهدات است.

رفع اشکال‌ها

  • ‫displayCutout را به گروه حاشیه‌هایی که به‌طور پیش‌فرض در اجزای Material درنظر گرفته می‌شود اضافه می‌کند تا از هم‌پوشانی محتوا با برش نمایشگر جلوگیری شود.
    • این تغییر رفتار بر نحوه عملکرد عناصر آگاه از حاشیه در اطراف برش نمایشگر تأثیر می‌گذارد. این شامل مقدار پیش‌فرض پارامتر WindowInsets برای عناصر Material 3 با قابلیت درج، و مقادیر WindowInsets ارائه‌شده در عنصر می‌شود.
    • اشیا را برای «مطلب ۲» و «مطلب ۳» پیش‌فرض می‌کند. اگر این تغییر باعث رفتار نامطلوب می‌شود، پارامتر WindowInsets را به‌صورت دستی برای هر عنصر مشخص کنید. (I43ee9، b/362508045)
  • فعالیتی که به‌عنوان میزبان برای عنصر ترکیبی تحت آزمایش هنگام استفاده از ComposeContentTestRule.setContent استفاده می‌شود اکنون از زمینه Theme.Material.Light.NoActionBar استفاده می‌کند تا از هم‌پوشانی ActionBar با محتوای آزمایش هنگام هدف‌یابی کیت توسعه نرم‌افزار ۳۵ جلوگیری شود. برای انصراف دادن از این رفتار، می‌توانید وابستگی به ui-test-manifest را بردارید و ورودی فعالیتی در AndroidManifest.xml برنامه آزمایشی‌تان برای ComponentActivity با موضوع دلخواهتان اضافه کنید. (I7ae1b، b/383368165)

همیاری خارجی

  • نمایش sheetGesturesEnabled در ModalBottomSheetLayout. (I3f032،‏ b/329543529)

نسخه 1.8.0-alpha07

۱۱ دسامبر ۲۰۲۴

‫androidx.compose.material:material-*:1.8.0-alpha07 منتشر شد. نسخه 1.8.0-alpha07 شامل این تعهدات است.

رفع اشکال‌ها

  • اصلاح‌کننده‌های اندازه فیلد نوشتار که گاهی رعایت نمی‌شدند. (I90d4c، b/356905963)

نسخه 1.8.0-alpha06

‫۱۳ نوامبر ۲۰۲۴

‫androidx.compose.material:material-*:1.8.0-alpha06 منتشر شد. نسخه 1.8.0-alpha06 شامل این تعهدات است.

نسخه 1.8.0-alpha05

۳۰ اکتبر ۲۰۲۴

‫androidx.compose.material:material-*:1.8.0-alpha05 منتشر شد. نسخه 1.8.0-alpha05 شامل این تعهدات است.

رفع اشکال‌ها

  • عملکرد Scaffold contentPadding را بهینه‌سازی کنید تا از ترکیب مجدد محتوای بدنه درصورت تغییر contentPadding جلوگیری شود. (I8c8e2، b/373904168)
  • وقتی کلیدهای کنترل فشار داده می‌شود، مقدار «لغزنده» ماده را تغییر دهید. (I1c442)

نسخه 1.8.0-alpha04

‫۱۶ اکتبر ۲۰۲۴

‫androidx.compose.material:material-*:1.8.0-alpha04 منتشر شد. نسخه 1.8.0-alpha04 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫readOnly را از TextFields بردارید تا به نسخه پایه پایدار سنجاق شود. (I3aaba)

رفع اشکال‌ها

  • پشتیبانی از موجک‌ها را به عناصر ازهم بازشونده در Android S+، مثل کارتی که با کلیک ازهم باز می‌شود، اضافه می‌کند. قبلاً موجک اندازه جدید را پر نمی‌کرد اما اکنون تا مرزهای جدید گسترش می‌یابد. (If509a،‏ b/183019123)

نسخه 1.8.0-alpha02

‫۱۸ سپتامبر ۲۰۲۴

‫androidx.compose.material:material-*:1.8.0-alpha02 منتشر شد. نسخه 1.8.0-alpha02 شامل این تعهدات است.

نسخه 1.8.0-alpha01

۴ سپتامبر ۲۰۲۴

‫androidx.compose.material:material-*:1.8.0-alpha01 منتشر شد. نسخه 1.8.0-alpha01 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • سازنده جدید NavGraphBuilder.bottomSheet برای ایجاد sheet زیرین با آرگومان‌های ایمن اضافه شد ((I28589, I777db, b/351858980))
  • ‫TextField و OutlinedTextField سربار جدیدی اضافه شد که TextFieldState (I3b74c) را می‌گیرد

نسخه ۱.۷

نسخه ۱.۷.۸

‫۱۲ فوریه ۲۰۲۵

‫androidx.compose.material:material-*:1.7.8 منتشر شد. نسخه ۱.۷.۸ شامل این تعهدات است.

نسخه ۱.۷.۷

‫۲۹ ژانویه ۲۰۲۵

‫androidx.compose.material:material-*:1.7.7 منتشر شد. از نسخه ۱.۷.۶ تغییری نداشته است.

نسخه ۱.۷.۶

۱۱ دسامبر ۲۰۲۴

‫androidx.compose.material:material-*:1.7.6 منتشر شد. نسخه ۱.۷.۶ شامل این تعهدات است.

نسخه ۱.۷.۵

۳۰ اکتبر ۲۰۲۴

‫androidx.compose.material:material-*:1.7.5 منتشر شد. نسخه ۱.۷.۵ شامل این تعهدات است.

نسخه ۱.۷.۴

‫۱۶ اکتبر ۲۰۲۴

‫androidx.compose.material:material-*:1.7.4 منتشر شد. نسخه ۱.۷.۴ شامل این تعهدات است.

نسخه ۱.۷.۲

‫۱۸ سپتامبر ۲۰۲۴

‫androidx.compose.material:material-*:1.7.2 منتشر شد. نسخه ۱.۷.۲ شامل این تعهدات است.

نسخه ۱.۷.۱

‫۱۰ سپتامبر ۲۰۲۴

  • هیچ تغییری در آرتیفکت‌های Android ایجاد نشده است. ‫-desktop مصنوع برداشته شد و -jvmStubs و -linuxx64Stubs مصنوع اضافه شد. هیچ‌کدام از این هدف‌ها برای استفاده درنظر گرفته نشده‌اند، بلکه جای‌گذاری‌هایی هستند که به تلاش‌های Jetbrains Compose کمک می‌کنند.

نسخه ۱.۷.۰

۴ سپتامبر ۲۰۲۴

‫androidx.compose.material:material-*:1.7.0 منتشر شد. نسخه ۱.۷.۰ شامل این تعهدات است.

تغییرات مهم از نسخه ۱.۶.۰

  • عناصر Material منتقل شده‌اند تا از میاناهای برنامه‌سازی کاربردی جدید موج استفاده کنند و دیگر RippleTheme را پُرسمان نمی‌کنند.
  • عناصر Material که قبلاً MutableInteractionSource را می‌پذیرفتند و به‌طور پیش‌فرض روی remember { MutableInteractionSource() } تنظیم می‌شدند، اکنون MutableInteractionSource تهی‌پذیر را می‌پذیرند و به‌طور پیش‌فرض روی تهی تنظیم می‌شوند. اگر از MutableInteractionSource استفاده نمی‌کنید و آن را بالا نمی‌برید، باید مقدار null را ارسال کنید. این کار باعث می‌شود برخی‌از عناصر فقط درصورت نیاز نمونه‌ای ایجاد کنند و عملکرد بهبود یابد. همچنین توصیه می‌شود که تغییرات مشابهی را در عناصر خودتان ایجاد کنید.
  • ‫BottomDrawer،‏ ModalBottomSheet،‏ BackdropScaffold، و «برگه‌پایین استاندارد» به «میانای برنامه‌سازی کاربردی» پایدار ارتقا یافته‌اند.

نسخه 1.7.0-rc01

‫۲۱ اوت ۲۰۲۴

‫androidx.compose.material:material-*:1.7.0-rc01 منتشر شد. نسخه 1.7.0-rc01 شامل این تعهدات است.

نسخه 1.7.0-beta07

‫۷ اوت ۲۰۲۴

‫androidx.compose.material:material-*:1.7.0-beta07 منتشر شد. نسخه 1.7.0-beta07 شامل این تعهدات است.

نسخه 1.7.0-beta06

۲۴ ژوئیه ۲۰۲۴

‫androidx.compose.material:material-*:1.7.0-beta06 منتشر شد. نسخه 1.7.0-beta06 شامل این تعهدات است.

نسخه 1.7.0-beta05

۱۰ ژوئیه ۲۰۲۴

‫androidx.compose.material:material-*:1.7.0-beta05 منتشر شد. نسخه 1.7.0-beta05 شامل این تعهدات است.

نسخه 1.7.0-beta04

۲۶ ژوئن ۲۰۲۴

‫androidx.compose.material:material-*:1.7.0-beta04 منتشر شد. نسخه 1.7.0-beta04 حاوی این تعهدات است.

نسخه 1.7.0-beta03

۱۲ ژوئن ۲۰۲۴

‫androidx.compose.material:material-*:1.7.0-beta03 منتشر شد. نسخه 1.7.0-beta03 شامل این تعهدات است.

نسخه 1.7.0-beta02

۲۹ مه ۲۰۲۴

‫androidx.compose.material:material-*:1.7.0-beta02 منتشر شد. نسخه 1.7.0-beta02 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • به‌روزرسانی میانای برنامه‌سازی کاربردی برای سبک‌دهی پیوندها: TextLinkStyles به TextStyle منتقل شد و TextDefaults از عنصر (I5477b) برداشته شد

نسخه 1.7.0-beta01

۱۴ مه ۲۰۲۴

‫androidx.compose.material:material-*:1.7.0-beta01 منتشر شد. نسخه 1.7.0-beta01 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • «میانای برنامه‌سازی کاربردی» برای دریافت پیوندهای زمینه‌ای «طراحی مواد» در «نوشتار» به‌روز شد. به‌طور خاص، روش‌های ساخت LinkAnnotations با موضوع و تجزیه HTML با پیوندهای موضوعی را از TextDefaults برداشتیم. درعوض، کلاس TextLinkStyles اضافه شد که امکان می‌دهد پیوندها به‌عنوان پارامتر به «ترکیب‌بندی نوشتار» سبک‌دهی شوند. (I31b93)

نسخه 1.7.0-alpha08

۱ مه ۲۰۲۴

‫androidx.compose.material:material-*:1.7.0-alpha08 منتشر شد. نسخه 1.7.0-alpha08 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫backgroundColor را اصلاح کنید تا روی TextFieldDecorationBox و OutlinedTextFieldDecorationBox اعمال شود. جعبه‌های تزئینی اکنون پارامتر shape را می‌پذیرند. (I371c2،‏ b/307694651)
  • ‫RippleConfiguration#isEnabled برداشته شده است و LocalRippleConfiguration قابلیت تهی‌پذیر شدن پیدا کرده است. برای غیرفعال کردن موج، به‌جای ارائه RippleConfiguration با isEnabled = false، null تا LocalRippleConfiguration را ارائه دهید. (I22725)
  • پیوندهای نوشتاری علاوه‌بر سبک‌بندی معمولی، سبک‌بندی حالت فشرده، و سبک‌بندی معلق و متمرکز، گزینه سبک‌بندی حالت فشرده نیز دارند. هریک از TextDefaults روش دارای pressedStyle استدلال برای پشتیبانی از آن است. (Ic473f, b/139312671)

رفع اشکال‌ها

  • فاصله داخلی بالای OutlinedTextField برای برچسب اکنون اندازه قلم سیستم را درنظر می‌گیرد. (Idc781)

نسخه 1.7.0-alpha07

‫۱۷ آوریل ۲۰۲۴

‫androidx.compose.material:material-*:1.7.0-alpha07 منتشر شد. نسخه 1.7.0-alpha07 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • پیوندهای نوشتاری علاوه‌بر سبک‌بندی عادی، سبک‌بندی حالت معلق و متمرکز، گزینه سبک‌بندی حالت فشرده را نیز دریافت کردند. (I5f864, b/139312671)
  • شیء TextDefaults اضافه شد که حاوی روش‌هایی برای ساختن LinkAnnotation و تجزیه رشته برچسب‌گذاری‌شده HTML است که MaterialTheme را به پیوندها اعمال می‌کند. (I98532، b/139312671)

نسخه 1.7.0-alpha06

۳ آوریل ۲۰۲۴

‫androidx.compose.material:material-*:1.7.0-alpha06 منتشر شد. نسخه 1.7.0-alpha06 شامل این تعهدها است.

اعلامیه

  • ‫androidx.compose.material دیگر نیازی به استفاده از نسخه یکسان همه آرتیفکت‌ها در این گروه maven ندارد. کاربران می‌توانند نسخه‌های کتابخانه‌های پایه Compose (Ie5fba) را ترکیب کنند

تغییرات میانای برنامه‌سازی کاربردی

  • پیش‌فرض‌های ModalDrawer و BottomDrawer بیشتری به شیء DrawerDefaults منتقل شد. (Ib5b2e)

نسخه 1.7.0-alpha05

‫۲۰ مارس ۲۰۲۴

‫androidx.compose.material:material-*:1.7.0-alpha05 منتشر شد. نسخه 1.7.0-alpha05 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • پرچم ScaffoldSubcomposeInMeasureFix برداشته شده است. (I67363)

نسخه 1.7.0-alpha04

۶ مارس ۲۰۲۴

‫androidx.compose.material:material-*:1.7.0-alpha04 منتشر شد. نسخه 1.7.0-alpha04 شامل این تعهدها است.

ویژگی‌های جدید

نسخه 1.7.0-alpha03

۲۱ فوریه ۲۰۲۴

‫androidx.compose.material:material-*:1.7.0-alpha03 منتشر شد. نسخه 1.7.0-alpha03 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫BottomDrawer از آزمایشی به پایدار ارتقا یافته است. ‫BottomDrawerState اکنون پیشرفت را به‌عنوان یک تابع آشکار می‌کند و امکان می‌دهد پیشرفت بین هدف‌های مشخص را پُرسمان کنید. ‫BottomDrawerState اکنون اجازه می‌دهد مشخصات پویانمایی سفارشی‌سازی شود و confirmStateChange دیگر لامبدای دنباله‌دار نیست. (I9c029، b/261423850)
  • ‫BackdropScaffold از آزمایشی به پایدار ارتقا یافته است. مشخصات پویانمایی اکنون براساس دستورالعمل‌ها، مشخصات tween است. پارامتر snackbarHost از BackdropScaffold دیگر آخرین پارامتر نیست تا با لامبداهای دنباله‌دار اشتباه نشود. ‫BackdropScaffoldState یک میانای برنامه‌سازی کاربردی progress(from, to) برای پُرسمان پیشرفت بین لنگرها ارائه می‌دهد. (I73f48, b/261423218)
  • برگه‌های پایین استاندارد از آزمایشی به پایدار ارتقا یافته‌اند. سازنده‌های منسوخ برداشته شده است. مشخصات پویانمایی اکنون مطابق با دستورالعمل‌ها، مشخصات میان‌یابی است. (I3c1a8, b/278692145, b/261409034)
  • برگه‌های پایین‌کشویی مشروط از حالت آزمایشی به حالت پایدار ارتقا یافته‌اند. سازنده‌های منسوخ برداشته شده است. مشخصات پویانمایی اکنون براساس دستورالعمل‌ها، مشخصات tween است. (Ic53f4،‏ b/278692145،‏ b/266780235،‏ b/261409034)

رفع اشکال‌ها

  • مشکلی برطرف شد که در آن BackdropScaffold در سناریوهای خاصی در ترکیب با LookaheadScope ممکن بود ازکار بیفتد. (I51396)
  • برای بهبود عملکرد، زیرترکیب داخل BottomSheetScaffold برداشته شد. رفع مشکلی که باعث می‌شد BottomSheetScaffold در سناریوهای خاصی در ترکیب با LookaheadScope ازکار بیفتد. (I2f90c)
  • زیرترکیب داخل ModalBottomSheetLayout برداشته شد و عملکرد بهبود یافت. (I7a025)

نسخه 1.7.0-alpha02

۷ فوریه ۲۰۲۴

‫androidx.compose.material:material-*:1.7.0-alpha02 منتشر شد. نسخه 1.7.0-alpha02 شامل این تعهدات است.

نسخه 1.7.0-alpha01

۲۴ ژانویه ۲۰۲۴

‫androidx.compose.material:material-*:1.7.0-alpha01 منتشر شد. نسخه 1.7.0-alpha01 شامل این تعهدات است.

تغییرات رفتار

  • عناصر Material منتقل شده‌اند تا از میاناهای برنامه‌سازی کاربردی جدید موج استفاده کنند و دیگر RippleTheme را پُرسمان نمی‌کنند.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫rememberRipple و RippleTheme از material-ripple منسوخ شده‌اند و میاناهای برنامه کاربردی جدید ripple و RippleConfiguration به material و دیگر کتابخانه‌های سیستم طراحی اضافه شده‌اند.

  • عناصر Material که قبلاً MutableInteractionSource را می‌پذیرفتند و به‌طور پیش‌فرض { MutableInteractionSource() } را به‌خاطر می‌سپردند، اکنون MutableInteractionSource قابل‌تهی را می‌پذیرند و به‌طور پیش‌فرض به‌جای آن تهی را می‌پذیرند. اگر از MutableInteractionSource استفاده نمی‌کنید و آن را بالا نمی‌برید، باید مقدار null را ارسال کنید. این کار باعث می‌شود برخی‌از عناصر فقط درصورت نیاز نمونه‌ای ایجاد کنند و عملکرد بهبود یابد. همچنین توصیه می‌شود که تغییرات مشابهی را در عناصر خودتان ایجاد کنید.

نسخه ۱.۶

نسخه ۱.۶.۸

۱۲ ژوئن ۲۰۲۴

‫androidx.compose.material:material-*:1.6.8 منتشر شد. نسخه ۱.۶.۸ شامل این تعهدها است.

نسخه ۱.۶.۷

۱ مه ۲۰۲۴

‫androidx.compose.material:material-*:1.6.7 منتشر شد. نسخه ۱.۶.۷ شامل این تعهدات است.

نسخه ۱.۶.۶

‫۱۷ آوریل ۲۰۲۴

‫androidx.compose.material:material-*:1.6.6 منتشر شد. از زمان آخرین نسخه تغییری ایجاد نشده است.

نسخه ۱.۶.۵

۳ آوریل ۲۰۲۴

‫androidx.compose.material:material-*:1.6.5 منتشر شد. نسخه ۱.۶.۵ شامل این تعهدات است.

نسخه ۱.۶.۴

‫۲۰ مارس ۲۰۲۴

‫androidx.compose.material:material-*:1.6.4 منتشر شد. نسخه ۱.۶.۴ شامل این تعهدات است.

نسخه ۱.۶.۳

۶ مارس ۲۰۲۴

‫androidx.compose.material:material-*:1.6.3 منتشر شد. نسخه ۱.۶.۳ شامل این تعهدات است.

رفع اشکال‌ها

  • برای اینکه ExposedDropdownMenu دوباره کانونی شود، پسرفت را برطرف کنید. (c0e0ed،‏ b/323694447)

نسخه ۱.۶.۲

۲۱ فوریه ۲۰۲۴

‫androidx.compose.material:material-*:1.6.2 منتشر شد. نسخه ۱.۶.۲ شامل این تعهدات است.

نسخه ۱.۶.۱

۷ فوریه ۲۰۲۴

‫androidx.compose.material:material-*:1.6.1 منتشر شد. نسخه ۱.۶.۱ حاوی این تعهدات است.

نسخه ۱.۶.۰

۲۴ ژانویه ۲۰۲۴

‫androidx.compose.material:material-*:1.6.0 منتشر شد. نسخه ۱.۶.۰ حاوی این تعهدات است.

نسخه 1.6.0-rc01

‫۱۰ ژانویه ۲۰۲۴

‫androidx.compose.material:material-*:1.6.0-rc01 منتشر شد. نسخه 1.6.0-rc01 حاوی این تعهدات است.

نسخه 1.6.0-beta03

‫۱۳ دسامبر ۲۰۲۳

‫androidx.compose.material:material-*:1.6.0-beta03 منتشر شد. نسخه 1.6.0-beta03 حاوی این تعهدات است.

نسخه 1.6.0-beta02

۲۹ نوامبر ۲۰۲۳

‫androidx.compose.material:material-*:1.6.0-beta02 منتشر شد. نسخه 1.6.0-beta02 حاوی این تعهدها است.

نسخه 1.6.0-beta01

۱۵ نوامبر ۲۰۲۳

‫androidx.compose.material:material-*:1.6.0-beta01 منتشر شد. نسخه 1.6.0-beta01 حاوی این تعهدات است.

نسخه 1.6.0-alpha08

۱۸ اکتبر ۲۰۲۳

‫androidx.compose.material:material-*:1.6.0-alpha08 منتشر شد. نسخه 1.6.0-alpha08 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • تابع materialIcon را به‌نفع سربار آن که پارامتر autoMirror می‌گیرد منسوخ کنید. (Ia338d)

رفع اشکال - افزایش خودکار ارتفاع عنصر پیمایش برای محتوای بزرگ. (0c4ecc، b/272336962)

نسخه 1.6.0-alpha07

۴ اکتبر ۲۰۲۳

‫androidx.compose.material:material-*:1.6.0-alpha07 منتشر شد. نسخه 1.6.0-alpha07 شامل این تعهدات است.

  • به‌روزرسانی‌های وابستگی

نسخه 1.6.0-alpha06

‫۲۰ سپتامبر ۲۰۲۳

‫androidx.compose.material:material-*:1.6.0-alpha06 منتشر شد. نسخه 1.6.0-alpha06 شامل این تعهدات است.

تغییر رفتار مخرب

  • عملکرد مربوط به کشو از BottomSheetScaffold برداشته شد. BottomSheetScaffold را در یک عنصر چیدمانی «کشویی» بپیچید تا به عملکرد قبلی دست یابید. برای مثال، به BottomSheetScaffoldWithDrawerSample مراجعه کنید. (I1dcc8)

تغییرات میانای برنامه‌سازی کاربردی

  • پرچم موقتی برای کنترل اینکه آیا Scaffold باید فرزندانش را درطول اندازه‌گیری یا درطول جای‌گذاری اندازه‌گیری کند معرفی شد. به‌طور پیش‌فرض، این مورد با واحد اندازه‌گیری اندازه‌گیری خواهد شد. اگر با عملکرد جدید مشکل دارید، لطفاً مشکل را ثبت کنید. (If6e3b)

نسخه 1.6.0-alpha05

۶ سپتامبر ۲۰۲۳

‫androidx.compose.material:material-*:1.6.0-alpha05 منتشر شد. نسخه 1.6.0-alpha05 حاوی این تعهدات است.

ویژگی‌های جدید

  • پشتیبانی از نمادهای آینه‌ای خودکار هنگام پردازش در چیدمان‌های راست‌به‌چپ اضافه شد. نمادهای موجود در ماژول‌های material-icons-core و material-icons-extended اکنون مجموعه‌های نماد اضافی برای پشتیبانی از قرینه‌سازی خودکار ارائه می‌دهند، البته درصورتی‌که نماد اجازه دهد. مجموعه‌های جدید با Icons.AutoMirrored.Filled... و غیره پیشوندگذاری می‌شوند و دارای نمادهایی هستند که در چیدمان‌های راست‌به‌چپ به‌طور خودکار قرینه می‌شوند. برای فهرست نمادهایی که می‌توانند (و باید) به‌طور خودکار قرینه شوند، فهرست نمادهای Material را ببینید.

تغییرات میانای برنامه‌سازی کاربردی

  • پشتیبانی از نمادهای آینه‌ای خودکار هنگام پردازش در چیدمان‌های راست‌به‌چپ اضافه شد. نمادهای موجود در ماژول‌های material-icons-core و material-icons-extended اکنون مجموعه‌های نماد اضافی برای پشتیبانی از قرینه‌سازی خودکار ارائه می‌دهند، البته درصورتی‌که نماد اجازه دهد. مجموعه‌های جدید با Icons.AutoMirrored.Filled... و غیره پیشوندگذاری می‌شوند و دارای نمادهایی هستند که در چیدمان‌های راست‌به‌چپ به‌طور خودکار قرینه می‌شوند. برای فهرست نمادهایی که می‌توانند (و باید) به‌طور خودکار قرینه شوند، فهرست نمادهای Material را ببینید. ویژگی‌های نماد ارائه‌شده قبلی برای آن نمادها اکنون به‌عنوان منسوخ علامت‌گذاری شده است و پیشنهاد جایگزینی برای کمک به انتقال ارائه می‌دهد. اگر برای قرینه‌سازی نمادها در راست‌به‌چپ هیچ مدیریت ویژه‌ای ندارید، توصیه می‌کنیم به مجموعه نمادهای جدید انتقال دهید. برای مثال، Icons.Filled.ArrowBack باید به Icons.AutoMirrored.Filled.ArrowBack بازسازی شود. (I4b511)

نسخه 1.6.0-alpha04

۲۳ اوت ۲۰۲۳

‫androidx.compose.material:material-*:1.6.0-alpha04 منتشر شد. نسخه 1.6.0-alpha04 حاوی این تعهدات است.

رفع اشکال‌ها

  • مشکلی برطرف شد که در آن برخی‌از عناصر بااستفاده از Subcomposition (برای نمونه BottomSheetScaffold) در «داربست» در LookaheadScope تلاش می‌کردند اندازه خود را خیلی زود بخوانند. (If2c5d)
  • محاسبه DropdownMenu در offset اصلاح شد تا جبران‌های x فقط به جهت چیدمان محلی بستگی داشته باشد و جبران‌های y دیگر وقتی منو نزدیک پایین صفحه‌نمایش است معکوس نشود. (Iccc74، b/294103942)
  • بخش‌های داخلی چیدمان BottomSheetScaffold بهینه‌سازی شد و مشکل احتمالی BottomSheetScaffold در LookaheadLayout رفع شد. (Ic0afa)

نسخه 1.6.0-alpha03

۹ اوت ۲۰۲۳

‫androidx.compose.material:material-*:1.6.0-alpha03 منتشر شد. نسخه 1.6.0-alpha03 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • اکنون عناصر Material2 میانای برنامه‌سازی کاربردی جداگانه‌ای برای انتقال windowInsets دارند تا از عملکرد لبه‌به‌لبه در Android پشتیبانی کنند. برخلاف عناصر material3، عناصر material2 به‌طور پیش‌فرض از حاشیه‌ها پشتیبانی نمی‌کنند و مقدار باید به‌صورت دستی منتقل شود. برای راهنمایی، به نمونه‌های مربوطه مراجعه کنید. (I655e8)

نسخه 1.6.0-alpha02

۲۶ ژوئیه ۲۰۲۳

‫androidx.compose.material:material-*:1.6.0-alpha02 منتشر شد. نسخه 1.6.0-alpha02 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • وابستگی تراکم را به سطح عنصر منتقل می‌کنیم. این امر برای عناصر زیر اعمال می‌شود: SwipeToDismiss و عناصر مبتنی بر «کاربرگ». لطفاً در جایی که تراکم پارامتر است از سربار جدید ارائه‌شده استفاده کنید. (I1846e)
  • حاشیه‌نویسی‌های اضافی برای مشخص کردن ورودی‌های مجاز برای عناصر ترکیبی (I51109)
  • فایل‌های API به‌روزرسانی‌شده برای حاشیه‌نویسی سرکوب سازگاری (I8e87a، b/287516207)
  • «تراز شروع» جدیدی برای FabPosition (Ib7aea،‏ b/170592777) اضافه شد
  • ‫TextFieldColorsWithIcons در Material 2 منسوخ شده است و TextFieldColors جایگزین آن شده است. هنگام ملغی کردن leadingIconColor یا trailingIconColor، بار اضافی را نیز با interactionSource ملغی کنید. (Id57ed،‏ b/199377790)

نسخه 1.6.0-alpha01

۲۱ ژوئن ۲۰۲۳

‫androidx.compose.material:material-*:1.6.0-alpha01 منتشر شد. نسخه 1.6.0-alpha01 حاوی این تعهدات است.

تغییرات رفتار

  • اکنون includeFontPadding به‌طور پیش‌فرض false در حروف‌چینی Material 2 است. سبک پیش‌فرض ارتفاع خط نیز به Trim.None و Alignment.Center تغییر کرده است و lineHeight صریح (در sp) به TextStyleهای Typography اضافه شده است. اگر می‌خواهید این مقادیر را سفارشی‌سازی کنید، به اسناد API مراجعه کنید و برای توضیحات دقیق درباره این تغییرات، پست وبلاگ را ببینید. (Icabc3،‏ I3f801،‏ I04c03)

تغییرات میانای برنامه‌سازی کاربردی

  • ‫Swipeable API مربوط به Material منسوخ شده است. لطفاً به میاناهای برنامه‌سازی کاربردی AnchoredDraggable در Foundation مراجعه کنید که برای موارد استفاده ساده و پیچیده بهینه‌سازی شده‌اند. (I732e0)

رفع اشکال‌ها

  • ‫BottomSheetState،‏ ModalBottomSheetState، و BottomDrawerState اکنون دارایی پیشرفتی را آشکار می‌کنند که پیشرفت بین لنگر فعلی (تسویه‌شده) و نزدیک‌ترین لنگر در جهت تند کشیدن را نشان می‌دهد. (I1b317،‏ b/271169225،‏ b/276375124،‏ b/276776071،‏ b/270066861)

نسخه 1.5

نسخه ۱.۵.۴

۱۸ اکتبر ۲۰۲۳

‫androidx.compose.material:material-*:1.5.4 منتشر شد. نسخه 1.5.4 شامل این تعهدات است.

نسخه ۱.۵.۳

۴ اکتبر ۲۰۲۳

‫androidx.compose.material:material-*:1.5.3 منتشر شد. این نسخه هیچ تغییری ندارد

نسخه 1.5.2

۲۷ سپتامبر ۲۰۲۳

‫androidx.compose.material:material-*:1.5.2 منتشر شد. نسخه ۱.۵.۲ شامل این تعهدات است.

نسخه 1.5.1

۶ سپتامبر ۲۰۲۳

‫androidx.compose.material:material-*:1.5.1 بدون تغییر منتشر شد. نسخه 1.5.1 حاوی این تعهدات است.

نسخه ۱.۵.۰

۹ اوت ۲۰۲۳

‫androidx.compose.material:material-*:1.5.0 منتشر شد. نسخه ۱.۵.۰ حاوی این تعهدات است.

تغییرات مهم از نسخه ۱.۴.۰

تغییرات میانای برنامه‌سازی کاربردی

  • تغییرات در میاناهای برنامه‌سازی کاربردی Swipeable1 در BottomSheetScaffold ادغام شد. نام پارامتر confirmStateChange در BottomSheetState به confirmValueChange تغییر کرده است. ‫progress اکنون به‌عنوان مقدار شناور نمایان است. ‫animateTo و snapTo داخلی هستند. درعوض از expand() و collapse() استفاده کنید. ‫direction و overflow برداشته شده‌اند. ‫offset با requireOffset() جایگزین شده است. I323b4
  • تابع snapTo را در «کشو» به‌عنوان API غیرآزمایشی علامت‌گذاری کنید. (Ib9c18، b/261425368)
  • پارامتر رنگ مسیر برای نشانگرهای پیشرفت دایره‌ای و پارامتر سر خط برای نشانگرهای پیشرفت دایره‌ای و خطی اضافه شد. (Ie668c، b/216325962، b/222964817)
  • نام ModalBottomSheetState، ModalBottomSheetState.Saver، و rememberModalBottomSheetState confirmStateChange به confirmValueChange تغییر کرد. (Ib48d1)
  • ‫Modifier.minimumInteractiveComponentSize را اضافه کنید. اگر عنصر کوچک‌تر باشد، می‌توان از آن برای رزرو حداقل ۴۸ پیکسل مستقل از تراکم در اندازه استفاده کرد تا تعاملات لمسی را از ابهام خارج کند. (I33f58، b/258495559)
  • تغییرات در «میاناهای برنامه‌سازی کاربردی کشیدنی» در ModalBottomSheetLayout اعمال شد. ‫animateTo در ModalBottomSheetState دیگر پارامتر animationSpec را نمی‌پذیرد و اکنون جبران افشاشده می‌تواند تهی باشد. از requireOffset برای الزامی کردن جبران استفاده کنید. (Ia2e79)
  • درحال افزودن @JvmDefaultWithCompatibility حاشیه‌نویسی (I8f206)
  • تغییرات گنجانده‌شده در «میاناهای برنامه‌سازی کاربردی کشیدنی» در ModalDrawer. DrawerState در animateTo با روش‌های باز و بسته جایگزین شده است و اکنون انحراف می‌تواند تهی باشد. از requireOffset برای الزامی کردن جبران استفاده کنید. (I3de9e)
  • «کشویی‌ها» و «کاربرگ‌نگار» به‌روزرسانی شدند تا فشارها را به‌درستی به‌تأخیر بیندازند تا درصورتی‌که اشاره‌ها بتوانند به رویدادهای پیمایش تبدیل شوند.
  • پارامتر minLines به «نوشتار» ماده و ماده۳،‏ TextField، و OutlinedTextField اضافه شد که امکان تنظیم حداقل ارتفاع عنصر براساس تعداد خطوط را فراهم می‌کند (I4af1d)

رفع اشکال‌ها

  • مشکلی را برطرف می‌کند که در آن pullRefresh سرعت را مصرف نمی‌کرد و باعث می‌شد پیمایش بیش‌ازحد نشان داده شود. همچنین امضای API لامبدای onRelease در Modifier.pullRefresh را تغییر داد تا مقدار «شناور» را برای سرعت مصرف‌شده برگرداند (I7db65، b/266874741)
  • ‫BottomSheetState،‏ ModalBottomSheetState، و BottomDrawerState اکنون دارایی پیشرفتی را آشکار می‌کنند که پیشرفت بین لنگر فعلی (تسویه‌شده) و نزدیک‌ترین لنگر در جهت تند کشیدن را نشان می‌دهد. (I1b317،‏ b/271169225،‏ b/276375124،‏ b/276776071،‏ b/270066861)
  • کنش بستن AlertDialog اصلاح شد تا وقتی کنش‌ها روی هم چیده می‌شوند تا در پهنای چارگوش جا شوند، در زیر کنش تأیید نشان داده شود. این اصلاح پیاده‌سازی را با مشخصات Material Design هماهنگ می‌کند. (I029de، b/235454277)
  • وقتی gesturesEnabled روی false تنظیم شود، BottomSheetScaffold دیگر در پیمایش تودرتو شرکت نخواهد کرد. (I634f3، b/215403277)
  • اشکالی برطرف شد که در آن BottomSheetScaffold هنگام ارائه محتوای خالی برای جایگاه‌ها ازکار می‌افتاد. (Ib24a5، b/235588730)
  • PullRefreshIndicator را که رویدادهای کلیک/اشاره‌گر را رهگیری می‌کند برطرف می‌کند. (2494256, b/271777421)
  • مشکلی که باعث می‌شد ModalBottomSheetLayout در یک مورد حاشیه‌ای هنگام تغییر جهت ازکار بیفتد برطرف شد. پویانمایی‌های چیدمان (برای نمونه Modifier.animateContentSize) در/روی محتوای برگ اکنون به‌نرمی کار می‌کند. (I2f981, b/266780234)

نسخه 1.5.0-rc01

۲۶ ژوئیه ۲۰۲۳

‫androidx.compose.material:material-*:1.5.0-rc01 منتشر شد. نسخه 1.5.0-rc01 شامل این تعهدات است.

نسخه 1.5.0-beta03

۲۸ ژوئن ۲۰۲۳

‫androidx.compose.material:material-*:1.5.0-beta03 منتشر شد. نسخه 1.5.0-beta03 حاوی این تعهدات است.

رفع اشکال‌ها

  • ‫BottomSheetState،‏ ModalBottomSheetState، و BottomDrawerState اکنون دارایی پیشرفتی را آشکار می‌کنند که پیشرفت بین لنگر فعلی (تسویه‌شده) و نزدیک‌ترین لنگر در جهت تند کشیدن را نشان می‌دهد. (I1b317،‏ b/271169225،‏ b/276375124،‏ b/276776071،‏ b/270066861)

نسخه 1.5.0-beta02

۷ ژوئن ۲۰۲۳

‫androidx.compose.material:material-*:1.5.0-beta02 منتشر شد. نسخه 1.5.0-beta02 شامل این تعهدات است.

نسخه 1.5.0-beta01

۲۴ مه ۲۰۲۳

‫androidx.compose.material:material-*:1.5.0-beta01 منتشر شد. نسخه 1.5.0-beta01 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • آفست DrawerState و BottomDrawerState دیگر نمی‌تواند تهی باشد. درعوض، Float.NaN را برمی‌گردانند تا نشان دهند که افست وجود ندارد. (Ie9855)
  • گزینه‌ای برای انتقال ScrollState هنگام ساختن DropdownMenu یا ExposedDropdownMenu برای کنترل وضعیت پیمایش عمودی گزینه‌های منو نمایش‌داده‌شده اضافه شد. (Idb009، b/185304441)
  • پشتیبانی از فعال/غیرفعال کردن اشاره ModalBottomSheetLayout اضافه شود تا کاربر بتواند این اشاره را برای برگ زیرین ویژه بیشتری پیکربندی کند (I40af0)
  • پارامتر رنگی به BasicText اضافه شد تا امکان پویانمایی یا تنظیم رنگ نوشتار به‌طور کارآمد فراهم شود. (Iffd88، b/246961787)
  • درحال تغییر نام دارایی «معناشناسی» isContainer به isTraversalGroup (I121f6)

رفع اشکال‌ها

  • کنش بستن AlertDialog اصلاح شد تا وقتی کنش‌ها روی هم چیده می‌شوند تا در پهنای چارگوش جا شوند، در زیر کنش تأیید نشان داده شود. این اصلاح پیاده‌سازی را با مشخصات Material Design هم‌تراز می‌کند. (I029de، b/235454277)

نسخه 1.5.0-alpha04

۱۰ مه ۲۰۲۳

‫androidx.compose.material:material-*:1.5.0-alpha04 منتشر شد. نسخه 1.5.0-alpha04 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • وابستگی تراکم را به سطح عنصر منتقل می‌کنیم. این تنظیم روی اجزای زیر اعمال می‌شود: BottomDrawer، ModalBottomSheetLayout، BottomSheetScaffold، Switch، ModalDrawer. لطفاً در جایی که تراکم پارامتر است از سربار جدید ارائه‌شده استفاده کنید. (I8fbd8)

نسخه 1.5.0-alpha03

‫۱۹ آوریل ۲۰۲۳

‫androidx.compose.material:material-*:1.5.0-alpha03 منتشر شد. نسخه 1.5.0-alpha03 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • بخش‌های داخلی BottomDrawer را به‌روز کنید تا از میاناهای برنامه‌سازی کاربردی جدید SwipeableV2 استفاده کند. به‌همین دلیل، BottomDrawerState اکنون فقط «میاناهای برنامه‌سازی کاربردی» تعریف‌شده در سطح کلاس را خواهد داشت و روش‌ها/دارایی‌ها را از SwipeableState به ارث نخواهد برد. ما از ترکیب با SwipeableV2State داخلی استفاده می‌کنیم. آفست اکنون یک ویژگی نقطه شناور تهی‌پذیر است، مقدار فعلی و مقدار هدف کشیدن همچنان ازطریق ویژگی‌های currentValue و targetValue قابل‌دسترسی است. روش‌های سطح کلاس قبلی مانند باز کردن/ازهم بازکردن/بستن و دارایی‌هایی مانند isOpen/isClosed همچنان پشتیبانی می‌شوند. (Iad40c, b/178529942, b/220676296)

رفع اشکال‌ها

  • بخش‌های داخلی مؤلفه «کلید» به‌روزرسانی شد. اکنون هنگام کشیدن، کلید نزدیک‌ترین (حالت هدف) را پیش‌نمایش می‌کند. (Id90d4)
  • محتوای برگ متحرک (برای نمونه، Modifier.animateContentSize در محتوای برگ) در BottomSheetScaffold بهینه‌سازی شده است و اکنون روان کار می‌کند. (Ia913c، b/270518202، b/254446195)
  • وقتی gesturesEnabled روی false تنظیم شود، BottomSheetScaffold دیگر در پیمایش تودرتو شرکت نخواهد کرد. (I634f3، b/215403277)

نسخه 1.5.0-alpha02

۵ آوریل ۲۰۲۳

‫androidx.compose.material:material-*:1.5.0-alpha02 منتشر شد. نسخه 1.5.0-alpha02 شامل این تعهدات است.

رفع اشکال‌ها

  • اشکالی برطرف شد که در آن BottomSheetScaffold هنگام ارائه محتوای خالی برای جایگاه‌ها ازکار می‌افتاد. (Ib24a5، b/235588730)
  • رفع اشکال PullRefreshIndicator رهگیری کلیک‌ها / رویدادهای اشاره‌گر (2494256، b/271777421)

نسخه 1.5.0-alpha01

۲۲ مارس ۲۰۲۳

‫androidx.compose.material:material-*:1.5.0-alpha01 منتشر شد. نسخه 1.5.0-alpha01 حاوی این تعهدات است.

رفع اشکال‌ها

  • نمونه جاری‌سازی مجدد گروه تراشه را اضافه کنید. فاصله افقی بین تراشه‌های فرزند در نمونه گروه تراشه تک‌خطی را به‌روز کنید تا با مشخصات مطابقت داشته باشد. (I3b155)
  • مشکلی که باعث می‌شد ModalBottomSheetLayout در یک مورد حاشیه‌ای هنگام تغییر جهت ازکار بیفتد برطرف شد. پویانمایی‌های چیدمان (برای نمونه Modifier.animateContentSize) در/روی محتوای برگ اکنون به‌نرمی کار می‌کند. (I2f981, b/266780234)

نسخه ۱.۴

نسخه ۱.۴.۳

۳ مه ۲۰۲۳

‫androidx.compose.material:material-*:1.4.3 بدون هیچ تغییری منتشر می‌شود (فقط نسخه آن افزایش می‌یابد).

نسخه 1.4.2

‫۱۹ آوریل ۲۰۲۳

‫androidx.compose.material:material-*:1.4.2 منتشر شد. نسخه ۱.۴.۲ شامل این تعهدات است.

نسخه ۱.۴.۱

۵ آوریل ۲۰۲۳

‫androidx.compose.material:material-*:1.4.1 منتشر شد. نسخه 1.4.1 حاوی این تعهدات است.

نسخه ۱.۴.۰

۲۲ مارس ۲۰۲۳

‫androidx.compose.material:material-*:1.4.0 منتشر شد. نسخه ۱.۴.۰ حاوی این تعهدات است.

تغییرات مهم از نسخه ۱.۳.۰

تغییرات میانای برنامه‌سازی کاربردی

  • ‫Modifier.minimumInteractiveComponentSize را اضافه کنید. اگر عنصر کوچک‌تر باشد، می‌توان از آن برای رزرو حداقل ۴۸ پیکسل مستقل از تراکم در اندازه استفاده کرد تا تعاملات لمسی را از ابهام خارج کند. (I33f58، b/258495559)
  • تغییرات در «میاناهای برنامه‌سازی کاربردی کشیدنی» در ModalDrawer اعمال شد. ‫animateTo در DrawerState با روش‌های باز و بسته جایگزین شده است و اکنون انحراف می‌تواند تهی باشد. از requireOffset برای الزامی کردن جبران استفاده کنید. (I3de9e)
  • پارامتر minLines به «نوشتار» ماده و ماده۳،‏ TextField، و OutlinedTextField اضافه شد که امکان تنظیم حداقل ارتفاع عنصر براساس تعداد خطوط را فراهم می‌کند (I4af1d)
  • ‫minLines پارامتر به BasicText و BasicTextField اضافه شد. این تنظیم امکان می‌دهد حداقل ارتفاع این عناصر ترکیبی براساس تعداد خطوط تنظیم شود (I24294، b/122476634)

نسخه 1.4.0-rc01

۸ مارس ۲۰۲۳

‫androidx.compose.material:material-*:1.4.0-rc01 بدون تغییر منتشر شد. نسخه 1.4.0-rc01 حاوی این تعهدات است.

نسخه 1.4.0-beta02

۲۲ فوریه ۲۰۲۳

‫androidx.compose.material:material-*:1.4.0-beta02 منتشر شد. نسخه 1.4.0-beta02 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • تغییرات در «میاناهای برنامه‌سازی کاربردی کشیدنی» در BottomSheetScaffold اعمال شد. نام پارامتر confirmStateChange در BottomSheetState به confirmValueChange تغییر کرده است. ‫progress اکنون به‌عنوان مقدار شناور نمایان است. ‫animateTo و snapTo داخلی هستند. درعوض از expand() و collapse() استفاده کنید. ‫direction و overflow برداشته شده‌اند. ‫offset با requireOffset() جایگزین شده است. (I323b4)

رفع اشکال‌ها

  • نقش‌های معنایی از سطوح کلیک‌کردنی و انتخاب‌کردنی برداشته شد، مؤلفه‌هایی که از آن‌ها برای تنظیم نقش‌ها بااستفاده از modifier.semantics استفاده می‌کردند به‌روزرسانی شدند (Ibb4ba)
  • به‌روزرسانی جزئی نمادهای «طراحی مواد» توسعه‌یافته که نمادهای desktop_mac، directions، و kitchen توپر را اصلاح می‌کند. (I65f5e)

نسخه 1.4.0-beta01

۸ فوریه ۲۰۲۳

‫androidx.compose.material:material-*:1.4.0-beta01 منتشر شد. نسخه 1.4.0-beta01 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • مشکلی را برطرف می‌کند که در آن pullRefresh سرعت را مصرف نمی‌کرد و باعث می‌شد پیمایش بیش‌ازحد نشان داده شود. همچنین امضای API لامبدای onRelease در Modifier.pullRefresh را تغییر داد تا مقدار «شناور» را برای سرعت مصرف‌شده برگرداند (I7db65، b/266874741)
  • ‫getter دارایی LocalMinimuTouchTargetEnforcement را بازیابی کنید و آن را به‌عنوان منسوخ علامت‌گذاری کنید و به LocalMinimumInteractiveComponentEnforcement هدایت کنید. (I60dd5)

نسخه 1.4.0-alpha05

۲۵ ژانویه ۲۰۲۳

‫androidx.compose.material:material-*:1.4.0-alpha05 منتشر شد. نسخه 1.4.0-alpha05 حاوی این تعهدات است.

رفع اشکال‌ها

  • رفع مشکلی که در آن وضعیت ModalBottomSheetLayout's HalfExpanded به‌اشتباه محاسبه می‌شد و صفحه به‌نظر شناور می‌آمد. (I8c615، b/265610459)
  • اشکالی در ModalBottomSheetLayout برطرف شد که در برخی شرایط باعث می‌شد وقتی صفحه از حالت پنهان به حالت نمایان می‌رفت ازکار بیفتد. (Ia9265، b/265444789)

نسخه 1.4.0-alpha04

۱۱ ژانویه ۲۰۲۳

‫androidx.compose.material:material-*:1.4.0-alpha04 منتشر شد. نسخه 1.4.0-alpha04 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • در IsContainer خصوصیت معنایی به «سطوح» اضافه شد. این دارایی در تغییر بعدی که ترتیب پیمایش را براساس معنای معنایی عناصر مثل سطوح تعیین می‌کند استفاده خواهد شد. (I63379)
  • تابع snapTo را در «کشو» به‌عنوان API غیرآزمایشی علامت‌گذاری کنید. (Ib9c18، b/261425368)
  • پارامتر رنگ مسیر برای نشانگرهای پیشرفت دایره‌ای و پارامتر سر خط برای نشانگرهای پیشرفت دایره‌ای و خطی اضافه شد. (Ie668c، b/216325962، b/222964817)
  • نام ModalBottomSheetState، ModalBottomSheetState.Saver، و rememberModalBottomSheetState confirmStateChange به confirmValueChange تغییر کرد. (Ib48d1)
  • قابلیت تهی بودن نوع برگشتی توابع منسوخ‌شده-پنهان بیشتر شد (Ibf7b0)
  • ‫Modifier.minimumInteractiveComponentSize را اضافه کنید. اگر عنصر کوچک‌تر باشد، می‌توان از آن برای رزرو حداقل ۴۸ پیکسل مستقل از تراکم در اندازه استفاده کرد تا تعاملات لمسی را از ابهام خارج کند. (I33f58، b/258495559)
  • تغییرات در «میاناهای برنامه‌سازی کاربردی کشیدنی» در ModalBottomSheetLayout اعمال شد. ‫animateTo در ModalBottomSheetState دیگر پارامتر animationSpec را نمی‌پذیرد و offset نمایان‌شده اکنون تهی‌پذیر است. برای الزامی کردن offset، از requireOffset استفاده کنید. (Ia2e79)

رفع اشکال‌ها

  • برگ ModalBottomSheetLayout اکنون حداکثر عرض ۶۴۰ دی‌پی دارد. (I71a4f, b/234927577)
  • مشکلی را برطرف می‌کند که در آن rememberPullRefreshState به‌مرور زمان refreshThreshold و refreshingOffset را به‌روزرسانی نمی‌کرد. (Ifed10، b/263159832)
  • پیشرفت نشانگرهای پیشرفت اکنون به‌درستی به محدوده موردانتظار خود محدود شده است. (I8a7eb، b/262262727)
  • وقتی ModalBottomSheetState هنوز هیچ لنگری دریافت نکرده است، درصورت فراخوانی snapTo یا animateTo به‌جای اینکه استثنایی ایجاد کند، currentValue را بدون پویانمایی به‌روز می‌کند. (I2c91b)
  • وضعیت فعال در پیاده‌سازی Material 2 FilterChip را اصلاح کرد. (Id326a، b/261329817)
  • اشکالی که باعث می‌شد ModalBottomSheetLayout درصورت HalfExpanded بودن هنگام چرخاندن از حالت عمودی به افقی ازکار بیفتد برطرف شد. لطفاً مطمئن شوید که initialValue صحیح را ارسال می‌کنید، برای مثال با بررسی پیکربندی. (Ie8df7, b/182882364)
  • مشکلی که باعث می‌شد اگر محتوای برگ خالی باشد ModalBottomSheetLayout ازکار بیفتد برطرف شد. ‫ModalBottomSheetLayout اکنون محتوای برگ خالی را مجاز می‌کند. اگر محتوای برگ خالی باشد، فقط وضعیت «پنهان» را خواهد داشت. (Ic2288، b/200980998، b/216693030)

مشکل شناخته‌شده

  • هنگام به‌روزرسانی از androidx.compose.foundation:1.4.0-alpha03 به androidx.compose.foundation:1.4.0-alpha04، ممکن است با خطای java.lang.NoSuchFieldError مواجه شوید. اینجا جایی است که مشکل در ابتدا گزارش شده است. اصلاحی ارسال شده است و در به‌روزرسانی بعدی «نوشتن» دردسترس قرار خواهد گرفت. به‌عنوان راهکار موقت، کتابخانه‌های androidx.compose.material و androidx.compose.material3 را به جدیدترین نسخه(1.1.0-alpha04) به‌روز کنید یا androidx.compose.foundation را به نسخه 1.4.0-alpha03 تنزل دهید.

نسخه 1.4.0-alpha03

۷ دسامبر ۲۰۲۲

‫androidx.compose.material:material-*:1.4.0-alpha03 منتشر شد. نسخه 1.4.0-alpha03 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • درحال افزودن @JvmDefaultWithCompatibility حاشیه‌نویسی (I8f206)
  • تغییرات در میاناهای برنامه‌سازی کاربردی Swipeable در ModalDrawer اعمال شد. ‫animateTo DrawerState با روش‌های open و close جایگزین شده است و اکنون انحراف می‌تواند تهی باشد. از requireOffset برای الزامی کردن جبران استفاده کنید. (I3de9e)
  • «میانای برنامه کاربردی اصلاح‌کننده» برای پُرسمان کردن اطلاعات پیمایش اجداد اضافه شد. (I2ba9d، b/203141462)
  • در Clickable استفاده می‌شود تا تعاملات فشار دادن به‌درستی به‌تأخیر بیفتد، زمانی که اشاره‌ها می‌توانند به رویدادهای پیمایش تبدیل شوند.
  • ‫Clickables که هنگام استفاده در Scrollable ViewGroup، موج‌ها را به‌درستی به‌تأخیر نمی‌انداخت، رفع شد.
  • «کشویی‌ها» و «کاربرگ‌نگار» به‌روزرسانی شدند تا فشارها را به‌درستی به‌تأخیر بیندازند تا درصورتی‌که اشاره‌ها بتوانند به رویدادهای پیمایش تبدیل شوند.

رفع اشکال‌ها

  • رفع مشکلی که در آن PullRefreshIndicator پس‌از فراخوانی onRefresh ممکن بود گیر کند، اگر وضعیت بازآوری به درست تغییر نمی‌کرد. (Ie2416، b/248274004)

به‌روزرسانی‌های وابستگی

  • اکنون «واسط کاربر Compose» و «مواد Compose» به «چرخه حیات ۲.۵.۱» وابسته هستند. (I05ab0, b/258038814)

نسخه 1.4.0-alpha02

۹ نوامبر ۲۰۲۲

‫androidx.compose.material:material-*:1.4.0-alpha02 منتشر شد. نسخه 1.4.0-alpha02 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫awaitFirstDown و waitForUpOrCancellation اکنون PointerEventPass را برای انعطاف‌پذیری بیشتر می‌پذیرند. (I7579a, b/212091796)
  • پارامتر minLines به «نوشتار» ماده و ماده۳،‏ TextField، و OutlinedTextField اضافه شد که امکان تنظیم حداقل ارتفاع عنصر براساس تعداد خطوط را فراهم می‌کند (I4af1d)
  • پارامتر minLines به BasicTex و BasicTextField اضافه شد. این امکان را می‌دهد که حداقل ارتفاع این عناصر ترکیبی براساس تعداد خطوط تنظیم شود (I24294، b/122476634)

نسخه 1.4.0-alpha01

‫۲۴ اکتبر ۲۰۲۲

‫androidx.compose.material:material-*:1.4.0-alpha01 منتشر شد. نسخه 1.4.0-alpha01 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • روش جدیدی، awaitEachGesture()، برای آشکارسازهای اشاره اضافه شد. عملکرد آن مشابه forEachGesture() است، اما حلقه مربوط به اشاره‌ها کاملاً در AwaitPointerEventScope عمل می‌کند، بنابراین رویدادها بین تکرارها ازدست نمی‌روند.
  • ‫forEachGesture() به‌نفع awaitEachGesture() منسوخ شده است زیرا اجازه می‌دهد رویدادها بین اشاره‌ها ازدست بروند. (Iffc3f، b/251260206)

نسخه ۱.۳

نسخه ۱.۳.۱

۹ نوامبر ۲۰۲۲

‫androidx.compose.material:material-*:1.3.1 منتشر شد. نسخه 1.3.1 شامل این تعهدات است.

نسخه ۱.۳.۰

‫۲۴ اکتبر ۲۰۲۲

‫androidx.compose.material:material-*:1.3.0 منتشر شد. نسخه ۱.۳.۰ حاوی این تعهدات است.

تغییرات مهم از نسخه ۱.۲.۰

تغییر رفتار مخرب

  • حداکثر ارتفاع پشتیبانی‌شده در کادرهای گفتگو و بالاپرها به ۸dp کاهش یافته است.

تغییرات میانای برنامه‌سازی کاربردی

  • افزودن عنصر «کشیدن برای بازآوری» به Compose (I29168).
  • نام پارامتر را از مقادیر به مقدار در «لغزنده محدوده» (I3b79a) تغییر دهید.

نسخه 1.3.0-rc01

۵ اکتبر ۲۰۲۲

‫androidx.compose.material:material-*:1.3.0-rc01 منتشر شد. نسخه 1.3.0-rc01 حاوی این تعهدات است.

نسخه 1.3.0-beta03

۲۱ سپتامبر ۲۰۲۲

‫androidx.compose.material:material-*:1.3.0-beta03 منتشر شد. نسخه 1.3.0-beta03 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • افزودن عنصر «کشیدن برای بازآوری» به Compose (I29168)

نسخه 1.3.0-beta02

۷ سپتامبر ۲۰۲۲

‫androidx.compose.material:material-*:1.3.0-beta02 منتشر شد. نسخه 1.3.0-beta02 شامل این تعهدات است.

از نسخه 1.3.0-beta01 تغییری ایجاد نشده است

نسخه 1.3.0-beta01

۲۴ اوت ۲۰۲۲

‫androidx.compose.material:material-*:1.3.0-beta01 منتشر شد. نسخه 1.3.0-beta01 حاوی این تعهدات است.

تغییر رفتار مخرب

حداکثر ارتفاع پشتیبانی‌شده در کادرهای گفتگو و بالاپرها به ۸dp کاهش یافته است.

حداکثر ارتفاع پشتیبانی‌شده برای کادرهای «نوشتن» و بالاپَرها از ۳۰dp به ۸dp کاهش یافته است. این تغییر هم بر کادرهای گفتگوی سفارشی و هم بر بالاپرهای رابط کاربری تأثیر می‌گذارد. این تغییر برای کاهش اشکال دسترس‌پذیری در نسخه‌های Android پایین‌تر از S و برای اطمینان از اینکه سرویس‌های دسترس‌پذیری در این پنجره‌ها می‌توانند با محتوای داخل کادر گفتگو یا بالاپر تعامل داشته باشند، انجام شده است.

تنها درصورتی تحت تأثیر این تغییر قرار می‌گیرید که پیاده‌سازی سفارشی برای چارگوش گفتگو یا بالاپری با ارتفاعی بالاتر از ۸dp ایجاد کنید. توصیه می‌کنیم ارتفاع چارگوش گفتگو یا بالاپرتان را کاهش دهید. اگر می‌خواهید از این رفتار جدید انصراف دهید، درنظر داشته باشید که کادر گفتگو یا بالاپری خودتان را با سطح دسترسی موردنظر ایجاد کنید. این کار توصیه نمی‌شود، زیرا ممکن است دسترس‌پذیری تحت تأثیر منفی قرار گیرد و این وظیفه توسعه‌دهنده است که اطمینان یابد بخش پایین کادر گفتگو یا بالاپَر با سرویس‌های دسترس‌پذیری تعامل‌پذیر و خوانا باشد.

نسخه 1.3.0-alpha03

۱۰ اوت ۲۰۲۲

‫androidx.compose.material:material-*:1.3.0-alpha03 منتشر شد. نسخه 1.3.0-alpha03 شامل این تعهدات است.

نسخه 1.3.0-alpha02

۲۷ ژوئیه ۲۰۲۲

‫androidx.compose.material:material-*:1.3.0-alpha02 منتشر شد. نسخه 1.3.0-alpha02 شامل این تعهدها است.

همیاری خارجی

  • برطرف کردن AnimatedVisibility مشکل در FloatingActionButton در Scaffold (I3a0ae، b/224005027)

نسخه 1.3.0-alpha01

۲۹ ژوئن ۲۰۲۲

‫androidx.compose.material:material-*:1.3.0-alpha01 منتشر شد. نسخه 1.3.0-alpha01 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • نام پارامتر را از مقادیر به مقدار در RangeSlider تغییر دهید (I3b79a)

رفع اشکال‌ها

  • نمونه نشان را به‌روز کنید تا شرح محتوای معنادارتری ارائه دهید. (I10b9d)

نسخه ۱.۲

نسخه ۱.۲.۱

۱۰ اوت ۲۰۲۲

‫androidx.compose.material:material-*:1.2.1 منتشر شد. نسخه ۱.۲.۱ حاوی این تعهدات است.

نسخه ۱.۲.۰

۲۷ ژوئیه ۲۰۲۲

‫androidx.compose.material:material-*:1.2.0 منتشر شد. نسخه ۱.۲.۰ حاوی این تعهدها است.

نسخه 1.2.0-rc03

۲۹ ژوئن ۲۰۲۲

‫androidx.compose.material:material-*:1.2.0-rc03 منتشر شد. نسخه 1.2.0-rc03 حاوی این تعهدات است.

  • از نسخه 1.2.0-rc02 تغییری نکرده است.

نسخه 1.2.0-rc02

‫۲۲ ژوئن ۲۰۲۲

‫androidx.compose.material:material-*:1.2.0-rc02 منتشر شد. نسخه 1.2.0-rc02 حاوی این تعهدات است.

نسخه 1.2.0-rc01

۱۵ ژوئن ۲۰۲۲

‫androidx.compose.material:material-*:1.2.0-rc01 منتشر شد. نسخه 1.2.0-rc01 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • میاناهای کتابخانه‌های Compose اکنون بااستفاده از روش‌های میانای پیش‌فرض jdk8 ساخته می‌شوند (I5bcf1)

رفع اشکال‌ها

  • نشان به‌روزرسانی با برگه نماد پیشرو برای چسباندن نشان به برچسب به‌جای نماد. (I90993)

نسخه 1.2.0-beta03

۱ ژوئن ۲۰۲۲

‫androidx.compose.material:material-*:1.2.0-beta03 منتشر شد. نسخه 1.2.0-beta03 حاوی این تعهدات است.

رفع اشکال‌ها

  • اشکالی که در آن BottomSheetScaffold روی سایه نوار برنامه بالای صفحه نقاشی می‌کرد برطرف شد. ‫BottomSheetScaffold اکنون هنگام قرار دادن «نوار تنقلات» وضعیت برگ را نیز درنظر می‌گیرد: در وضعیت جمع‌شده، «نوار تنقلات» بالای برگ و «دکمه شناور اقدام» قرار می‌گیرد؛ در وضعیت ازهم بازشده، «نوار تنقلات» به پایین برگ متصل می‌شود. (Ia80b5، b/187771422)

نسخه 1.2.0-beta02

‫۱۸ مه ۲۰۲۲

‫androidx.compose.material:material-*:1.2.0-beta02 منتشر شد. نسخه 1.2.0-beta02 حاوی این تعهدات است.

نسخه 1.2.0-beta01

۱۱ مه ۲۰۲۲

‫androidx.compose.material:material-*:1.2.0-beta01 منتشر شد. نسخه 1.2.0-beta01 حاوی این تعهدها است.

ویژگی‌های جدید

  • این اولین نسخه بتای ۱.۲ است!

تغییرات میانای برنامه‌سازی کاربردی

  • نام TextFieldDefaults.BorderStroke عنصر ترکیبی که در OutlinedTextField خط حاشیه‌ای رسم می‌کند به TextFieldDefaults.BorderBox تغییر کرد. (I5f295)

نسخه 1.2.0-alpha08

‫۲۰ آوریل ۲۰۲۲

‫androidx.compose.material:material-*:1.2.0-alpha08 منتشر شد. نسخه 1.2.0-alpha08 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • مصرف جزئی (پایین یا موقعیت) در PointerInputChange منسوخ شده است. می‌توانید از consume() برای مصرف کامل تغییر استفاده کنید. می‌توانید از isConsumed برای تعیین اینکه آیا شخص دیگری قبلاً تغییر را مصرف کرده است یا نه استفاده کنید.
  • ‫PointerInputChange::copy() اکنون همیشه کپی سطحی می‌سازد. یعنی وقتی یکی از نسخه‌های PointerInputChange مصرف شود، نسخه‌های دیگر هم مصرف خواهد شد. اگر می‌خواهید PointerInputChange بدون محدودیت ایجاد کنید، به‌جای آن از سازنده استفاده کنید. (Ie6be4، b/225669674)

نسخه 1.2.0-alpha07

‫۶ آوریل ۲۰۲۲

‫androidx.compose.material:material-*:1.2.0-alpha07 منتشر شد. نسخه 1.2.0-alpha07 حاوی این تعهدات است.

نسخه 1.2.0-alpha06

۲۳ مارس ۲۰۲۲

‫androidx.compose.material:material-*:1.2.0-alpha06 منتشر شد. نسخه 1.2.0-alpha06 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • به‌روزرسانی‌های «میانای برنامه‌سازی کاربردی کارت» کلیک‌کردنی برای پیروی از تغییرات در «میانای برنامه‌سازی کاربردی سطح» (I56bcb)
  • به‌روزرسانی‌های «میانای برنامه کاربردی سطح Material 2» که توابع سربار اضافی برای «سطوح» قابل‌انتخاب و قابل‌تغییر اضافه می‌کند. (Ifcca5)

نسخه 1.2.0-alpha05

۹ مارس ۲۰۲۲

‫androidx.compose.material:material-*:1.2.0-alpha05 منتشر شد. نسخه 1.2.0-alpha05 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫LazyVerticalGrid و LazyHorizontalGrid اکنون پایدار هستند. (I307c0)
  • ‫LazyVerticalGrid/LazyHorizontalGrid و همه apiهای مرتبط به زیربسته .grid منتقل شدند. لطفاً وارد کردن‌هایتان را از androidx.compose.foundation.lazy به androidx.compose.foundation.lazy.grid به‌روز کنید. (I2d446, b/219942574)
  • تغییر قبلی که فقط به «نما» برای WindowInsetsControllerCompat متکی بود واگرد شد، و دوباره به «پنجره» نیاز است که برای مدیریت برخی پرچم‌های پنجره لازم است. منسوخ‌شده ViewCompat.getWindowInsetsController به‌نفع WindowCompat.getInsetsController برای اطمینان از اینکه «پنجره» صحیح استفاده می‌شود (مثلاً اگر «نما» در چارگوش گفتگویی باشد). (I660ae، b/219572936)
  • نوشتار:includeFontPadding اکنون به‌طور پیش‌فرض خاموش است. مشکلات برش ناشی از includeFontPadding=false برطرف شده است و هیچ برشی برای متن‌های بلند رخ نخواهد داد. (I31c84، b/171394808)
  • میانای برنامه‌سازی کاربردی LazyVerticalGrid جدیدی برای تعریف اندازه‌های محور متقاطع اضافه شد (I17723)

نسخه 1.2.0-alpha04

۲۳ فوریه ۲۰۲۲

‫androidx.compose.material:material-*:1.2.0-alpha04 منتشر شد. نسخه 1.2.0-alpha04 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫Add support for filter chips (I39a6e، b/192585545)
  • ‫TextFieldDecorationBox و OutlinedTextFieldDecorationBox اضافه شد. استفاده از آن‌ها به‌همراه BasicTextField به شما کمک می‌کند فیلد نوشتار سفارشی را براساس فیلدهای نوشتار «طراحی مواد» بسازید، اما با گزینه‌های بیشتر برای سفارشی‌سازی.
  • روشی برای تنظیم حاشیه‌های افقی و عمودی در فیلدهای نوشتاری ارائه شد. (I8c9f1،‏ b/203764564،‏ b/191543915،‏ b/189971673،‏ b/183136600،‏ b/179882597،‏ b/168003617)
  • ‫ComposableTarget،‏ ComposableTargetMarker، و ComposableOpenTarget اضافه شد که گزارش زمان ترجمه را برای زمانی که یک تابع ترکیب‌پذیر با هدف یک اعمال‌کننده فراخوانده می‌شود که برای استفاده از آن طراحی نشده است امکان‌پذیر می‌کند.

    در بیشتر موارد، حاشیه‌نویسی‌ها را می‌توان از افزایه کامپایلر compose استنباط کرد، بنابراین استفاده مستقیم از این حاشیه‌نویسی‌ها باید نادر باشد . مواردی که نمی‌توانند استنباط شوند شامل ایجاد و استفاده از اعمال‌کننده سفارشی، توابع ترکیبی انتزاعی (مثل روش‌های واسط)، فیلدها یا متغیرهای سراسری که لامبداهای ترکیبی هستند (متغیرهای محلی و پارامترها استنباط می‌شوند)، یا هنگام استفاده از ComposeNode یا توابع ترکیبی مرتبط است.

    برای اعمال‌کننده‌های سفارشی، توابع ترکیبی که ComposeNode یا ReusableComposeNode را فراخوانی می‌کنند باید حاشیه‌نویسی CompoableTarget را برای تابع و هر نوع پارامتر لامبدای ترکیبی اضافه کنند. بااین‌حال، توصیه می‌شود یک گزارمان ایجاد کنید که با ComposableTargetMarker گزارمان‌گذاری شده باشد و سپس از گزارمان علامت‌گذاری‌شده به‌جای ComposableTarget مستقیماً استفاده شود. یک گزارمان ترکیبی علامت‌گذاری‌شده با ComposableTargetMarker معادل ComposbleTarget با نام کاملاً واجدشرایط کلاس مشخصه به‌عنوان پارامتر اعمال‌کننده است. برای نمونه‌ای از استفاده از ComposableTargetMarker، به anroidx.compose.ui.UiComposable مراجعه کنید. (I38f11)

نسخه 1.2.0-alpha03

۹ فوریه ۲۰۲۲

‫androidx.compose.material:material-*:1.2.0-alpha03 منتشر شد. نسخه 1.2.0-alpha03 شامل این تعهدات است.

رفع اشکال‌ها

نسخه 1.2.0-alpha02

‫۲۶ ژانویه ۲۰۲۲

‫androidx.compose.material:material-*:1.2.0-alpha02 منتشر شد. نسخه 1.2.0-alpha02 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫NonRestartableComposable به روش‌هایی که سربار هستند از روش‌های موجود بدون منطق پیچیده اضافه شد. این کار بررسی‌های حافظه‌سازی تولیدشده توسط گردآورنده (برابری) را برای همه پارامترهایی که در تابع داخلی فراخوانده‌شده تکرار می‌شوند کاهش می‌دهد. (I90490)
  • افزودن پشتیبانی برای تراشه کنش (I07100، b/192585545)

نسخه 1.2.0-alpha01

‫۱۲ ژانویه ۲۰۲۲

‫androidx.compose.material:material-*:1.2.0-alpha01 منتشر شد. نسخه 1.2.0-alpha01 شامل این تعهدات است.

به‌روزرسانی‌های وابستگی

  • اکنون به Kotlin 1.6.10 وابسته است.

همیاری خارجی

  • ‫ModalBottomSheetState اکنون پرچم isSkipHalfExpanded دارد. این مقدار می‌تواند ازطریق سازنده تنظیم شود یا بعداً با تنظیم کردن دارایی isSkipHalfExpanded در ModalBottomSheetState روی true به‌روز شود. به‌روزرسانی مقدار isSkipHalfExpanded باعث بازآرایی برگ می‌شود. (I18b86، b/186669820)

نسخه ۱.۱

نسخه ۱.۱.۱

۲۳ فوریه ۲۰۲۲

‫androidx.compose.material:material-*:1.1.1 منتشر شد. نسخه ۱.۱.۱ حاوی این تعهدات است.

رفع اشکال‌ها

  • رفع اشکال NullPointerException در androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList (aosp/1947059،‏ b/206677462)
  • رفع خرابی ناشی از محتوای بریده‌دان هنگام خواندن از بریده‌دان در Android. (I06020, b/197769306)
  • رفع مشکل راست‌به‌چپ در LazyVerticalGrid (aosp/1931080،‏ b/207510535)

نسخه ۱.۱.۰

۹ فوریه ۲۰۲۲

‫androidx.compose.material:material-*:1.1.0 منتشر شد. نسخه ۱.۱.۰ حاوی این تعهدات است.

تغییرات مهم از نسخه ۱.۰.۰

  • پشتیبانی پایدار از جلوه پیمایش اضافی در Android 12
  • بهبودهایی در اندازه هدف لمسی
  • توجه داشته باشید که درخصوص «نوشتن ۱.۰»، عناصر Material فضای چیدمان خود را گسترش خواهند داد تا با دستورالعمل‌های دسترس‌پذیری Material برای اندازه هدف لمسی مطابقت داشته باشند. برای مثال، هدف لمسی «دکمه» به حداقل اندازه ۴۸×۴۸ پیکسل مستقل از تراکم گسترش خواهد یافت، حتی اگر اندازه «دکمه» را کوچک‌تر تنظیم کنید. این کار باعث می‌شود Compose Material با رفتار یکسان «عناصر طراحی سه‌بعدی» هماهنگ شود و درصورت ترکیب کردن «نماها» و Compose، رفتار یکسانی ارائه دهد. این تغییر همچنین تضمین می‌کند که وقتی میانای کاربر خود را بااستفاده از عناصر Compose Material ایجاد می‌کنید، حداقل الزامات دسترسی‌پذیری هدف لمسی برآورده شود.
  • پشتیبانی پایدار از ریل پیمایش
  • تعدادی از میاناهای برنامه‌سازی کاربردی آزمایشی قبلی را به پایدار ارتقا می‌دهد
  • پشتیبانی از نسخه‌های جدیدتر Kotlin

نسخه 1.1.0-rc03

‫۲۶ ژانویه ۲۰۲۲

‫androidx.compose.material:material-*:1.1.0-rc03 منتشر شد. نسخه 1.1.0-rc03 حاوی این تعهدات است.

تغییرات رفتار

توجه داشته باشید که درخصوص «نوشتن ۱.۰»، عناصر Material فضای چیدمان خود را گسترش خواهند داد تا با اندازه دستورالعمل‌های دسترس‌پذیری هدف لمسی در Material مطابقت داشته باشند. برای مثال، هدف لمسی «دکمه» به حداقل اندازه ۴۸×۴۸ پیکسل مستقل از تراکم گسترش خواهد یافت، حتی اگر اندازه «دکمه» را کوچک‌تر تنظیم کنید. این کار باعث می‌شود Compose Material با رفتار یکسان «عناصر طراحی سه‌بعدی» هماهنگ شود و درصورت ترکیب کردن «نماها» و Compose، رفتار یکسانی ارائه دهد. این تغییر همچنین تضمین می‌کند که وقتی میانای کاربر خود را بااستفاده از عناصر Compose Material ایجاد می‌کنید، حداقل الزامات دسترسی‌پذیری هدف لمسی برآورده شود.

رفع اشکال‌ها

  • وقتی اصلاح‌کننده‌های حداقل هدف لمسی را بازرسی می‌کنید، اطلاعات اشکال‌زدایی بهتری برای بازرس چیدمان اضافه شد. (aosp/1955036)

نسخه 1.1.0-rc01

۱۵ دسامبر ۲۰۲۱

‫androidx.compose.material:material-*:1.1.0-rc01 منتشر شد. نسخه 1.1.0-rc01 حاوی این تعهدات است.

رفع اشکال‌ها

نسخه 1.1.0-beta04

۱ دسامبر ۲۰۲۱

‫androidx.compose.material:material-*:1.1.0-beta04 منتشر شد. نسخه 1.1.0-beta04 حاوی این تعهدات است.

ویژگی‌های جدید

  • به‌روزرسانی‌شده برای سازگاری با Kotlin 1.6.0

نسخه 1.1.0-beta03

۱۷ نوامبر ۲۰۲۱

‫androidx.compose.material:material-*:1.1.0-beta03 منتشر شد. نسخه 1.1.0-beta03 حاوی این تعهدات است.

نسخه 1.1.0-beta02

۳ نوامبر ۲۰۲۱

‫androidx.compose.material:material-*:1.1.0-beta02 منتشر شد. نسخه 1.1.0-beta02 شامل این تعهدات است.

رفع اشکال‌ها

  • اکنون امواج و نشانگرهای دیگر فقط درصورتی تأخیر خواهند داشت که در داخل یک محتوی Modifier.scrollable()‎ باشند، به‌جای اینکه همیشه برای رویداد پایین تأخیر داشته باشند. (Ibefe0، b/203141462)

نسخه 1.1.0-beta01

‫۲۷ اکتبر ۲۰۲۱

‫androidx.compose.material:material-*:1.1.0-beta01 منتشر شد. نسخه 1.1.0-beta01 حاوی این تعهدات است.

ویژگی‌های جدید

  • اکنون «موج‌ها» از وضعیت‌های تمرکز و نگه داشتن پشتیبانی می‌کنند، بنابراین نگه داشتن / تمرکز کردن روی عنصری مثل «دکمه» اکنون رونهاد وضعیت صحیح را نشان می‌دهد.

نسخه 1.1.0-alpha06

‫۱۳ اکتبر ۲۰۲۱

‫androidx.compose.material:material-*:1.1.0-alpha06 منتشر شد. نسخه 1.1.0-alpha06 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • یک سربار بدون فرزند برای «چیدمان» اضافه شد که کارایی را بهبود می‌بخشد (Ib0d9a)
  • پیاده‌سازی ExposedDropdownMenu براساس ExposedDropdownMenuBox با TextField و DropdownMenu در داخل (If60b2)
  • ‫dismissOnOutsideClick به PopupProperties اضافه شد و جایگزین dismissOnClickOutside شد که منسوخ شده بود. دارایی جدید موقعیت کلیک و محدوده‌های لنگر را دریافت می‌کند و کنترل دقیق‌تری بر اینکه آیا onDismissRequest باید فراخوانی شود یا نه ارائه می‌دهد. برای مثال، این کار می‌تواند برای جلوگیری از بسته شدن لنگر درصورت لمس لنگر مفید باشد.
    • ‫updateAndroidWindowManagerFlags به PopupProperties اضافه شد و کنترل سطح پایین پرچم‌های ارسال‌شده توسط بالاپَر به Android WindowManager را ارائه می‌دهد. پارامتر لامبدا پرچم‌هایی خواهد بود که از مقادیر PopupProperties محاسبه شده و منجر به پرچم‌های WindowManager می‌شود: مثلاً قابل تمرکز. نتیجه لامبدا پرچم‌های نهایی خواهد بود که به Android WindowManager منتقل می‌شود. به‌طور پیش‌فرض، updateAndroidWindowManagerFlags پرچم‌های محاسبه‌شده از پارامترها را بدون تغییر باقی می‌گذارد. این API باید با احتیاط و فقط در مواردی استفاده شود که بالاپَر دارای الزامات رفتاری بسیار خاصی باشد. (I6e9f9)

نسخه 1.1.0-alpha05

۲۹ سپتامبر ۲۰۲۱

‫androidx.compose.material:material-*:1.1.0-alpha05 منتشر شد. نسخه 1.1.0-alpha05 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • اندازه حداقل هدف لمسی را برای عناصر «طراحی مواد» که هدف لمسی دسترس‌پذیر ندارند اضافه می‌کند. ازآنجایی‌که این کار فضای اضافی در اطراف عناصر اضافه می‌کند تا مطمئن شود هدف لمسی آن‌ها به‌اندازه کافی بزرگ است، ممکن است رابط‌های کاربری موجودی را که اندازه این عناصر را اندازه دیداری آن‌ها درنظر می‌گیرند و اندازه هدف لمسی را درنظر نمی‌گیرند تغییر دهد. می‌توانید از ترکیب محلی آزمایشی LocalMinimumTouchTargetEnforcement برای غیرفعال کردن این رفتار در سراسر سلسله‌مراتب استفاده کنید، اما این فقط برای یک راه فرار موقت درحین به‌روزرسانی واسط‌های کاربر موجود برای درنظر گرفتن اندازه حداقل جدید درنظر گرفته شده است. (I9b966،‏ b/149691127،‏ b/171509422)
  • میانای آزمایشی TextFieldColorsWithIcons اضافه شد که TextFieldColors را گسترش می‌دهد تا InteractionSource را به leadingColor و trailingColor ارائه دهد. این کار امکان اصلاح ظاهر «فیلد نوشتاری» را براساس وضعیت تمرکز فعال می‌کند. (I66923, b/198402662)

نسخه 1.1.0-alpha04

۱۵ سپتامبر ۲۰۲۱

‫androidx.compose.material:material-*:1.1.0-alpha04 منتشر شد. نسخه 1.1.0-alpha04 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫performGesture و GestureScope منسوخ شدند و با performTouchInput و TouchInjectionScope جایگزین شدند. (Ia5f3f، b/190493367)
  • ‫touchBoundsInRoot به SemanticsNode اضافه شد که شامل حداقل اندازه هدف لمسی است تا توسعه‌دهندگان بتوانند مطمئن شوند که هدف‌های لمسی حداقل‌های دسترس‌پذیری را برآورده می‌کنند. (I2e14b, b/197751214)

رفع اشکال‌ها

  • اجازه می‌دهد کلیپ مرزهای هدف لمسی را فراتر از منطقه کلیپ برای اهداف حداقل هدف لمسی گسترش دهد. (I43e10, b/171509422)
  • Divider ترکیبی به‌روز شد تا Dp.Hairline را برای پارامتر ضخامت به‌منظور پشتیبانی از رسم تقسیم‌کننده‌های تک‌پیکسلی بدون درنظر گرفتن تراکم نمایشگر رعایت کند. (I16ffb، b/196840810)

نسخه 1.1.0-alpha03

۱ سپتامبر ۲۰۲۱

‫androidx.compose.material:material-*:1.1.0-alpha03 منتشر شد. نسخه 1.1.0-alpha03 حاوی این تعهدات است.

ویژگی‌های جدید

  • ‫Compose 1.1.0-alpha03 به‌روزرسانی شد تا به Kotlin 1.5.30 وابسته باشد. (I74545)

تغییرات میانای برنامه‌سازی کاربردی

  • روش آزمایشی برای دریافت محدوده‌های کلیپ‌شده اضافه شد. (I6b28e)
  • حداقل اندازه هدف لمسی به ViewConfiguration برای استفاده در معناشناسی و ورودی اشاره‌گر اضافه شد تا دسترسی‌پذیری تضمین شود. (Ie861c)

نسخه 1.1.0-alpha02

۱۸ اوت ۲۰۲۱

‫androidx.compose.material:material-*:1.1.0-alpha02 منتشر شد. نسخه 1.1.0-alpha02 شامل این تعهدها است.

همیاری خارجی

  • اصلاح رفتار SwipeableState در مواردی که انحراف تند کشیدن در محدوده خطای گرد کردن لنگر است. (I03d39, b/191993377)

نسخه 1.1.0-alpha01

۴ اوت ۲۰۲۱

‫androidx.compose.material:material-*:1.1.0-alpha01 منتشر شد. نسخه 1.1.0-alpha01 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • روش DrawScope#drawImage به‌روزشده که مستطیل‌های منبع و مقصد را مصرف می‌کند تا پارامتر اختیاری FilterQuality را مصرف کند. این گزینه برای هنر پیکسلی که قرار است هنگام بزرگ شدن برای هنر مبتنی بر پیکسل پیکسل‌دار شود مفید است. ‫BitmapPainter + Image composable به‌روزرسانی شد تا پارامتر اختیاری FilterQuality را نیز مصرف کند (Ie4fb0، b/180311607)
  • نام BadgeBox به BadgedBox تغییر کرد، پارامترها تغییر کرد تا Badge قابل ترکیب را بپذیرد. عنصر «نشان» اضافه شد که محتوای نشان معمولی برای «جعبه نشان‌دار» است. (I639c6)
  • عنصر NavigationRail اضافه شد، برای اطلاعات استفاده، اسناد و نمونه‌ها را ببینید (I8de77)

رفع اشکال‌ها

  • نمونه NavigationRail با تراز پایین و نسخه نمایشی برنامه Catalog اضافه شد. (I3cffc)
  • اکنون اندازه کادرهای گفتگو از رفتار اندازه پلاتفرم پیروی می‌کند. برای ملغی کردن این رفتار، usePlatformDefaultWidth را روی false تنظیم کنید. (Iffaed, b/192682388)
  • نسخه نمایشی navigation-rail به برنامه کاتالوگ اضافه شد. (I04960)
  • نمونه نمایشی نشان به برنامه کاتالوگ اضافه شد. (If285d)

نسخه 1.0

نسخه ۱.۰.۵

۳ نوامبر ۲۰۲۱

‫androidx.compose.material:material-*:1.0.5 منتشر شد. نسخه ۱.۰.۵ حاوی این تعهدات است.

رفع اشکال‌ها

  • ازکارافتادگی ردیابی نمونه‌های derivedStateOf برطرف شد. (aosp/1792247)

نسخه ۱.۰.۴

‫۱۳ اکتبر ۲۰۲۱

‫androidx.compose.material:material-*:1.0.4 منتشر شد. نسخه 1.0.4 شامل این تعهدات است.

به‌روزرسانی‌های وابستگی

  • به‌روزرسانی شد تا به Kotlin 1.5.31 وابسته باشد

نسخه ۱.۰.۳

۲۹ سپتامبر ۲۰۲۱

‫androidx.compose.material:material-*:1.0.3 منتشر شد. نسخه 1.0.3 شامل این تعهدات است.

به‌روزرسانی‌های وابستگی

  • به‌روزرسانی شد تا به Kotlin 1.5.30 وابسته باشد

نسخه ۱.۰.۲

۱ سپتامبر ۲۰۲۱

‫androidx.compose.material:material-*:1.0.2 منتشر شد. نسخه 1.0.2 حاوی این تعهدات است.

برای پشتیبانی از نسخه 1.0.2 «نوشتن» به‌روز شد. ‫Compose 1.0.2 همچنان با Kotlin 1.5.21 سازگار است.

نسخه ۱.۰.۱

۴ اوت ۲۰۲۱

‫androidx.compose.material:material-*:1.0.1 منتشر شد. نسخه 1.0.1 شامل این تعهدات است.

به‌روزرسانی‌های وابستگی

  • به‌روزرسانی شد تا به Kotlin 1.5.21 وابسته باشد.

نسخه ۱.۰.۰

۲۸ ژوئیه ۲۰۲۱

‫androidx.compose.material:material-*:1.0.0 منتشر شد. نسخه ۱.۰.۰ حاوی این تعهدات است.

ویژگی‌های اصلی نسخه 1.0.0

این اولین نسخه پایدار «نگارش» است. برای جزئیات بیشتر، لطفاً وبلاگ رسمی «نسخه آماده‌سازی» را ببینید!

مشکلات شناخته‌شده

  • اگر از Android Studio Bumblebee Canary 4 یا AGP 7.1.0-alpha04/7.1.0-alpha05 استفاده می‌کنید، ممکن است با خرابی زیر مواجه شوید:

      java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
    

    برای رفع این مشکل، به‌طور موقت minSdkVersion را در فایل build.gradle به ۲۴ یا بالاتر افزایش دهید. این مشکل در نسخه بعدی Android Studio Bumblebee و AGP 7.1 برطرف خواهد شد. (b/194289155)

نسخه 1.0.0-rc02

‫۱۴ ژوئیه ۲۰۲۱

‫androidx.compose.material:material-*:1.0.0-rc02 منتشر شد. نسخه 1.0.0-rc02 حاوی این تعهدها است.

رفع اشکال‌ها

  • اکنون اندازه کادرهای گفتگو از رفتار اندازه پلاتفرم پیروی می‌کند. برای ملغی کردن این رفتار، usePlatformDefaultWidth را روی false تنظیم کنید. (Iffaed, b/192682388)

نسخه 1.0.0-rc01

۱ ژوئیه ۲۰۲۱

‫androidx.compose.material:material-*:1.0.0-rc01 منتشر شد. نسخه 1.0.0-rc01 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫BadgeBox عنصر اضافه شد، برای اطلاعات استفاده به اسناد و نمونه‌ها مراجعه کنید (I5e284)
  • نام useDefaultMaxWidth در PopupProperties به usePlatformDefaultWidth تغییر کرد. (I05710)
  • اکنون کادرهای گفتگو می‌توانند از کل پهنای صفحه استفاده کنند. (I83929،‏ b/190810877)
  • پیاده‌سازی «لغزنده محدوده آزمایشی» اضافه شد (I2f4b3)

رفع اشکال‌ها

  • برای هماهنگی با مشخصات «طراحی مواد»، وقتی از برچسب به‌عنوان جای‌بان استفاده می‌شود، OutlinedTextField با ورودی نامعتبر دیگر از رنگ خطا برای برچسب استفاده نمی‌کند. مورد دوم زمانی درست است که نوشتار ورودی در فیلد نوشتار وجود نداشته باشد و فیلد نوشتار در کانون توجه نباشد. با این تغییر، معنای پارامتر error:Boolean در تابع TextFieldColors.labelColor() نیز تغییر کرد: اکنون حتی اگر ورودی نامعتبر باشد، درصورتی‌که برچسب به‌عنوان جای‌بان استفاده شود، false را برمی‌گرداند. (I45f78)

نسخه 1.0.0-beta09

‫۱۶ ژوئن ۲۰۲۱

‫androidx.compose.material:material-*:1.0.0-beta09 منتشر شد. نسخه 1.0.0-beta09 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • پارامتر «شکل» به OutlinedTextField اضافه شد تا بتوان شکل حاشیه را سفارشی‌سازی کرد (I8f39e، b/181322957)
  • ‫TextOverflow به کلاس به‌خط تغییر می‌کند. (I433af)

رفع اشکال‌ها

  • وقتی Color.Unspecified ارسال می‌شود، Scrim در BottomDrawer،‏ BackdropScaffold، و ModalBottomSheetLayout ناپدید می‌شود (I2d899،‏ b/182063309)

قوانین نمایه اضافه شد

این نسخه پخش قوانین نمایه را به واحدهای پیش‌نویس زیر اضافه می‌کند (I14ed6):

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.foundation
  • androidx.compose.foundation-layout
  • androidx.compose.material
  • androidx.compose.material-ripple
  • androidx.compose.runtime
  • androidx.compose.ui
  • androidx.compose.ui.geometry
  • androidx.compose.ui.graphics
  • androidx.compose.ui.text
  • androidx.compose.ui.text
  • androidx.compose.ui.unit
  • androidx.compose.ui.util

قوانین نمایه چیست؟

  • قوانین نمایه برای کتابخانه در فایل نوشتاری baseline-prof.txt واقع در src/main یا مسیر معادل آن مشخص شده است. فایل در هر خط یک قانون را مشخص می‌کند، که در این مورد قانون الگویی برای مطابقت با روش‌ها یا کلاس‌ها در کتابخانه است. نحو این قوانین مجموعه فرادستی از قالب نمایه‌خوانا برای انسان ART است که هنگام استفاده از adb shell profman --dump-classes-and-methods ... استفاده می‌شود. این قوانین یکی از دو شکل را برای هدف‌یابی روش‌ها یا کلاس‌ها می‌گیرند.

  • قانون روش الگوی زیر را خواهد داشت:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • و قانون کلاس الگوی زیر را خواهد داشت:

    <CLASS_DESCRIPTOR>
    
  • در اینجا <FLAGS> یک یا چند نویسه از نویسه‌های H، S، و P است که نشان می‌دهد آیا این روش باید به‌عنوان «داغ»، «راه‌اندازی»، یا «پس‌از راه‌اندازی» پرچم‌گذاری شود یا نه.

  • ‫<CLASS_DESCRIPTOR> توصیف‌گر کلاسی است که روش هدف‌گذاری‌شده به آن تعلق دارد. برای مثال، کلاس androidx.compose.runtime.SlotTable توصیف‌گر Landroidx/compose/runtime/SlotTable; را خواهد داشت.

  • ‫<METHOD_SIGNATURE> امضای روش است و شامل نام، انواع پارامتر، و انواع برگشتی روش می‌شود. برای مثال، روش fun isPlaced(): Boolean در LayoutNode امضای isPlaced()Z را دارد.

  • این الگوها می‌توانند دارای نویسه‌های عام (**،‏ *،‏ و ?) باشند تا یک قانون واحد چندین روش یا کلاس را دربر بگیرد.

قوانین چه کاری انجام می‌دهند؟

  • روشی که پرچم H را دارد نشان می‌دهد که این روش یک روش «داغ» است و باید ازقبل کامپایل شود.

  • روشی که پرچم S را دارد نشان می‌دهد که این روش در زمان راه‌اندازی فراخوانده می‌شود و باید ازقبل کامپایل شود تا از هزینه کامپایل و تفسیر روش در زمان راه‌اندازی جلوگیری شود.

  • روشی که پرچم P را دارد نشان می‌دهد که این روشی است که پس‌از راه‌اندازی فراخوانده می‌شود.

  • کلاسی که در این فایل وجود دارد نشان می‌دهد که درطول راه‌اندازی استفاده می‌شود و باید در پشته ازپیش تخصیص داده شود تا از هزینه بار کردن کلاس جلوگیری شود.

این چگونه کار می‌کند؟

  • کتابخانه‌ها می‌توانند این قوانین را تعریف کنند که در آرتیفکت‌های AAR بسته‌بندی می‌شوند. وقتی APK ساخته می‌شود که شامل این آرتیفکت‌ها باشد، این قوانین با هم ادغام می‌شوند و از قوانین ادغام‌شده برای ساختن نمایه باینری فشرده ART که مختص APK است استفاده می‌شود. سپس ART می‌تواند هنگام نصب APK در دستگاه‌ها از این نمایه‌برداری استفاده کند تا زیرمجموعه خاصی از برنامه را ازپیش کامپایل کند و عملکرد برنامه، به‌ویژه اولین اجرا، را بهبود دهد. توجه داشته باشید که این کار هیچ تأثیری بر برنامه‌های اشکال‌زدایی‌شدنی نخواهد داشت.

نسخه 1.0.0-beta08

۲ ژوئن ۲۰۲۱

‫androidx.compose.material:material-*:1.0.0-beta08 منتشر شد. نسخه 1.0.0-beta08 حاوی این تعهدها است.

ویژگی‌های جدید

تغییر «میانای برنامه‌سازی کاربردی» که باعث تغییر رفتار می‌شود

  • رفتار-شکن: کارت اکنون کلیک‌ها را مصرف می‌کند و کلیک‌های اضافه‌شده ازطریق Card(Modifier.clickable) را به عملیات بدون اثر تبدیل می‌کند. لطفاً از سربار آزمایشی جدید «کارت» که onClick را می‌پذیرد استفاده کنید. (Ia8744, b/183775620)
    • «بار اضافی کارت» جدیدی اضافه شد که کلیک‌ها و همچنین دیگر قابلیت‌های کلیک‌کردنی را مدیریت می‌کند: نشانگر، منبع تعامل، فعال/غیرفعال. استفاده از «کارت» معمولی غیرکلیک‌کردنی با Modifier.clickable امکان‌پذیر نبود زیرا «کارت» در این موارد نشانگر موج را برش نمی‌دهد.
  • BEHAVIOUR-BREAKING: اکنون Surface کلیک‌ها را مصرف می‌کند، و کلیک‌هایی که ازطریق Surface(Modifier.clickable) اضافه شده‌اند را بدون عملیات می‌کند. لطفاً از سربار تجربی جدید Surface که onClick را می‌پذیرد استفاده کنید. (I73e6c،‏ b/183775620)
    • سربار جدیدی برای Surface اضافه شد که کلیک‌ها و همچنین دیگر عملکردهای کلیک‌کردنی را مدیریت می‌کند: نشانگر، interactionSource، فعال/غیرفعال. استفاده از «سطح» غیرکلیک‌کردنی معمولی با Modifier.clickable امکان‌پذیر نبود زیرا «سطح» در این موارد نشانگر موج را برش نمی‌دهد.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫FabPosition از شمارشی به کلاس درون‌خطی تبدیل شد تا از توسعه احتمالی در آینده پشتیبانی کند (I030fb)
  • استفاده‌های شمارشی را به کلاس‌های درون‌خطی تغییر دادیم تا از مشکلات مربوط به دستورات جامع when هنگام اضافه شدن مقادیر شمارشی جدید جلوگیری کنیم. (I2b5eb)
  • برای جلوگیری از نمایش موج درحین پیمایش / کشیدن، زمان وقفه برای ضربه به عناصر کلیک‌کردنی / قابل‌تغییر اضافه می‌کند (Ia2704، b/168524931)
  • خواص معنایی «شرح محتوا» و «نوشتار» دیگر مقادیر واحد نیستند بلکه فهرست هستند. این کار باعث می‌شود آن‌ها به‌جای اینکه به‌هم متصل شوند، به‌هم ادغام شوند. همچنین میاناهای برنامه‌سازی کاربردی آزمایش بهتری برای استفاده از این تغییرات ارائه شده است (Ica6bf، b/184825850)
  • ‫Modifier.focusModifier() منسوخ شده است و با Modifier.focusTarget() (I6c860) جایگزین شده است
  • ‫FocusState enum با رابط FocusState جایگزین شد (Iccc1a،‏ b/187055290)
  • اکنون که پیاده‌سازی موجک پشتیبان «نما» پایدار است، LocalRippleNativeRendering برداشته شد (I7fab3، b/188569367)

رفع اشکال‌ها

  • ‫Modifier.onGloballyPositioned() تغییر کرد تا مختصات این اصلاح‌کننده را در زنجیره اصلاح‌کننده گزارش کند، نه مختصات چیدمان را پس‌از اعمال همه اصلاح‌کننده‌ها. این یعنی اکنون ترتیب اصلاح‌کننده‌ها بر مختصاتی که گزارش می‌شود تأثیر می‌گذارد. (Ieb67d،‏ b/177926591)
  • یک فایل README برای کاتالوگ موجود Compose Material اضافه شد. (If9191)

نسخه 1.0.0-beta07

۱۸ مه ۲۰۲۱

‫androidx.compose.material:material-*:1.0.0-beta07 منتشر شد. نسخه 1.0.0-beta07 شامل این تعهدها است.

تغییرات میانای برنامه‌سازی کاربردی

  • دیگر نیازی به استفاده از روش‌های افزونه برای پشتیبانی از مسیر در «ترکیب پیمایش» ندارید. (I22beb،‏ b/172823546)

نسخه 1.0.0-beta06

۵ مه ۲۰۲۱

‫androidx.compose.material:material-*:1.0.0-beta06 منتشر شد. نسخه 1.0.0-beta06 شامل این تعهدها است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫Ripple به استفاده از RippleDrawable به‌صورت داخلی در دستگاه‌های Android منتقل شده است. این یعنی پویانمایی‌های موجی در RenderThread اتفاق می‌افتد و حتی زمانی که رشته واسط کاربر تحت بار است، مثلاً هنگام پیمایش بین صفحه‌ها، روان خواهد بود. این تغییر سطح API موج‌دار را تغییر نمی‌دهد، اما ممکن است تغییرات رفتاری در نتیجه این تغییر معرفی شود. برای کمک به انتقال، LocalRippleNativeRendering اضافه شده است - مقدار false را به این CompositionLocal ارائه دهید تا به پیاده‌سازی موج قبلی در CompositionLocalProvider برگردد. این API موقتی است و در آینده برداشته خواهد شد، بنابراین اگر با مشکلاتی مواجه شدید که باعث شود از این API استفاده کنید، لطفاً گزارش اشکال ثبت کنید. (I902f8،‏ b/168777351،‏ b/183019123)
  • میاناهای برنامه‌سازی کاربردی دسترس‌پذیری CollectionInfo و CollectionItemInfo اضافه شد که امکان علامت‌گذاری مجموعه و موارد آن را برای خدمات دسترس‌پذیری فراهم می‌کند (Id54ef،‏ b/180479017)
  • «میانای برنامه‌سازی کاربردی» دسترس‌پذیری error اضافه شد که امکان علامت‌گذاری گره حاوی ورودی نامعتبر را فراهم می‌کند (I12997، b/180584804، b/182142737)

رفع اشکال‌ها

  • پیاده‌سازی درونی‌های کاتالوگ «نوشتن مطلب» به‌روزرسانی شد از: https://github.com/google/accompanist/pull/365. (I25dc3)
  • فرزندان «ردیف و ستون» با وزن(پر کردن = نادرست) دیگر باعث نمی‌شوند که والد کل فضای محور اصلی دردسترس را پر کند. (Ied94d،‏ b/186012444،‏ b/184355105)

نسخه 1.0.0-beta05

۲۱ آوریل ۲۰۲۱

‫androidx.compose.material:material-*:1.0.0-beta05 منتشر شد. نسخه 1.0.0-beta05 حاوی این تعهدها است.

رفع اشکال‌ها

  • تصاویر کاشی عنصر، انتخابگر زمینه، و نشانی‌های وب منو خاص‌تر به کاتالوگ «ترکیب مواد» موجود اضافه شد. (I9b58e)

نسخه 1.0.0-beta04

۷ آوریل ۲۰۲۱

‫androidx.compose.material:material-*:1.0.0-beta04 منتشر شد. نسخه 1.0.0-beta04 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • تغییر میانای برنامه‌سازی کاربردی: وضعیت DrawerState دیگر از SwipeableState آزمایشی گسترش نمی‌یابد.
    • تغییر در «میانای برنامه‌سازی کاربردی»: BottomDrawerState اکنون به‌عنوان «آزمایشی» علامت‌گذاری شده است تا با عنصر «کشوی پایین» که ازقبل «آزمایشی» بوده است مطابقت داشته باشد (I81114، b/181656094)
  • نام hideSoftwareKeyboard و showSoftwareKeyboard در SoftwareKeyboardController را به‌ترتیب به hide() و show() تغییر دهید.
    • ارائه میانای کامل CompositionLocal برای LocalSoftwareKeyboardController، که امکان تنظیم آن را فراهم می‌کند (به‌ویژه در آزمایش‌ها مفید است) (I579a6)
  • «میانای برنامه‌سازی کاربردی» دسترس‌پذیری LiveRegion اضافه شد. اگر گره به‌عنوان منطقه زنده علامت‌گذاری شده باشد، خدمات دسترس‌پذیری به‌طور خودکار کاربر را از تغییرات آن مطلع می‌کند (Idcf6f، b/172590946)

رفع اشکال‌ها

  • پیاده‌سازی کاتالوگ Compose Material به واحد موجود اضافه شد. درحال‌حاضر موارد زیر وجود ندارد: تصاویر کاشی مؤلفه، انتخاب‌گر زمینه (در تغییرات بعدی اضافه خواهد شد). (Ie7a94)

نسخه 1.0.0-beta03

۲۴ مارس ۲۰۲۱

‫androidx.compose.material:material-*:1.0.0-beta03 منتشر شد. نسخه 1.0.0-beta03 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫DefaultMonotonicFrameClock منسوخ شده است. فراخوانی withFrameNanos یا Recomposer.runRecomposeAndApplyChanges بدون MonotonicFrameClock اکنون IllegalStateException را ایجاد می‌کند. (I4eb0d)
  • ‫API جدیدی LeadingIconTab برای پشتیبانی از نمایش نماد و نوشتار درون‌خطی در برگه اضافه شد. (I23267)

همیاری خارجی

  • [توسط Jossi Wolf] BottomDrawer اکنون محتوای جایگاه کشو را می‌پیچد. وقتی عنصر مادر ارتفاع بی‌نهایت دارد، BottomDrawer IllegalStateException را پرتاب نمی‌کند. اگر کشو پایین کوچک‌تر از ۵۰٪ والد خود باشد، اکنون در حالت ازهم بازشده باز خواهد شد. «سندنگار» در حدود BottomDrawerState و ModalBottomSheetLayoutState به‌روز شده است. ‫BottomDrawerState#isOpen اکنون اگر در وضعیت باز یا ازهم بازشده باشد، درست برمی‌گرداند. (I87241)

نسخه 1.0.0-beta02

۱۰ مارس ۲۰۲۱

‫androidx.compose.material:material-*:1.0.0-beta02 منتشر شد. نسخه 1.0.0-beta02 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • «میانای برنامه‌سازی کاربردی» محلی ترکیب LocalSoftwareKeyboardController جدیدی اضافه شد تا جایگزین رابط SoftwareKeyboardController قبلی در «فیلد نوشتاری» شود. (I5951e، b/168778053)

رفع اشکال‌ها

  • اعمال محدودیت‌ها بر استفاده عمومی از میاناهای برنامه‌سازی کاربردی آزمایشی (I6aa29، b/174531520)
  • محاذات افقی پیش‌فرض برای TopAppBar و BottomAppBar به «شروع» تغییر کرد، که با «ردیف» سازگار است (Ib2dc7)
  • واحد جدید و واسط کاربر جای‌بان برای کاتالوگ «ترکیب مواد» اضافه شد که درحال‌حاضر در نمایش‌های آزمایشی ادغام موجود قرار دارد. (Idfcb3)
  • ‫androidx.compose.ui:ui دیگر به AppCompat یا Fragment وابسته نیست. اگر در برنامه‌تان از ComposeView استفاده می‌کنید و از Fragment و/یا AppCompat استفاده می‌کنید، مطمئن شوید که از AppCompat نسخه 1.3+ / Fragment نسخه 1.3+ استفاده می‌کنید - این نسخه‌ها برای تنظیم صحیح مالکان چرخه حیات و وضعیت ذخیره‌شده موردنیاز برای ComposeView لازم است. (I1d6fa،‏ b/161814404)

نسخه 1.0.0-beta01

۲۴ فوریه ۲۰۲۱

‫androidx.compose.material:material-*:1.0.0-beta01 منتشر شد. نسخه 1.0.0-beta01 شامل این تعهدات است.

این اولین نسخهٔ پخش Compose 1.0.0 Beta است.

تغییرات میانای برنامه‌سازی کاربردی

  • نام اصلاح‌گرهای اندازه تغییر کرد. Modifier.width/height/size به requiredWidth/requiredHeight/requiredSize تغییر نام داد. نام Modifier.preferredWidth/preferredHeight/preferredSize به width/height/size تغییر کرد. (I5b414)
  • ‫imageResource و vectorResource اکنون توابع افزونه‌ای در هم‌نشین‌های ImageBitmap و ImageVector هستند. توابع load{Image,Vector,Font}Resource حذف شده‌اند. (I89130)
  • اصلاح‌کننده‌های اندازه‌گیری براساس ویژگی‌های ذاتی دیگر آزمایشی نیستند. (I15744)
  • ادعاهای dp برداشته شد (I798d2)
  • کاربرگ «کنترل‌کننده صفحه‌کلید نرم‌افزاری» از همه فیلدهای نوشتاری برداشته شد تا به‌زودی با API جدیدی جایگزین شود. (Iae869، b/168778053)
  • لامبداهای کنش «کلید»، «چارگوش انتخاب»، و «دکمه رادیویی» اکنون تهی‌پذیر هستند. نمونه‌های «چارگوش انتخاب در ردیف کلیک‌کردنی» به‌روزرسانی شد تا از این ویژگی استفاده کند. (If601b،‏ b/171819073)
  • ‫InteractionState با [Mutable]InteractionSource جایگزین شد
    • واسط‌ها مسئول انتشار / جمع‌آوری رویدادهای «تعامل» هستند.
    • به‌جای انتقال interactionState = remember { InteractionState() } به عناصری مثل Button و Modifier.clickable()، از interactionSource = remember { MutableInteractionSource() } استفاده کنید.
    • به‌جای: Interaction.Pressed in interactionState باید از توابع افزونه در InteractionSource استفاده کنید، مثلاً InteractionSource.collectIsPressedAsState().
    • برای موارد استفاده پیچیده می‌توانید از InteractionSource.interactions برای مشاهده جاری‌سازی «تعامل‌ها» استفاده کنید. برای اطلاعات بیشتر، به اسناد و نمونه‌های InteractionSource مراجعه کنید.
    • (I85965،‏ b/152525426،‏ b/171913923،‏ b/171710801،‏ b/174852378)
  • افزودن میانای AccessibilityMananger و LocalAccessibilityMananger در CompositionLocals (I53520)
  • روش‌های منسوخ‌شده LayoutCoordinates برداشته شد، به‌جای دارایی برای positionInParent و boundsInParent از تابع استفاده کنید (I580ed، b/169874631، b/175142755)
  • لغزنده اکنون از وضعیت فعال/غیرفعال پشتیبانی می‌کند (I6d56b، b/179793072)
  • ‫TextInputSession جدیدی برای جلسه‌های ورودی از عناصر نوشتاری سطح پایین مثل CoreTextField ایجاد شد. (I8817f, b/177662148)
  • ‫AnimationEndReason.Interrupted برداشته شد. اگر پویانمایی قطع شود، CancellationException پرتاب خواهد شد. (I2cbbc, b/179695417)
  • ‫@ExperimentalRippleApi برداشته شد و RippleAlpha به کلاسی با دارایی‌ها به‌جای میانای کاربری تغییر کرد. (I6df7c)
  • واسط TextFieldColors اضافه شد تا رنگ‌های مختلف استفاده‌شده در TextField و OutlinedTextField در حالت‌های مختلف را نشان دهد. برای پیاده‌سازی پیش‌فرض، TextFieldDefaults.textFieldColors و TextFieldDefaults.outlinedTextFieldColors را ببینید.
    • پارامتر isErrorValue در TextField و OutlinedTextField به isError تغییر نام داد. (I831f9، b/171305338، b/168004067)
  • افزودن اصلاح‌گر selectionGroup که امکان علامت‌گذاری مجموعه «برگه‌ها» یا «دکمه‌های رادیویی» را برای اهداف دسترس‌پذیری فراهم می‌کند (Ie5c29)
  • افزودن LazyListState.animateScrollToItem

    این روش به مورد خاصی در فهرست پیمایش روان انجام می‌دهد. (I4bfd7)

  • نام ScrollableState.smoothScrollBy() به animateScrollBy() تغییر کرد نام LazyListState.snapToItemIndex() به scrollToItem() تغییر کرد نام ScrollState.smoothScrollTo() به animateScrollTo() تغییر کرد (I35ded)

  • اکنون هر عنصر ترکیبی که با @ReadOnlyComposable علامت‌گذاری شده است در زمان ترجمه اعتبارسنجی می‌شود تا مطمئن شویم که فقط با @ReadOnlyComposables دیگر تماس می‌گیرد (I58961)

  • ‫TargetAnimation API برداشته شده است. (If47d1، b/177457083)

  • موقعیت پیمایش در Modifier.verticalScroll()/horizontalScroll() اکنون با Ints نشان داده می‌شود (I81298)

  • بسته‌های روش‌های smoothScrollBy و scrollBy به androidx.compose.foundation.gestures.* تغییر کرد (I3f7c1، b/175294473)

  • نام FlingConfig به FlingBehavior تغییر کرده است و اکنون به‌جای Decays ازپیش‌تعریف‌شده، امکان سفارشی‌سازی پویانمایی تعلیق را فراهم می‌کند. (I02b86، b/175294473)

  • نام اصلاح‌گرهای اندازه تغییر کرد. Modifier.width/height/size به requiredWidth/requiredHeight/requiredSize تغییر نام داد. نام Modifier.preferredWidth/preferredHeight/preferredSize به width/height/size تغییر کرد. (I5b414)

  • نام defaultMinSizeConstraints به defaultMinSize تغییر کرد. (I4eaae)

  • جهت‌یابی به بسته پایه منتقل شده است. ‫VelocirtTracker از ui.gesture به ui.input.pointer منتقل شد. (Iff4a8، b/175294473)

  • ‫drawerState.open() و drawerState.close() اکنون توابع را معلقه می‌کنند. از rememberCoroutineScope()‎ برای دریافت حوزه ترکیب برای فراخوانی آن‌ها استفاده کنید (I16f60، b/175294473)

  • نام Providers به CompositionLocalProvider تغییر کرده است

    • سازنده «ترکیب» دیگر پارامتر کلید را نمی‌پذیرد و منسوخ شده است.
    • ‫currentCompositeKeyHash به‌جای تابع سطح بالای ترکیب‌شدنی به دارایی سطح بالای ترکیب‌شدنی تبدیل شده است.
    • ‫CompositionData و CompositionGroup به فضای نام androidx.compose.runtime.tooling منتقل شده‌اند
    • ‫ComposableLambda به‌جای کلاس عینی به یک رابط تبدیل شده است و دیگر پارامترهای نوع ندارد.
    • ‫ComposableLambdaN به‌جای کلاس عینی به یک میانای تبدیل شده است و دیگر پارامترهای نوع ندارد.
    • تابع snapshotFlow به جای‌نام androidx.compose.runtime منتقل شده است
    • روش ادغام SnapshotMutationPolicy دیگر آزمایشی نیست
    • تابع @TestOnly سطح بالای clearRoots برداشته شده است. دیگر ضروری نیست.
    • توابع keySourceInfoOf و resetSourceInfo برداشته شده‌اند. دیگر ضروری نیستند.
    • ‫Composer.collectKeySourceInformation برداشته شده است. دیگر ضروری نیست.
    • روش‌های isJoinedKey، joinedKeyLeft، و joinedKeyRight برداشته شده‌اند. دیگر ضروری نیستند.
    • میاناهای برنامه‌سازی کاربردی سطح بالای مختلفی به فایل‌های دیگری منتقل و در آن‌ها سازمان‌دهی مجدد شده‌اند. به‌دلیل معناشناسی کلاس فایل Kotlin، این کار سازگاری باینری را ازبین می‌برد اما سازگاری منبع را ازبین نمی‌برد، بنابراین نباید برای اکثر کاربران مشکلی ایجاد کند.
    • (I99b7d، b/177245490)
  • ‫Modifier.scrollable بازطراحی شده است. اکنون به‌جای کلاس ScrollableController از رابط Scrollable استفاده می‌کند (I4f5a5، b/174485541، b/175294473)

  • ‫Modifier.draggable اکنون به‌جای لامبدای ساده، DraggableState را می‌پذیرد. می‌توانید ازطریق rememberDraggableState { delta -> } وضعیت ایجاد کنید تا همان رفتار قبلی را داشته باشید (Ica70f، b/175294473)

  • ‫ZoomableController.smoothScaleBy و ‫ZoomableController.stopAnimation اکنون توابع تعلیق هستند. (I7f970، b/177457083)

  • برخی‌از میاناهای برنامه‌سازی کاربردی که قبلاً منسوخ شده بودند حذف شدند (Ice5da، b/178633932)

  • تغییرات زیر در «میانای برنامه‌سازی کاربردی Material» ایجاد شد:

    • پارامتر contentPadding به Top/BottomAppBar اضافه شد تا امکان سفارشی‌سازی حاشیه پیش‌فرض فراهم شود.
    • پارامترها در BackdropScaffold دوباره مرتب شدند تا از دستورالعمل‌های میانای برنامه‌سازی کاربردی برای پارامترهای الزامی که قبل‌از پارامترهای اختیاری قرار می‌گیرند پیروی شود.
    • پارامتر icon در BottomNavigationItem به بعداز selected و onClick منتقل شد.
    • نام پارامتر alwaysShowLabels در BottomNavigationItem به alwaysShowLabel تغییر کرد.
    • نام bodyContent پارامتر در چند عنصر به content تغییر کرد.
    • ترتیب پارامترها در ButtonDefaults.buttonColors() تغییر کرد. لطفاً توجه داشته باشید که چون نوع پارامترها تغییر نکرده است، این تغییر باعث بروز خطا در کد شما نخواهد شد. لطفاً مطمئن شوید که از پارامترهای نام‌دار استفاده می‌کنید یا ترتیب را به‌صورت دستی به‌روزرسانی می‌کنید، درغیراین‌صورت کد شما مثل قبل کار نخواهد کرد.
    • ‫secondaryVariant پارامتر به darkColors() اضافه شد. این رنگ معمولاً با secondary در زمینه تیره یکسان است، اما برای یکنواختی و سفارشی‌سازی بیشتر اضافه شده است.
    • ‫ElevationDefaults و animateElevation() را از سطح API عمومی برداشتیم زیرا معمولاً استفاده نمی‌شدند / مفید نبودند.
    • نام onValueChangeEnd در Slider به onValueChangeFinished تغییر کرد و قابل‌تهی شد.
    • نام پارامتر text در Snackbar به content تغییر کرد تا یکپارچگی حفظ شود.
    • پارامتر contentPadding به DropdownMenuItem اضافه شد تا امکان سفارشی‌سازی حاشیه پیش‌فرض فراهم شود و content به افزونه‌ای در RowScope تبدیل شد.
    • نام ModalDrawerLayout به ModalDrawer تغییر کرد.
    • نام BottomDrawerLayout به BottomDrawer تغییر کرد.
    • (I1cc66)
  • ‫BasicTextField اکنون به‌جای «رنگ»، «قلم‌مو» را می‌پذیرد تا سفارشی‌سازی بهتری داشته باشد (I83a36)

  • ‫imageResource و vectorResource اکنون توابع افزونه‌ای در هم‌نشین‌های ImageBitmap و ImageVector هستند. توابع load{Image,Vector,Font}Resource حذف شده‌اند. (I89130)

  • ‫Indication#createIndication() به Indication#rememberUpdatedIndication(InteractionState) تغییر کرد و پارامتر InteractionState از IndicationInstance#drawIndication() برداشته شد. IndicationInstance فقط باید مسئول رسم جلوه‌های دیداری باشد و نه راه‌اندازی پویانمایی‌ها / نوشتن وضعیت در پاسخ به تغییرات InteractionState. این پویانمایی‌ها و نوشتن‌های وضعیت باید در rememberUpdatedIndication() انجام شود. پارامتر indication در Modifier.indication نیز به پارامتر الزامی تغییر کرد. (Ic1764، b/152525426)

رفع اشکال‌ها

  • ترکیب جدید LocalSoftwareKeyboardController API محلی اضافه شد تا جایگزین رابط قبلی SoftwareKeyboardController در TextField شود. (I658b6، b/168778053)

نسخه 1.0.0-alpha12

۱۰ فوریه ۲۰۲۱

‫androidx.compose.material:material-*:1.0.0-alpha12 منتشر شد. نسخه 1.0.0-alpha12 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫Modifier.pointerInput اکنون برای نشان دادن اینکه روتین مشترک تشخیص ورودی اشاره‌گر باید برای وابستگی‌های جدید بازراه‌اندازی شود به کلیدهای یادآوری نیاز دارد. (I849cd)
  • ‫BottomDrawerLayout و ListItem به‌عنوان ‎ @ExperimentalMaterialApi علامت‌گذاری شده‌اند (Id766e)
  • ‫PaddingValues.Absolute اضافه شد و می‌تواند در میاناهای برنامه‌سازی کاربردی که PaddingValues را می‌پذیرند استفاده شود. (Ia5f30)
  • ‫onImeActionPerformed منسوخ شده است. به‌جای آن از KeyboardActions استفاده کنید (If0bbd، b/179071523)
  • برای مطابقت بهتر با قراردادهای نام‌گذاری ImageBitmap و ImageVector، نام ImagePainter به BitmapPainter تغییر کرده است تا با VectorPainter موازی شود. (Iba381, b/174565889)
  • ‫Animatable.snapTo و Animatable.stop اکنون توابع تعلیق هستند (If4288)
  • ‫ComponentActivity.setContent به androidx.activity.compose.setContent در androidx.activity:activity-compose module منتقل شده است. (Icf416)
  • روش‌های ساختارشکنی و copy() از چندین کلاس که به‌ندرت استفاده می‌شدند برداشته شده است. (I26702, b/178659281)
  • ساختن halfExpand()‎ و expand()‎ در ModalBottomSheetState داخلی (Ic914e)
  • ‫Indication#createInstance به @Composable تغییر کرد و LocalIndication تغییر کرد تا حاوی Indication باشد، نه () -> Indication. (I5eeea، b/157150564)
  • «AlertDialog» و «DropdownMenu» به Android منتقل شد تا فعلاً فقط در آن دردسترس باشد. پارامتر PopupProperties به DropdownMenu اضافه شد تا Popup زیرین بیشتر پیکربندی شود. (I9c443)
  • ‫loadFontResource منسوخ شده است. به‌جای آن از fontResource استفاده کنید. imageResource،‏ loadImageResource،‏ vectorResource، و loadVectorResource منسوخ شده‌اند. درعوض از painterResource استفاده کنید. (I6b809)
  • پارامترهای toggle و toggleModifier از «منوِ کرکره‌ای» برداشته شد و dropdownModifier، dropdownOffset، و dropdownContent به ترتیب به modifier، offset، و content تغییر نام دادند. اکنون DropdownMenu به‌طور یکنواخت با Popup رفتار می‌کند، جایی که از چیدمان والد برای موقعیت منو استفاده می‌شود. در بیشتر موارد می‌توانید toggle را به خواهر یا برادر DropdownMenu تبدیل کنید و هر دو را در Box بپیچید. برای اطلاعات بیشتر درباره استفاده از این «میانای برنامه‌سازی کاربردی»، نمونه به‌روزشده را در مستندات ببینید. (I884fb)
  • نام toIntPx() به roundToPx() تغییر کرد. (I9b7e4، b/173502290)
  • نام IntBounds به IntRect تغییر کرد و «میانای برنامه کاربردی» بهبود یافت. (I1f6ff)
  • کنش‌های معنایی ازهم بازکردن و جمع کردن اضافه شد. افزودن expand و halfExpand در ModalBottomSheetState (Ib5064)
  • ‫Modifier.dragGestureFilter منسوخ شده است. درعوض از Modifier.pointerInput { detectDragGestures (...)} استفاده کنید. یا از Modifier.draggable برای کشیدن در یک محور استفاده کنید (I0ba93، b/175294473)
  • نام Ambients تغییر کرد تا با تغییر نام Ambient -> CompositionLocal مطابقت داشته باشد. قبلاً نام «محیط‌ها» AmbientFoo بود، اکنون نام «ترکیب‌های محلی» LocalFoo است. (I2d55d)
  • مورد انتخابی به پایه منتقل شد. (I7892b)
  • همان‌طور که قبلاً state { 0 } قابل ترکیب را برداشتیم و اکنون استفاده از remember { mutableStateOf(0) } را ترویج می‌کنیم، savedInstanceState { 0 } قابل ترکیب را نیز برمی‌داریم. باید از rememberSaveable { mutableStateOf(0) } استفاده کنید و اگر نوع استفاده‌شده در MutableState بتواند در Bundle ذخیره شود، به‌طور خودکار ذخیره و بازیابی خواهد شد. اگر قبلاً یک شیء ذخیره‌کننده سفارشی را ارسال می‌کردید، اکنون باید از سربار جدیدی از rememberSaveable استفاده کنید که stateSaver پارامتر دارد. استفاده به این شکل خواهد بود: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26، b/177338004)
  • ‫ProgressBarRangeInfo.Indeterminate برای علامت‌گذاری نوارهای پیشرفت نامشخص برای دسترس‌پذیری اضافه شد (I6fe05)
  • ‫@ComposableContract به نفع سه شرح بیشتر خاص منسوخ شده است.

    • ‫@ComposableContract(restartable = false) به @NonRestartableComposable تبدیل شد
    • ‫@ComposableContract(readonly = true) به @ReadOnlyComposable تبدیل شد
    • ‫@ComposableContract(preventCapture = true) به @DisallowComposableCalls تبدیل شد
    • ‫@ComposableContract(tracked = true) برداشته شده است.
    • (I60a9d)
  • ‫emptyContent() و (@Composable () -> Unit).orEmpty() ابزار منسوخ شده‌اند زیرا دیگر هیچ تأثیر یا ارزش مثبتی بر عملکرد ندارند (I0484d)

  • نام rememberSavedInstanceState() به rememberSaveable() تغییر کرده است و به بسته androidx.compose.runtime.saveable منتقل شده است. (I1366e،‏ b/177338004)

  • ‫Saver،‏ listSaver()،‏ mapSaver()،‏ autoSaver از androidx.compose.runtime.savedinstancestate به androidx.compose.runtime.saveable منتقل شد (I77fe6)

  • پارامترهای RounderCornerShape،‏ CutCornerShape، و CornerBasedShape از چپ/راست به شروع/پایان تغییر نام دادند تا از قرینه‌سازی خودکار شکل در جهت راست‌به‌چپ پشتیبانی کنند. ‫AbsoluteRounderCornerShape و AbsoluteCutCornerShape برای مواردی معرفی شدند که آینه‌سازی خودکار مطلوب نیست. (I61040، b/152756983)

  • پارامترهای text و icon «برگه» و پارامتر label «مورد پیمایش پایین» را به تهی‌پذیر تغییر دادیم تا عملکرد عنصر را وقتی این پارامترها ارائه می‌شوند یا نمی‌شوند بهتر منتقل کنیم، زیرا این پارامترها بر اندازه و چیدمان عنصر تأثیر می‌گذارند. اگر درحال‌حاضر از emptyContent() برای نشان دادن بدون نوشتار / نماد / برچسب استفاده می‌کنید، باید به‌جای آن از null استفاده کنید. (I57ed4)

  • نام پارامتر color به backgroundColor تغییر کرد (I5bb67)

  • ‫TabDefaults منسوخ شد و با TabRowDefaults جایگزین شد. (I0f189)

  • ‫ColorMatrix API معرفی‌شده برای اصلاح مقادیر rgb محتوای منبع استفاده می‌شود ‫ColorFilter API بازسازی‌شده برای تبدیل شدن به یک میانای کاربر و مطابقت با پیاده‌سازی ‫PathEffect. (Ica1e8)

  • ‫AnimatedValue/Float اکنون منسوخ شده است. لطفاً به‌جای آن از Animatable استفاده کنید. (I71345، b/177457083)

  • افزودن SemanticsProperties.PaneTitle API. (I20d5a)

  • پارامترهای فعال‌شده به Tab و BottomNavigationItem اضافه شد تا از کلیک‌کردنی بودن آن‌ها جلوگیری شود. ‫BottomNavigationItem به RowScope.BottomNavigationItem تغییر کرد تا الزامات چیدمان آن در میانای برنامه‌سازی کاربردی بهتر بیان شود. (Id683d)

  • ‫tapGestureFilter،‏ doubleTapGestureFilter،‏ longPressGestureFilter، و pressIndicaitonGestureFilter منسوخ شده‌اند. درعوض از Modifier.clickable یا Modifier.pointerInput با تابع detectTapGestures استفاده کنید. (I6baf9، b/175294473)

  • پارامتر layoutDirection را به createOutline «شکل» اضافه کنید. این امکان را می‌دهد تا شکل‌هایی ایجاد کنید که از جهت چیدمان آگاه باشند. (I57c20, b/152756983)

  • ‫Recomposer.current() حذف شد. [خلاصه]‫ComposeView اکنون به‌طور پیش‌فرض به Recomposerهای با حوزه پنجره که به‌صورت تنبل ایجاد شده‌اند و توسط ViewTreeLifecycleOwner برای پنجره هدایت می‌شوند تبدیل شده است. وقتی «چرخه حیات» میزبان متوقف می‌شود، بازسازی و تیک‌های پویانمایی مبتنی بر withFrameNanos موقتاً متوقف می‌شود. (I38e11)

رفع اشکال‌ها

  • اکنون نماد تا جایی که اندازه آن جا شود بزرگ می‌شود و اصلاح‌گرهای اندازه اعمال‌شده روی آن را رعایت می‌کند. برای مثال، Icon(.., modifier = Modifier.size(50.dp) اکنون در فضای ۵۰x۵۰dp طراحی خواهد کرد. (Ib2ba9, b/178796190)

نسخه 1.0.0-alpha11

‫۲۸ ژانویه ۲۰۲۱

‫androidx.compose.material:material-*:1.0.0-alpha11 منتشر شد. نسخه 1.0.0-alpha11 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • برخی‌از «میاناهای برنامه‌سازی کاربردی Material» را ارتقا می‌دهد تا دیگر @Experimental نباشند (I5d20e)
  • پارامتر شرح محتوا به «تصویر» و «نماد» اضافه شده است. از آن برای ارائه شرح به خدمات دسترس‌پذیری (I2ac4c) استفاده می‌شود
  • واسط‌های پارامتر حالت‌دار «مطلب» را تغییر می‌دهد تا توابع ‎ @Composable داشته باشد که State<T> را برمی‌گردانند. Animatable.asState() را اضافه می‌کند تا تبدیل کردن «متحرک‌شدنی» به «حالت» آسان‌تر شود. همچنین animateElevation را به یک افزونه تعلیق در Animatable تغییر می‌دهد. (If613c)
  • ‫Snackbar،‏ SnackbarHost،‏ SnackbarHostState دیگر @ExperimentalMaterialAPI نیستند (Id1fb5)
  • «نوشتارآرایی»، «شکل‌ها»، و «موقعیت برگه» را تغییر می‌دهد تا دیگر کلاس داده نباشند. عملکرد کپی را برای «نمونه‌حروف» و «اشکال» اضافه می‌کند تا جایگزین موارد تولیدشده شود. (I40037)
  • برخی‌از «میاناهای برنامه‌سازی کاربردی Material» که قبلاً منسوخ شده بودند حذف شدند (Ifaa25)

رفع اشکال‌ها

  • onCommit،‏ onDispose، و onActive به‌نفع SideEffect و DisposableEffect APIs منسوخ شده‌اند (If760e)
  • «گذار» مبتنی بر «تعریف گذار» نامناسب شده است (I0ac57)
  • اکنون از «حالت اولیه» در updateTransition پشتیبانی می‌شود (Ifd51d)
  • ‫WithConstraints به‌عنوان BoxWithConstraints بازطراحی شد و به foundation.layout منتقل شد. ‫(I9420b، b/173387208)
  • منسوخ کردن scrollBy غیرتعلیقی، برداشتن scrollTo غیرتعلیقی

    اکنون توصیه می‌کنیم از توابع تعلیق برای کنترل پیمایش و انتظار برای اتمام پیمایش استفاده کنید. به‌عنوان بخشی از این انتقال، نسخه‌های غیرتعلیقی این توابع را منسوخ و/یا حذف می‌کنیم. (Ie9ced)

  • منسوخ کردن smoothScrollBy غیرتعلیقی اکنون توصیه می‌کنیم از توابع تعلیقی برای کنترل پیمایش و انتظار برای اتمام پیمایش استفاده کنید. به‌عنوان بخشی از این انتقال، نسخه‌های غیرتعلیقی این توابع را منسوخ می‌کنیم. (I12880)

  • ‫ComposeContentTestRule معرفی شد که ComposeTestRule را گسترش می‌دهد و setContent را تعریف می‌کند که از ComposeTestRule برداشته شده است. روش کارخانه‌ای createEmptyComposeRule() اضافه شد که ComposeTestRule را برمی‌گرداند و «فعالیت» را برای شما راه‌اندازی نمی‌کند. وقتی می‌خواهید «فعالیت» خود را درطول آزمایش راه‌اندازی کنید از این استفاده کنید، برای مثال، بااستفاده از ActivityScenario.launch (I9d782،‏ b/174472899)

  • دیگر نمی‌توانید با ارائه «نشانگر» جدید ازطریق AmbientIndication، موجی را که در «دکمه» و FloatingActionButton استفاده می‌شود سفارشی‌سازی کنید - این هرگز قرار نبوده روشی برای سفارشی‌سازی این عناصر باشد و اکنون این عناصر را با دیگر عناصر Material سازگار می‌کند. برای سفارشی‌سازی کردن موجک در سراسر برنامه، به RippleTheme مراجعه کنید. (I546c5)

  • ‫animateAsState اکنون animateFooAsState است، که در آن Foo نوع متغیر پویانمایی‌شده است. برای نمونه، Float،‏ Dp،‏ Offset، و غیره (Ie7e25)

  • ‫BasicTextField پارامتر جدیدی به‌نام decorationBox دریافت کرد. این ویژگی امکان می‌دهد تزئیناتی مثل نمادها، جای‌بان، برچسب، و موارد مشابه به فیلد نوشتار اضافه شود و ناحیه هدف ضربه آن افزایش یابد. (I16996)

  • رفع اشکال مربوط به اینکه نمی‌شد عرض فیلد نوشتاری مواد را کمتر از ۲۸۰.dp تنظیم کرد (I78373)

  • پارامتر canDrag از Modifier.draggable برداشته شده است (Ic4bec، b/175294473)

  • ‫displaySize را بردارید زیرا باید از آن اجتناب شود. معمولاً بهتر است از اندازه onRoot() یا حداقل اندازه پنجره استفاده کنید. (I62db4)

  • اکنون «سطح» می‌تواند چندین فرزند چیدمان داشته باشد. (I66a92, b/144488459)

  • ‫invalidate و compositionReference() اکنون به‌ترتیب به‌نفع currentRecomposeScope و rememberCompositionReference منسوخ شده‌اند. (I583a8)

  • ‫PopupPositionProvider را تغییر می‌دهد تا از مختصات نسبی پنجره استفاده کند، نه مختصات سراسری. ‫parentGlobalBounds را به anchorBounds تغییر نام می‌دهد و windowGlobalBounds را به windowSize: IntSize (I2994a) تغییر می‌دهد

  • «مدت» و «زمان کار» با «میلی‌ثانیه طولانی» جایگزین خواهد شد، و این مرحله وابستگی ورودی اشاره‌گر به آن کلاس‌ها را برمی‌دارد. (Ia33b2،‏ b/175142755،‏ b/177420019)

  • ‫AnimatedFloat.fling که FlingConfig را می‌پذیرد برداشته شده است. لطفاً درعوض از suspend Animatable.animateDecay استفاده کنید. (I4659b،‏ b/177457083)

  • اکنون می‌توان عناصر کلیک‌کردنی، قابل‌تغییر، و قابل‌انتخاب را خارج‌از ترکیب ایجاد کرد (I0a130، b/172938345، b/175294473)

  • «تسهیل» به یک میانای کارکردی (Ib14e5) تغییر کرده است

  • ‫ScrollableColumn/Row منسوخ شده است. وقتی محتوای پیمایش‌پذیر زیادی دارید، استفاده از ScrollableColumn در مقایسه با LazyColumn کارایی کمتری دارد زیرا با LazyColumn می‌توانیم فقط عناصر نمایان را ترکیب/اندازه‌گیری/رسم کنیم. برای جلوگیری از اینکه کاربران از روش‌های ناکارآمد استفاده کنند، تصمیم گرفتیم ScrollableColumn و ScrollableRow را منسوخ کنیم و به‌جای آن استفاده از LazyColumn و LazyRow را ترویج کنیم. کاربران همچنان می‌توانند تصمیم بگیرند که به رفتار تنبل نیاز ندارند و از اصلاح‌کننده‌ها به‌طور مستقیم به این صورت استفاده کنند: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b،‏ b/170468083)

  • روش کارخانه جدید items(count: Int) برای محدوده LazyColumn/LazyRow/LazyVerticalGrid. ‫items(items: List) و itemsIndexed(items: List) اکنون تابع‌های افزونه هستند، بنابراین باید آن‌ها را هنگام استفاده به‌صورت دستی وارد کنید. سربار جدید افزونه برای «آرایه‌ها»: items(items: Array) و itemsIndexed(Array) (I803fc، b/175562574)

  • روش‌های آزمایشی monotonicFrameAnimationClockOf برداشته شد (Ib753f، b/170708374)

  • روش‌های مختصات سراسری منسوخ شد و روش‌های مختصات مبتنی بر پنجره جدیدی ایجاد شد. (Iee284)

  • ‫Modifier.toolingGraphicsLayer اضافه شد که وقتی بازرسی روشن باشد اصلاح‌گر لایه گرافیکی اضافه می‌کند. ‫(I315df)

  • ‫FocusRequester.createRefs اکنون به‌عنوان آزمایشی علامت‌گذاری شده است زیرا ممکن است تغییر کند. ‫(I2d898،‏ b/177000821)

  • نام SemanticsPropertyReceiver.hidden به invisibleToUser تغییر کرد و با ‎ @ExperimentalComposeUiApi علامت‌گذاری شد. نام AccessibilityRangeInfo به ProgressBarRangeInfo تغییر کرد. نام stateDescriptionRange به progressBarRangeInfo تغییر کرد. نام AccessibilityScrollState به ScrollAxisRange تغییر کرد. نام horizontalAccessibilityScrollState به horizontalScrollAxisRange تغییر کرد. نام verticalAccessibilityScrollState به verticalScrollAxisRange تغییر کرد. (Id3148)

  • استفاده از TestCoroutineDispatcher در آزمایش (I532b6)

  • «میانای برنامه‌سازی کاربردی» گرافیک برداری به‌روزرسانی شد تا از تجزیه کردن سایه‌رنگ اعمال‌شده به ریشه گرافیک برداری پشتیبانی کند. (Id9d53، b/177210509)

نسخه 1.0.0-alpha10

‫۱۳ ژانویه ۲۰۲۱

‫androidx.compose.material:material-*:1.0.0-alpha10 منتشر شد. نسخه 1.0.0-alpha10 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • «سرعت» اصلاح شد تا دارای اجزای تشکیل‌دهنده و عملیات ریاضی باشد. (Ib0447)
  • نام @ExperimentalTesting به @ExperimentalTestApi تغییر کرد تا با حاشیه‌نویسی‌های مشابه میانای برنامه‌سازی کاربردی آزمایشی (Ia4502، b/171464963) سازگار باشد
  • «موقعیت» به «DpOffset» تغییر نام داد و getDistance() برداشته شد (Ib2dfd)
  • ‫Color.useOrElse() به Color.takeOrElse() تغییر نام داد (Ifdcf5)
  • افزودن «تغییر وضعیت» به foundation Strings.kt (I4a5b7،‏ b/172366489)
  • ‫FlowRow و FlowColumn منسوخ شدند. لطفاً به‌جای آن از چیدمان سفارشی استفاده کنید. (I09027)
  • ‫Modifier.focus()‎ و Modifier.focusRequester()‎ منسوخ شده‌اند. درعوض از Modifier.focusModifier()‎ و Modifier.focusReference()‎ استفاده کنید. (I75a48،‏ b/175160751،‏ b/175160532،‏ b/175077829)
  • ‫nativeClass به واحد ui منتقل شد و داخلی شد. کاربردهای به‌روزشده nativeClass در پیاده‌سازی‌های equals برای استفاده از 'is MyClass' به‌جای آن. (I4f734)

رفع اشکال‌ها

  • پشتیبانی از فیلدهای نوشتاری غیرفعال و فقط‌خواندنی اضافه شد (I35279، b/171040474، b/166478534)
  • ‫animate() اکنون با animateAsState() جایگزین شده است، که به‌جای T،‏ State<T> برمی‌گرداند. این کار عملکرد را بهبود می‌بخشد، زیرا محدوده نامعتبرسازی می‌تواند به جایی که مقدار «وضعیت» خوانده می‌شود محدود شود. (Ib179e)
  • «میانای برنامه‌سازی کاربردی نقش معنایی» را اضافه کنید و «نقش» را به‌عنوان پارامتر به «اصلاح‌کننده معنایی» کلیک‌کردنی، انتخاب‌کردنی، و قابل‌تغییر اضافه کنید. ‫Modifier.progressSemantics تغییر کرد تا «لغزنده» هم بتواند از آن استفاده کند. (I216cd)

نسخه 1.0.0-alpha09

‫۱۶ دسامبر ۲۰۲۰

‫androidx.compose.material:material-*:1.0.0-alpha09 منتشر شد. نسخه 1.0.0-alpha09 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫API برای راه‌اندازی دستی پویانمایی استقرار و کشیدن در Modifier.swipeable اضافه شد (Iaa17a، b/162408885)
  • نام اشیای *Constants مثل ButtonConstants به نام‌هایی که با Defaults تمام می‌شوند تغییر کرد، مثلاً ButtonDefaults. همچنین پیشوندهای غیرضروری default را از دارایی‌های این اشیای جدید برمی‌دارد. (Ibb915، b/159982740)
  • «ترکیب» از دریافت‌کننده‌های دارایی که می‌توانند فراخوانی‌های ترکیبی انجام دهند پشتیبانی می‌کند. پشتیبانی از این قابلیت حذف نخواهد شد، اما دستورگان برای اعلام اینکه یک دریافت‌کننده دارایی @Composable است تغییر می‌کند.

    نحو منسوخ‌شده برای انجام این کار ازطریق حاشیه‌نویسی خود دارایی بود:

        @Composable val someProperty: Int get() = ...
    

    نحو صحیح برای انجام این کار، حاشیه‌نویسی کردن دریافت‌کننده دارایی است:

       val someProperty: Int @Composable get() = ...
    

    هر دو نحو برای مدتی کار خواهند کرد، اما نحو منسوخ‌شده قبلی در نهایت به خطای کامپایل تبدیل خواهد شد. (Id9197)

  • کتابخانه androidx.compose.material:material-ripple حاوی «میاناهای برنامه‌سازی کاربردی» موج اضافه شد تا امکان ساختن عناصر تعاملی بدون نیاز به بقیه کتابخانه Material فراهم شود. rememberRippleIndication منسوخ شده است و با rememberRipple جایگزین شده است. (Ibdf11)

رفع اشکال‌ها

  • ‫Lambdas در اصلاح‌کننده‌های افست اکنون به‌جای Float، مقدار IntOffset برمی‌گرداند. (Ic9ee5،‏ b/174137212،‏ b/174146755)
  • ‫ShaderBrush را بازسازی کرد تا نمونه سایه‌زن را وقتی اطلاعات اندازه محیط طراحی دردسترس است به‌صورت تنبل ایجاد کند. این کار برای تعریف گرادیان‌هایی که در زمان ترکیب، کل محدوده طراحی یک عنصر ترکیب‌پذیر را اشغال می‌کنند مفید است، بدون اینکه نیاز باشد پیاده‌سازی‌های سفارشی DrawModifier را پیاده‌سازی کنید.

    میاناهای برنامه‌سازی کاربردی سازنده تابع گرادیان منسوخ شده‌اند به‌نفع روش‌های کارخانه‌ای در یک شیء «گرادیان». (I511fc, b/173066799)

  • ‫Modifier.focusObserver منسوخ شده است. به‌جای آن از Modifier.onFocusChanged یا Modifier.onFocusEvent استفاده کنید (I30f17، b/168511863، b/168511484)

  • ‫LazyColumnFor،‏ LazyRowFor،‏ LazyColumnForIndexed، و LazyRowForIndexed را منسوخ کنید. به‌جای آن از LazyColumn و LazyRow استفاده کنید (I5b48c)

  • ‫Dp.VectorConverter،‏ Position.VectorConverter، و غیره به animation-core منتقل شد و VectorConveters قدیمی (If0c4b) منسوخ شد

  • «میانای برنامه‌سازی کاربردی تکمیل خودکار» اکنون میانای برنامه‌سازی کاربردی آزمایشی است و نیاز به موافقت دارد (I0a1ec)

  • افزودن بیانیه‌های ساختارشکنی برای ایجاد نمونه‌های FocusRequester (I35d84، b/174817008)

  • نام accessibilityLabel به contentDescription تغییر کرده است. نام accessibilityValue به stateDescription تغییر کرده است. (I250f2)

  • تابع جدید infiniteRepeatable برای ایجاد InfiniteRepeatableSpec (I668e5)

  • عملکرد جای‌گذاری DropdownMenus براساس مشخصات Material کمی تغییر کرد. (I34c72، b/168594123)

  • پشتیبانی از InteractionState برای TextFields اضافه شده است. (I61d91)

  • ‫Modifier.clearAndSetSemantics اضافه شد تا معناشناسی فرزندان را پاک کند و معناشناسی جدیدی تنظیم کند. (I277ca)

  • ‫ContentDrawScope به ui-graphics انتقال یافت تا با DrawScope باشد. (Iee043، b/173832789)

نسخه 1.0.0-alpha08

‫۲ دسامبر ۲۰۲۰

‫androidx.compose.material:material:1.0.0-alpha08،‏ androidx.compose.material:material-icons-core:1.0.0-alpha08، و androidx.compose.material:material-icons-extended:1.0.0-alpha08 منتشر شدند. نسخه 1.0.0-alpha08 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫MaterialTheme اکنون رنگ‌های صحیح را برای دسته‌های انتخاب و پس‌زمینه انتخاب تنظیم می‌کند. برنامه‌های غیر Material می‌توانند به‌صورت دستی از AmbientTextSelectionColors برای سفارشی‌سازی رنگ‌های استفاده‌شده برای انتخاب استفاده کنند. (I1e6f4،‏ b/139320372،‏ b/139320907)
  • بررسی lint برای نام‌گذاری و موقعیت پارامتر لامبدای ترکیب‌شدنی اضافه شد تا با رهنمودهای Compose سازگاری داشته باشد. همچنین برخی‌از APIها را بااستفاده از children به‌عنوان نام لامبدای انتهایی‌شان به content انتقال دادیم، طبق بررسی و راهنمایی lint. (Iec48e)
  • ‫VectorAsset به ImageVector تغییر نام داد ‫VectorAsset به Builder منتقل و تغییر نام داد تا طبق رهنمودهای شورای API، کلاس درونی ImageVector باشد. نام مستعار نوع VectorAssetBuilder به پیوند به ImageVector.Builder برای سازگاری اضافه شد. (Icfdc8)
  • ‫ImageAsset و روش‌های مرتبط را به ImageBitmap تغییر نام داد. (Ia2d99)
  • خصوصیات معناشناسی بنیاد به ui منتقل شد (I6f05c)
  • ‫fun RippleIndication() منسوخ شده است و برای سازگاری با دیگر میاناهای برنامه‌سازی کاربردی با rememberRippleIndication() جایگزین شده است. (Id8e2c)
  • پارامتر singeLine به BasicTextField،‏ TextField، و OutlinedTextField اضافه شد. برای تبدیل فیلد نوشتاری به یک خط افقی قابل‌پیمایش، این پارامتر را روی true تنظیم کنید. (I57004،‏ b/168187755)

رفع اشکال‌ها

  • افزودن کنش معنایی بستن (I2b706)
  • «میاناهای برنامه‌سازی کاربردی DrawModifier» از بسته androidx.compose.ui به بسته androidx.compose.ui.draw منتقل شد. فایل DrawModifierDeprecated.kt را ایجاد کرد تا نام‌های مستعار نوع/روش‌های کمکی را برای کمک به انتقال از APIهای منسوخ‌شده به APIهای فعلی دربر بگیرد. (Id6044،‏ b/173834241)
  • نام Modifier.drawLayer به Modifier.graphicsLayer تغییر کرد همچنین کلاس‌های مرتبط طبق بازخورد API به GraphicsLayer به‌روزرسانی شد. (I0bd29, b/173834241)
  • ‫<T> از بیانیه SubcomposeLayout برداشته شد. اکنون می‌توانید بدون مشخص کردن نوع از آن استفاده کنید. (Ib60c8)
  • «واسط‌های برنامه‌سازی کاربردی» Modifier.scale/rotate به‌عنوان تسهیلات برای drawLayer اضافه شد.
    • نام Modifier.drawOpacity به Modifier.alpha تغییر کرد
    • نام Modifier.drawShadow به Modifier.shadow تغییر کرد (I264ca، b/173208140)
  • پارامتر تراز «چارگوش» به contentAlignment تغییر نام داد. ‫(I2c957)
  • نام اصلاح‌کننده‌های offsetPx به offset تغییر کرد. اکنون به‌جای State، پارامترهای لامبدا می‌گیرند. (Ic3021، b/173594846)
  • ‫SweepGradientShader و SweepGradientBrush API معرفی شد. (Ia22c1)
  • بررسی lint برای پارامترهای «اصلاح‌گر» در توابع «ترکیبی» اضافه شد. این بررسی lint نام‌گذاری، نوع برگشتی، مقدار پیش‌فرض، و ترتیب پارامتر را برای سازگاری با رهنمودهای Compose بررسی می‌کند. (If493b)
  • به‌روزرسانی میانای برنامه‌سازی کاربردی TextFieldValue
    • ‫TextFieldValue.composition فقط خواندنی شد
    • استثنای برداشته‌شده برای محدوده انتخاب نامعتبر (I4a675،‏ b/172239032)
  • بار اضافی Modifier.drawLayer() جدیدی اضافه شد. بلوک لامبدایی را در GraphicsLayerScope جدیدی می‌گیرد که در آن پارامترهای لایه را به‌گونه‌ای تعریف می‌کنید که وقتی وضعیت تغییر می‌کند، امکان رد کردن بازآرایی و بازچیدمان وجود داشته باشد. ‫DrawLayerModifier اکنون داخلی است تا برای انتقال منطق آن به روش placeable.placeWithLayer() در LayoutModifier آماده شود (I15e9f، b/173030831)
  • «محیط‌های» منسوخ‌شده‌ای که نام آن‌ها با Ambient به‌عنوان پسوند بود، با دارایی‌های جدیدی که پیشوند آن‌ها «محیط» بود جایگزین شدند و از سایر «محیط‌ها» و دستورالعمل‌های «میانای برنامه‌سازی کاربردی Compose» پیروی کردند. (I33440)
  • بررسی lint اضافه شد تا بررسی کند که کارخانه‌های «اصلاح‌گر» به‌جای اینکه به‌عنوان @Composable علامت‌گذاری شوند، از androidx.compose.ui.composed {} در داخل استفاده می‌کنند. (I3c4bc)
  • نام آرگومان معنایی mergeAllDescendants به mergeDescendants تغییر کرد. (Ib6250)
  • کنترل زمان در آزمایش‌ها (TestAnimationClock و موارد استفاده آن) اکنون آزمایشی است (I6ef86، b/171378521)
  • برداشتن واحد ui-test قدیمی و کدهای جای‌خالی آن (I3a7cb)
  • ‫TextUnit.Inherit برای هماهنگی با واحدهای دیگر به TextUnit.Unspecified تغییر نام داده شده است. (Ifce19)
  • میانای «تراز» به‌روزرسانی و کاربردی شد. (I46a07،‏ b/172311734)
  • ‫id به layoutId برای LayoutIdParentData تغییر نام داد. نام Measurable.id به Measurable.layoutId تغییر کرد. (Iadbcb، b/172449643)

نسخه 1.0.0-alpha07

۱۱ نوامبر ۲۰۲۰

‫androidx.compose.material:material:1.0.0-alpha07،‏ androidx.compose.material:material-icons-core:1.0.0-alpha07، و androidx.compose.material:material-icons-extended:1.0.0-alpha07 منتشر شدند. نسخه 1.0.0-alpha07 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • «تأکید» منسوخ شده است و با AmbientContentAlpha جایگزین شده است. ‫AmbientContentAlpha یک انتزاع ساده‌تر است که نشان‌دهنده آلفای محتوای ترجیحی برای بخشی از سلسله‌مراتب است، مشابه با نحوه نشان دادن رنگ محتوای ترجیحی توسط AmbientContentColor. اکنون «نوشتار» و «نماد» به‌طور پیش‌فرض مقدار کنونی را از AmbientContentAlpha مصرف می‌کنند و می‌توانید به‌صورت دستی color.copy(alpha = AmbientContentAlpha.current) را انجام دهید تا جلوه یکسانی در عناصرتان داشته باشید. به‌جای استفاده از ProvideEmphasis، می‌توانید مستقیماً مقداری را ازطریق AmbientContentAlpha ارائه دهید و از سطوح پیش‌فرض جدید در ContentAlpha برای جایگزینی EmphasisLevels قدیمی استفاده کنید. (Idf03e،‏ b/159017896)
  • ‫androidx.compose.material.AmbientContentColor را برای جایگزینی androidx.compose.foundation.AmbientContentColor اضافه می‌کند (I84f7b، b/172067770)
  • ‫androidx.compose.material.Text را اضافه می‌کند تا جایگزین androidx.compose.foundation.Text به‌عنوان عنصر نوشتاری سطح بالا و زمینه‌پذیر شود. برای عنصر نوشتاری پایه که از رنگ / سبک نوشتار زمینه استفاده نمی‌کند، از BasicText استفاده کنید. (Ie6ae0)
  • ‫maxLines به TextFields اضافه شد (Ib2a5b)
  • به‌روزرسانی TextFields برای پذیرفتن KeyboardOptions (Ida7f3)
  • ‫Surface اکنون هنگام محاسبه رونهادهای ارتفاع از ارتفاع مطلق (کل) استفاده می‌کند، بنابراین Surface توکار در Surface دیگر از ارتفاع ترکیبی برای رسم رونهاد استفاده می‌کند. (I7bd2b،‏ b/171031040)

رفع اشکال‌ها

  • ‫captureToBitmap به captureToImage منتقل شد. (I86385)
  • ‫AmbientTextStyle،‏ ProvideTextStyle، و AmbientContentColor منسوخ شده‌اند. به‌جای آن از نسخه‌های جدید موجود در کتابخانه «ماتریال» استفاده کنید. برای برنامه‌های غیر Material، باید به‌جای آن سیستم طراحی خودتان را ایجاد کنید که دارای زمینه‌های خاصی باشد که بتواند در عناصر خودتان استفاده شود. (I74acc، b/172067770)
  • ‫foundation.Text منسوخ شده است و با material.Text جایگزین شده است. برای میانای برنامه‌سازی کاربردی نوشتاری ساده و بی‌طرف که مقادیر را از زمینه مصرف نمی‌کند، androidx.compose.foundation.BasicText را ببینید. (If64cb)
  • تغییر نام KeyboardOptions به ImeOptions (I82f36)
  • ‫KeyboardType و ImeAction به KeyboardOptions منتقل شد (I910ce)
  • ‫BaseTextField منسوخ شده است. درعوض از BasicTextField استفاده کنید. (I896eb)
  • گزارمان ExperimentalSubcomposeLayoutApi برداشته شد. اکنون می‌توان از SubcomposeLayout بدون افزودن ‎ @OptIn استفاده کرد (I708ad)
  • ‫FirstBaseline و LastBaseline به بسته androidx.compose.ui.layout منتقل شدند (Ied2e7)
  • «میانای برنامه‌سازی کاربردی نماد» به‌روزرسانی شد تا Color.Unspecified را به‌عنوان رنگ‌آمیزی احتمالی بپذیرد که دارایی یا نقاش ارائه‌شده را بدون ColorFilter رسم می‌کند. قبلاً تلاش برای نادیده گرفتن رنگ‌آمیزی با Color.Unspecified باعث رنگ‌آمیزی با رنگ شفاف می‌شد و درنهایت چیزی ارائه نمی‌شد. (I049e2،‏ b/171624632)
  • نام relativePaddingFrom به paddingFrom تغییر کرد. اصلاح‌گر paddingFromBaseline برای راحتی در تعیین فاصله‌ها از محدوده‌های چیدمان تا خطوط پایه نوشتار اضافه شده است. ‫(I0440a،‏ b/170633813)
  • ‫LaunchedTask برای هماهنگی با میاناهای برنامه‌سازی کاربردی SideEffect و DisposableEffect به LaunchedEffect تغییر نام داد. ‫LaunchedEffect بدون پارامترهای موضوع برای تشویق به روال‌های مطلوب مجاز نیست. (Ifd3d4)
  • ‫MeasureResult از MeasureScope خارج شد. (Ibf96d،‏ b/171184002)
  • چندین نماد مربوط به چیدمان از androidx.compose.ui به androidx.compose.layout.ui منتقل شدند. (I0fa98، b/170475424)

نسخه 1.0.0-alpha06

‫۲۸ اکتبر ۲۰۲۰

‫androidx.compose.material:material:1.0.0-alpha06،‏ androidx.compose.material:material-icons-core:1.0.0-alpha06، و androidx.compose.material:material-icons-extended:1.0.0-alpha06 منتشر شدند. نسخه 1.0.0-alpha06 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫androidx.compose.foundation.Icon به androidx.compose.material.Icon منتقل شده است. اگر نمی‌خواهید از کتابخانه Material استفاده کنید، می‌توانید از عنصر «تصویر» / Modifier.paint()‎ با Painter نیز استفاده کنید. (I9f622)
  • ‫FloatingActionButtonElevation را اضافه می‌کند تا نشان دهد «دکمه‌های کنش شناور» در حالت‌های مختلف از چه ارتفاعی استفاده می‌کنند. برای پیاده‌سازی پیش‌فرض، FloatingActionButtonConstants.defaultElevation() را ببینید (I2d4f5)
  • میانای SwitchColors را اضافه می‌کند تا رنگ‌های استفاده‌شده توسط «کلید» را در حالت‌های مختلف نشان دهد. برای سفارشی‌سازی این رنگ‌ها، SwitchConstants.defaultColors را ببینید. (I93805)
  • واسط‌های ButtonElevation و ButtonColors را برای نشان دادن ارتفاع و رنگ‌های استفاده‌شده توسط دکمه‌ها در حالت‌های مختلف اضافه می‌کند. برای سفارشی‌سازی این پارامترها، توابع پیش‌فرض را در ButtonConstants ببینید. (Ic5b7b)
  • واسط RadioButtonColors را اضافه می‌کند تا رنگ‌های استفاده‌شده توسط RadioButton را در حالت‌های مختلف نشان دهد. برای سفارشی‌سازی رنگ‌های استفاده‌شده در حالت‌های مختلف، به RadioButtonConstants.defaultColors()‎ مراجعه کنید. (I74130)
  • واسط CheckboxColors را اضافه می‌کند تا رنگ‌های استفاده‌شده توسط چارگوش انتخاب در حالت‌های مختلف را نشان دهد. برای سفارشی‌سازی رنگ‌های استفاده‌شده در حالت‌های مختلف، به CheckboxConstants.defaultColors()‎ مراجعه کنید. (I7dbdb)

رفع اشکال‌ها

  • عناصر Material دیگر ارتفاع را به‌عنوان zIndex تنظیم نمی‌کنند. این یعنی در یک والد، کودکی که سایه بزرگ‌تری دارد به‌طور خودکار روی کودکی که سایه کوچک‌تری دارد کشیده نمی‌شود. اگر هنوز به چنین رفتاری نیاز دارید، لطفاً Modifier.zIndex() را به‌صورت دستی در جاهایی که لازم است تنظیم کنید (I70417، b/170623932)
  • ‫VectorPainter را در مقابل rememberVectorPainter منسوخ کنید تا بهتر نشان دهید که API ترکیبی به‌صورت داخلی از «به‌خاطرآوری» برای ماندگار کردن داده‌ها در ترکیب‌ها استفاده می‌کند. (Ifda43)
  • فعال کردن گذارها در ComposeTestRule؛ برداشتن گزینه فعال کردن مکان‌نمای چشمک‌زن از ComposeTestRule. (If0de3)
  • گزینه صفحه‌کلید تک‌خطی به CoreTextField اضافه شد (I72e6d)
  • «میانای برنامه کاربردی شعاع» به CornerRadius تغییر نام داد تا بهتر بیان کند چگونه در سراسر Compose استفاده می‌شود. مستندات به‌روزرسانی شد تا نشان دهد شعاع‌های گوشه منفی به صفر مقید می‌شوند. (I130c7،‏ b/168762961)
  • ‫DrawScope و ContentDrawScope را بازسازی کردیم تا به‌جای کلاس‌های انتزاعی واسط باشند
    • پیاده‌سازی CanvasDrawScope از DrawScope ایجاد شد
    • پیاده‌سازی‌های بازسازی‌شده DrawScope برای استفاده از CanvasScope
    • ‫DrawContext برای بسته‌بندی وابستگی‌ها برای DrawScope ایجاد شد
    • روش‌های منسوخ‌شده در DrawScope برداشته شد (I56f5e)
  • ‫Box به تابع درون‌خطی تبدیل شد. (Ibce0c، b/155056091)

نسخه 1.0.0-alpha05

‫۱۴ اکتبر ۲۰۲۰

‫androidx.compose.material:material:1.0.0-alpha05،‏ androidx.compose.material:material-icons-core:1.0.0-alpha05، و androidx.compose.material:material-icons-extended:1.0.0-alpha05 منتشر شدند. نسخه 1.0.0-alpha05 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • اکنون پنجره‌های بالاپَر و کادرهای گفتگو FLAG_SECURE را از «پنجره» والد به‌ارث می‌برند. همچنین گزینه پیکربندی صریح این مورد اضافه شد (I64966، b/143778148، b/143778149)
  • اکنون اصلاح‌گر.کشیدنی به‌طور پیش‌فرض آستانه‌های ۵۶dp برای وضعیت‌ها دارد (Iab825، b/168610267)
  • همه وضعیت‌های داربست به‌عنوان @Stable علامت‌گذاری شد. drawerGesturesEnabled در ScaffoldState به خود Scaffold منتقل شد. (I36645، b/168297016)
  • نوع تهی‌پذیر را از پارامترهای Scaffold lambda برمی‌دارد، می‌توانید از emptyContent()‎ برای نشان دادن اینکه پارامتر معینی محتوا ندارد استفاده کنید. (I2b318، b/157633857، b/158551084)
  • ‫contentColor() و currentTextStyle() APIs را منسوخ می‌کند و آن‌ها را به‌ترتیب با AmbientContentColor و AmbientTextStyle ambients جایگزین می‌کند. می‌توانید بااستفاده از .current در دارایی محیطی، مانند هر محیط دیگری، به مقدار فعلی دسترسی پیدا کنید. این تغییر برای ایجاد یکپارچگی و جلوگیری از وجود چندین روش برای انجام یک کار انجام شده است. علاوه‌براین، برخی‌از دارایی‌های محیطی را تغییر نام می‌دهد تا هدف آن‌ها را بهتر توصیف کند، به این صورت:

    • ContentColorAmbient -> AmbientContentColor
    • TextStyleAmbient -> AmbientTextStyle
    • IndicationAmbient -> AmbientIndication
    • EmphasisAmbient -> AmbientEmphasisLevels
    • RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
  • ‫AmbientElevationOverlay اضافه می‌شود که امکان سفارشی‌سازی / غیرفعال کردن رونهاد ارتفاع پیش‌فرض اعمال‌شده روی «سطوح» در زمینه تیره را فراهم می‌کند. (I5b74d)

رفع اشکال‌ها

  • به‌عنوان بخشی از استانداردسازی مقادیر نگهبان برای کلاس‌های درون‌خطی، برای هماهنگی با دیگر کلاس‌های درون‌خطی، نام Color.Unset را به Color.Unspecified تغییر دهید (I97611، b/169797763)
  • ‫TextOverflow.None معرفی شده است. وقتی سرریز «هیچ» باشد، «نوشتار» دیگر سرریز را مدیریت نمی‌کند و اندازه واقعی‌اش را به «گره چیدمان» گزارش می‌کند. (I175c9، b/158830170)
  • launchInComposition به LaunchedTask تغییر نام داد تا با رهنمودهای Compose API مطابقت داشته باشد (I99a8e)
  • ‫OnPositionedModifier به OnGloballyPositionedModifier تغییر نام داده شد و onPositioned() به onGloballyPositioned() تغییر نام داد. (I587e8، b/169083903)

نسخه 1.0.0-alpha04

۱ اکتبر ۲۰۲۰

‫androidx.compose.material:material:1.0.0-alpha04،‏ androidx.compose.material:material-icons-core:1.0.0-alpha04، و androidx.compose.material:material-icons-extended:1.0.0-alpha04 منتشر شدند. نسخه 1.0.0-alpha04 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • پارامترهای InteractionState را در عناصر Material حالت‌دار آشکار می‌کند تا امکان بالا بردن حالت و خواندن / کنترل حالت را فراهم کند. (Iaca5f, b/168025711, b/167164434)
  • پارامترهای *color را در RadioButton و TriStateCheckbox تغییر می‌دهد تا امکان سفارشی‌سازی کامل رنگ‌های استفاده‌شده در هر حالت فراهم شود، و همچنین درصورت تمایل، نحوه پویانمایی رنگ‌ها بین حالت‌ها تغییر کند. برای اطلاعات بیشتر، توابع رنگ animateDefault* جدید را در CheckboxConstants و RadioButtonConstants ببینید. (I1c532)
  • نام rememberBackdropState به rememberBackdropScaffoldState تغییر کرد و پارامتر اضافه‌ای برای ساعت پویانمایی اضافه شد. نام پارامتر backdropScaffoldState از BackdropScaffold به scaffoldState تغییر کرد. نام BackdropConstants به BackdropScaffoldConstants تغییر کرد. (Ib644d)
  • عنصر آزمایشی BottomSheetScaffold اضافه شد. (Ie02f0، b/148996320)
  • عنصر آزمایشی ModalBottomSheetLayout اضافه شد. (Ic209e، b/148996320)
  • نام ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation را به defaultElevation تغییر می‌دهد و اکنون به‌جای AnimatedValue مقدار Dp برمی‌گرداند. (I5f3ed)

رفع اشکال‌ها

  • بسیاری از «میاناهای برنامه‌سازی کاربردی گرافیک» به‌روزرسانی شد
    • میاناهای برنامه‌سازی کاربردی تبدیل چرخش و مقیاس به‌روزرسانی شد تا از یک پارامتر «آفست» برای نشان دادن مختصات محور به‌جای پارامترهای شناور جداگانه برای مختصات x/y در DrawScope و DrawTransform استفاده کند
    • روش‌های Rect.expandToInclude و Rect.join برداشته شد
    • مستندات «شعاع» به‌روز شد تا علاوه‌بر بیضی، بیضی‌شکل را نیز شامل شود
    • اسناد اضافه شد تا نشان دهد سازنده عمومی برای کلاس درون‌خطی «شعاع» نباید مستقیماً فراخوانده شود، بلکه اشیا «شعاع» باید ازطریق سازنده‌های تابع آن‌ها نمونه‌سازی شوند
    • «میاناهای برنامه‌سازی کاربردی RoundRect» برای پُرسمان topRight، bottomRight،‏ bottomCenter، و غیره برداشته شد.
    • ‫Rect.shift منسوخ شده است. به‌جای آن از Rect.translate استفاده کنید
    • ‫RoundRect.grow و Rect.shrink API برداشته شد
    • نام RoundRect.outerRect به Rect.boundingRect تغییر کرد
    • روش‌های RoundRect.middleRect/tallMiddleRect/wideMiddleRect و Rect.isStadium برداشته شد
    • نام RoundRect.longestSide به RoundRect.maxDimension تغییر کرد
    • نام RoundRect.shortestSide به RoundRect.minDimension تغییر کرد
    • ‫RoundRect.center را به‌جای تابع به دارایی تغییر داد
    • سازنده RoundRect به‌روزرسانی شد تا به‌جای پارامترهای جداگانه برای مقادیر شعاع x/y، از خصوصیات «شعاع» استفاده کند
    • «میاناهای برنامه‌سازی کاربردی اندازه» که فرض می‌کرد «مستطیل» با مبدأ در ۰٫۰ است برداشته شد
    • میانای برنامه‌سازی کاربردی مخربی به Radius اضافه شد
    • انتقال توابع افزونه RoundRect مختلف به به‌جای آن، ویژگی‌ها
    • (I8f5c7، b/168762961)
  • ‫foundation.Box منسوخ شده است. لطفاً درعوض از foundation.layout.Box استفاده کنید. (Ie5950، b/167680279)
  • نام دسته عکس به Box تغییر کرد. «جعبه» قبلی موجود به نفع «جعبه» جدید در compose.foundation.layout منسوخ خواهد شد. عملکرد «چارگوش» جدید این است که وقتی چند فرزند دارد، آن‌ها را روی هم قرار می‌دهد - این عملکرد با «چارگوش» قبلی که عملکردی مشابه «ستون» داشت متفاوت است. (I94893، b/167680279)
  • پارامترهای تزئین جعبه منسوخ شده است. اگر می‌خواهید جعبه‌تان تزئینات/حاشیه داشته باشد، به‌جای آن از «اصلاح‌گرها» استفاده کنید (Modifier.background،‏ Modifier.border،‏ Modifier.padding) (Ibae92،‏ b/167680279)
  • بسیاری از «میاناهای برنامه‌سازی کاربردی گرافیک» به‌روزرسانی شد
    • ‫DrawScope APIs با روش‌های تبدیل محدوده‌دار به‌روزرسانی شد تا نشان دهد تبدیل فقط در محدوده تماس برگشتی اعمال می‌شود و پس‌از فراخوانی تماس برگشتی برداشته می‌شود
    • مستندات clipPath به‌روزرسانی شد تا به‌جای مستطیل گرد به «مسیر» اشاره کند
    • فاصله ثابت در مستندات برای پارامتر راست در clipPath
    • ‫DrawScope.drawCanvas به drawIntoCanvas تغییر نام داد و پارامتر اندازه برداشته شد
    • پارامترهای dx/dy در روش درج به افقی و عمودی تغییر نام داد
    • سرباری درونی اضافه شد که مقدار درونی یکسانی را برای همه ۴ محدوده ارائه می‌دهد
    • مستندات مربوط به روش درج که نشان می‌داد درج روی هر ۴ طرف اعمال می‌شود برداشته شد
    • سند به‌روزشده برای کلاس Rect
    • نظرات پارامترهای «مستطیل» به‌روز شد تا با سبک kdoc مطابقت داشته باشد
    • ‫Rect.join و Rect.expandToInclude برداشته شد
    • بار اضافه برای Rect.translate(offset) ایجاد شد و Rect.shift منسوخ شد
    • (If086a، b/167737376)
  • از وارد کردن ایستا محتوای محدوده‌های چیدمان (برای نمونه alignWithSiblings در RowScope) جلوگیری کردیم. درعوض باید از محدوده صریح جایگزین استفاده شود: with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }. (I216be، b/166760797)

نسخه 1.0.0-alpha03

‫۱۶ سپتامبر ۲۰۲۰

‫androidx.compose.material:material:1.0.0-alpha03،‏ androidx.compose.material:material-icons-core:1.0.0-alpha03، و androidx.compose.material:material-icons-extended:1.0.0-alpha03 منتشر شدند. نسخه 1.0.0-alpha03 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • نام پارامتر onSelect در BottomNavigationItem را به onClick تغییر می‌دهد (I91925، b/161809324)
  • پارامتر InteractionState را به BottomNavigationItem و Tab اضافه می‌کند و امکان می‌دهد این وضعیت را برافرازید و نحوه نمایش مؤلفه در وضعیت‌های مختلف را تنظیم کنید. (Ia3e9e، b/168025711)
  • پارامترهای disabledBackgroundColor و disabledContentColor را از دکمه‌ها برمی‌دارد. درعوض باید از توابع رنگ پیش‌فرض جدید در ButtonConstants استفاده کنید. اگر ازقبل contentColor / backgroundColor را به‌طور صریح تنظیم می‌کنید، بهتر است به‌جای آن از این توابع پیش‌فرض استفاده کنید و برخی یا همه پارامترها را سفارشی‌سازی کنید تا رنگ برای هر دو حالت فعال / غیرفعال بازنویسی نشود. (If9b52)
  • رنگ پس‌زمینه فیلد نوشتاری دیگر به‌طور ضمنی شفافیت آلفا را اعمال نمی‌کند. درعوض، هر رنگی که ازطریق پارامتر backgroundColor ارائه شود مستقیماً اعمال خواهد شد. (Iecee9، b/167951441)
  • نام InnerPadding به PaddingValues تغییر کرد. (I195f1، b/167389171)
  • پارامترهای resistanceFactorAtMin و resistanceFactorAtMax در Modifier.swipeable با یک پارامتر مقاومت واحد جایگزین شدند. روش defaultResistanceConfig جدیدی در SwipeableConstants اضافه شد. (I54238)
  • پشتیبانی از ارتفاع حالت پویانمایی‌شده برای «دکمه» و «دکمه کنش شناور» را اضافه می‌کند. اکنون ارتفاع بین وضعیت‌های پیش‌فرض و فشرده پویانمایی می‌شود. برای سفارشی‌سازی ارتفاع بین حالت‌ها، لطفاً به‌جای تنظیم مقدار Dp ثابت در همه موارد، از ButtonConstants.defaultAnimatedElevation() و FloatingActionButtonConstants.defaultAnimatedElevation() استفاده کنید. (I37925)
  • برچسب به پارامتر اختیاری در TextField و OutlinedTextField تبدیل شد (I267f6، b/162234081)

رفع اشکال‌ها

  • کارکردهای آزمایش جهانی مثل onNode یا waitForIdle اکنون منسوخ شده‌اند، لطفاً به همتایان جدید آن‌ها که در ComposeTestRule تعریف شده‌اند (I7f45a) انتقال دهید
  • ‫DpConstraints و میاناهای برنامه‌سازی کاربردی که از آن استفاده می‌کنند منسوخ شدند. (I90cdb،‏ b/167389835)
  • پارامترهای minWidth و maxWidth از widthIn به min و max تغییر نام دادند. به‌همین ترتیب برای preferredWidthIn،‏ heightIn،‏ preferredHeightIn. (I0e5e1، b/167389544)
  • کنش‌های معنایی پیمایش به‌جلو/به‌عقب را بردارید. مراحل اضافه شده در AccessibilityRangeInfo. (Ia47b0)
  • کاربردهای گرانش به‌طور پیوسته به تراز یا تراز کردن در میاناهای برنامه‌سازی کاربردی چیدمان تغییر نام داده شد. (I2421a، b/164077038)
  • ‫onNode و دیگر روش‌های سراسری در ComposeTestRule اضافه شد زیرا روش‌های سراسری فعلی منسوخ خواهند شد. (Ieae36)
  • ‫createAndroidComposeRule و AndroidInputDispatcher از androidx.ui.test.android به androidx.ui.test منتقل شد (Idef08، b/164060572)

نسخه 1.0.0-alpha02

‫۲ سپتامبر ۲۰۲۰

‫androidx.compose.material:material:1.0.0-alpha02،‏ androidx.compose.material:material-icons-core:1.0.0-alpha02، و androidx.compose.material:material-icons-extended:1.0.0-alpha02 منتشر شدند. نسخه 1.0.0-alpha02 شامل این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • عنصر BackdropScaffold آزمایشی اضافه شد. (Iad908)

رفع اشکال‌ها

  • ‫Matrix4 با Matrix جایگزین شد. همه بخش‌های دیگر بسته vectormath برداشته شده است. (Ibd665،‏ b/160140398)

نسخه 1.0.0-alpha01

۲۶ اوت ۲۰۲۰

‫androidx.compose.material:material:1.0.0-alpha01،‏ androidx.compose.material:material-icons-core:1.0.0-alpha01، و androidx.compose.material:material-icons-extended:1.0.0-alpha01 منتشر شدند. نسخه 1.0.0-alpha01 شامل این تعهدات است.

مشکل شناخته‌شده

= اولین نویسه در یک عنصر TextField را نمی‌توان بااستفاده از کلید برگشت (b/165956313) حذف کرد

نسخه 0.1.0-dev

نسخه 0.1.0-dev17

۱۹ اوت ۲۰۲۰

‫androidx.compose.material:material:0.1.0-dev17،‏ androidx.compose.material:material-icons-core:0.1.0-dev17، و androidx.compose.material:material-icons-extended:0.1.0-dev17 منتشر شدند. نسخه 0.1.0-dev17 حاوی این تعهدات است.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫RadioGroup و RadioGroupItems که قبلاً منسوخ شده بودند برداشته شده‌اند. به‌جای آن از «ردیف» و «دکمه رادیویی» استفاده کنید (I381b7، b/163806637)
  • کاربردهای برگشتی OnFocusChanged را از «فیلد نوشتاری» برداشت. درعوض از Modifier.focusObserver استفاده کنید. (I51089، b/161297615)
  • ‫Modifier.drawBorder نامناسب شده است. درعوض از Modifier.border استفاده کنید. کلاس داده «حاشیه» با BorderStroke جایگزین شده است (I4257d، b/158160576)
  • برخی‌از دارایی‌ها در SwipeableState تغییر نام دادند: swipeTarget -> targetValue،‏ swipeProgress -> progress،‏ swipeDirection -> direction. تابع rememberSwipeableState برای ایجاد SwipeableStates اضافه شد. (I2fc9c, b/163129614, b/163132293)
  • پشتیبانی از نوار اسنک با جایگاه‌سازی و صف‌بندی مناسب اضافه شده است. ازطریق عملکرد تعلیق SnackbarHostState.showSnackbar به آن دسترسی پیدا کنید. به‌علاوه:
    • عناصر SnackbarHost اضافه شده است. این عنصر براساس وضعیت، میزبان «نوار توضیحات» است و مسئول انتقال بین نوارهای توضیحات است.
    • ‫SnackbarHostState اضافه شده است تا امکان کنترل نوار تنقل‌ها، میزبان‌های نوار تنقل‌ها، و جدا کردن آن از ScaffoldState فراهم شود. ازطریق scaffoldState.snackbarHostState نیز می‌توانید به این وضعیت دسترسی داشته باشید.
    • بار اضافی نوار تنقلات اضافه شده است تا از میانای مشترک بین snackbarHostState و خود نوارهای تنقلات پشتیبانی کند. (I79aaa)
  • پارامتر فعال‌شده را به «دکمه نماد» اضافه می‌کند و پارامترها را در «دکمه نماد دوحالته» بازآرایی می‌کند (I0a941، b/161809385، b/161807956)
  • نسخه «فهرست مورد» با «میانای برنامه‌سازی کاربردی» مبتنی بر «رشته» برداشته شده است. به‌جای آن از نسخه جایگاه استفاده کنید. (Ib8f57، b/161804681)
  • عنصر منسوخ‌شده «فیلدتکست پرشده» برداشته شد. لطفاً برای دریافت پیاده‌سازی «طراحی مواد» فیلد نوشتاری «پرشده»، از TextField استفاده کنید. (I5e889)
  • ‫AlertDialog اکنون از FlowRow برای دکمه‌ها استفاده می‌کند (I00ec1، b/161809319، b/143682374)
  • پارامترهایی در Modifier.swipeable برای تغییر میزان مقاومت هنگام کشیدن فراتر از مرزها اضافه شد. پارامترهای [حداقل/حداکثر]مقدار برداشته شد. (I93d98)
  • پارامتر backgroundColor به LinearProgressIndicator اضافه شد و بالشتک داخلی از CircularProgressIndicator برداشته شد. ‫ProgressIndicatorConstants.DefaultProgressAnimationSpec جدیدی اضافه شد که می‌تواند به‌عنوان AnimationSpec پیش‌فرض هنگام پویانمایی پیشرفت بین مقادیر استفاده شود (If38b5، b/161809914، b/161804677)
  • پارامتر اختیاری velocityThreshold به Modifier.swipeable اضافه شد. (I698ba)
  • bottomBarSize،‏ fabSize، و موارد دیگر دیگر در ScaffoldState دردسترس نیستند. به‌جای آن در مؤلفه‌ای که می‌خواهید اندازه آن را بدانید از Modifier.onPosition استفاده کنید. پارامترهای contentColor و Modifier به Scaffold اضافه شده است (Ic6f7b، b/161811485، b/157174382)
  • برخی‌از پارامترها را در «برگه» تغییر نام می‌دهد و ترتیب آن‌ها را تغییر می‌دهد تا با دیگر «میاناهای برنامه‌سازی کاربردی» سازگار باشد (Ia2d12، b/161807532)
  • ‫TabRow را به TabRow و ScrollableTabRow تقسیم می‌کند و isScrollable را از TabRow برمی‌دارد. همچنین edgePadding را در ScrollableTabRow نمایان می‌کند که امکان کنترل فضای آزاد قبل / بعداز برگه‌ها را فراهم می‌کند. (I583e8، b/161809544)
  • شیء TabRow برداشته شده است و با TabConstants جایگزین شده است. ‫TabRow.TabPosition به سطح بالا (TabPosition) منتقل شده است و نام indicatorContainer به indicator تغییر کرده است. برای اطلاعات دقیق درباره نحوه استفاده از میانای برنامه‌سازی کاربردی به‌روزشده و پیش‌فرض‌ها، نمونه‌ها و مستندات را ببینید. (I54d45،‏ b/161809544)
  • پارامتر آستانه‌ها در Modifier.swipeable اصلاح شد؛ اکنون یک جفت وضعیت (از نوع T) می‌گیرد و آستانه بین آن‌ها را به‌صورت ThresholdConfig برمی‌گرداند. پارامتر dismissThresholds به SwipeToDismiss اضافه شد که یک لامبدا (DismissDirection) -> ThresholdConfig است. (Ie1080)
  • لغزنده رنگ‌های بیشتری برای سفارشی‌سازی دقیق دارد (I73e64، b/161810475)
  • پارامتر رنگ کارت به backgroundColor تغییر نام داد (I01fc1، b/161809546)
  • نوار پیامک اکنون دارای پس‌زمینه و رنگ‌های محتوای سفارشی‌سازی‌شدنی است (I238f2، b/161804381)
  • پارامترهای سفارشی‌سازی اصلاح‌گر، backgroundColor،‏ contentColor، و scrimColor به «کشویی‌ها» اضافه شده است (I23655، b/161804378)
  • ‫state { ... } قابل ترکیب اکنون به‌نفع فراخوانی‌های صریح به remember { mutableStateOf(...) } برای وضوح منسوخ شده است. این کار سطح کلی میانای برنامه‌سازی کاربردی و تعداد مفاهیم مدیریت وضعیت را کاهش می‌دهد و با الگوی by mutableStateOf() برای واگذاری دارایی کلاس مطابقت دارد. (Ia5727)
  • پارامتر حاشیه دکمه به contentPadding تغییر نام داد (Id252e، b/161809394)
  • افزودن عنصر تجربی SwipeToDismiss. (I129e5)

رفع اشکال‌ها

  • ‫onChildPositioned و OnChildPositionedModifier برداشته شد. توسعه‌دهندگان باید درعوض از onPositioned و OnPositionedModifier در چیدمان کودک استفاده کنند. (I4522e، b/162109766)
  • ‫mergePolicy لامبدا به SemanticsPropertyKey اضافه شد. از این می‌توان برای تعریف خط‌مشی سفارشی برای معناشناسی ادغام کردن mergeAllDescendants استفاده کرد. خط‌مشی پیش‌فرض این است که اگر مقدار والد ازقبل وجود داشته باشد از آن استفاده شود، درغیراین‌صورت از مقدار فرزند استفاده می‌شود. (Iaf6c4، b/161979921)
  • ‫IntSize اکنون کلاس به‌خط است (I2bf42)
  • نام PlacementScope.placeAbsolute() به PlacementScope.place() تغییر کرد و نام PlacementScope.place() قبلی به PlacementScope.placeRelative() تغییر کرد. درنتیجه، روش PlacementScope.place() دیگر به‌طور خودکار موقعیت را در زمینه‌های راست‌به‌چپ قرینه نخواهد کرد. اگر این تغییر مطلوب است، درعوض از PlacementScope.placeRelative() استفاده کنید. (I873ac، b/162916675)
  • ‫PxBounds منسوخ‌شده به‌نفع Rect. همه موارد استفاده از PxBounds با rect به‌روزرسانی شد و حاشیه‌نویسی‌های مناسب منسوخ کردن/جایگزین کردن برای کمک به انتقال اضافه شد. (I37038، b/162627058)
  • نام RRect به RoundRect تغییر کرد تا بهتر با الگوهای نام‌گذاری Compose مطابقت داشته باشد سازنده‌های تابع مشابهی برای RRect ایجاد شد و سازنده‌های تابع RRect منسوخ شد (I5d325)

نسخه 0.1.0-dev16

۵ اوت ۲۰۲۰

‫androidx.compose.material:material:0.1.0-dev16،‏ androidx.compose.material:material-icons-core:0.1.0-dev16، و androidx.compose.material:material-icons-extended:0.1.0-dev16 منتشر شدند. نسخه 0.1.0-dev16 حاوی این تعهدها است.

تغییرات میانای برنامه‌سازی کاربردی

  • اکنون «رنگ‌ها» به‌جای واسط، کلاس نهایی است. به‌جای گسترش و ارائه پیاده‌سازی سفارشی، باید محیط جدیدی برای موضوع سفارشی خود ایجاد کنید و ازطریق محیط جدید در عناصر خود به موضوع دسترسی پیدا کنید، مشابه نحوه عملکرد داخلی MaterialTheme. (Ibae84)
  • ‫ColorPalette به Colors تغییر نام داد تا بهتر با سیستم رنگ Material مطابقت داشته باشد و سردرگمی درباره اینکه ColorPalette یک شیء زمینه‌سازی «عمومی» است یا نه برطرف شود، زیرا این شیء یک پیاده‌سازی خاص از سیستم رنگ Material است. علاوه‌براین، lightColorPalette و darkColorPalette را به‌ترتیب به lightColors و darkColors تغییر نام می‌دهد. (I9e976،‏ b/161812111)
  • پارامتر text در BottomNavigationItem را به label،‏ onSelected را به onSelect،‏ activeColor را به selectedContentColor،‏ inactiveColor را به unselectedContentColor تغییر نام می‌دهد و ترتیب پارامتر را به‌روز می‌کند تا با دستورالعمل‌ها مطابقت داشته باشد. (Icb605, b/161809324)
  • ‫Modifier.stateDraggable کاملاً بازسازی و به Modifier.swipeable تغییر نام داده شد. کلاس جدیدی به‌نام SwipeableState معرفی شد و DrawerState و BottomDrawerState برای ارث‌بری از آن بازسازی شدند. ‫[Modal/Bottom]DrawerLayout دیگر پارامتر onStateChange را نمی‌پذیرد. (I72332، b/148023068)
  • بسته foundation.shape.corner به foundation.share مسطح شد (I46491، b/161887429)
  • گزارمان ExperimentalMaterialApi اضافه شد. ‫RippleTheme به‌عنوان «آزمایشی» علامت‌گذاری شد (Ic5fa0، b/161784800)
  • نام Material FilledTextField به TextField تغییر کرد و نام TextField بنیادی به BaseTextField تغییر کرد تا ساده‌ترین API موردنظر به‌راحتی قابل‌کشف و استفاده باشد (Ia6242،‏ b/155482676)

رفع اشکال‌ها

  • ‫OnChildPositioned منسوخ شده است. درعوض از OnPositioned در فرزند استفاده کنید. (I87f95, b/162109766)
  • رفع اشکالات گسترده در Address API (I077bc)
    1. برداشتن میانای OffsetBase استفاده‌نشده
    2. تراز کردن کلاس‌های «آفست» و «آفست داخلی» برای داشتن سطح میانای برنامه‌سازی کاربردی یکپارچه
    3. برای هماهنگی با Offset API،‏ IntOffset.Origin را به IntOffset.Zero تغییر نام دهید
    4. روش nativeCanvas از رابط Canvas منتقل شد تا از مصرف‌کنندگان برای ایجاد نمونه‌های Canvas خودشان پشتیبانی شود
    5. کلاس EmptyCanvas برای بازسازی DrawScope ایجاد شد تا به‌جای lateinit پارامتر غیرتهی باشد و غیرتهی بودن فیلد تضمین شود
    6. نام‌گذاری مجدد ثابت‌های ClipOp به «حروف آغازین کلمات بزرگ»
    7. نام‌گذاری مجدد شمارش‌های FilterQuality به «حروف آغازین کلمات بزرگ»
    8. نام‌گذاری مجدد شمارش‌های StrokeJoin به «حروف آغازین کلمات بزرگ»
    9. نام شمارش‌های PointMode به «حروف آغازین کلمات بزرگ» تغییر کرد
    10. نام‌گذاری شمارشی PaintingStyle به «حروف آغازین کلمات بزرگ» تغییر کرد
    11. نام‌گذاری مجدد شمارشگرهای PathFillType به «حروف آغازین کلمات»
    12. نام‌گذاری مجدد شمارش‌های StrokeCap به «حروف آغازین بزرگ»
    13. پیاده‌سازی DrawCache به‌روزرسانی شد تا دیگر از پارامترهای lateinit استفاده نکند
    14. ‫DrawScope به‌روزرسانی شد تا دیگر از واگذاری تنبل برای پارامترهای داخلی fillPaint و strokePaint استفاده نکند
    15. «تصویر» قابل‌تألیف به‌روزرسانی شد تا از «جعبه» برای سربار کمتر استفاده شود
    16. به‌روزرسانی کلاس «طرح کلی» برای داشتن شرح‌های ‎ @Immutable
    17. ‫PathNode به‌روز شد تا برای هر دستورالعمل مسیر، حاشیه‌نویسی‌های ‎ @Immutable داشته باشد
    18. زیرترکیب برداری به‌روزرسانی شد تا بررسی‌های شرطی اضافی برای برابری برداشته شود زیرا ترکیب ازقبل آن‌ها را مدیریت می‌کند
    19. روش‌های سازنده همراه Rect منسوخ شد و به‌جای آن از سازنده‌های تابع استفاده شد
    20. سازندگان تابع و کلاس‌های «قلم‌مو» با ‫@Immutable و @Stable APIs به‌روزرسانی شدند
    21. به‌روزرسانی عدد ثابت VertexMode به PascalCase
    22. روش selectPaint در DrawScope به‌روزرسانی شد تا پارامترهای ضربه را در نقاشی به‌صورت شرطی بازنویسی کند، اگر تغییر کرده باشند
    23. «اندازه» به‌روزرسانی شد تا میانای برنامه‌سازی کاربردی ساختارشکن اضافه شود، UnspecifiedSize به Unspecified تغییر نام داده شد، و روش‌های استفاده‌نشده برداشته شد
  • انتقال کادر گفتگو به ui (I47fa6)
  • ‫SemanticsNodeInteraction.performPartialGesture حذف شد. درعوض از SemanticsNodeInteraction.performGesture استفاده کنید. (Id9b62)
  • نام SemanticsNodeInteraction.getBoundsInRoot() به SemanticsNodeInteraction.getUnclippedBoundsInRoot() (Icafdf،‏ b/161336532) تغییر کرد
  • میاناهای برنامه‌سازی کاربردی برای پشتیبانی از راست‌به‌چپ به‌روز شده است. ‫LayoutDirectionAmbient اضافه شده است که می‌توان از آن برای خواندن و تغییر دادن جهت چیدمان استفاده کرد. ‫Modifier.rtl و Modifier.ltr برداشته شده‌اند. (I080b3)
  • نام Modifier.deternimateProgress به Modifier.progressSemantics تغییر کرده است (I9c0b4)
  • ‫material-icons-extended را با جدیدترین نمادهای اضافه‌شده به Material.io/icons به‌روزرسانی می‌کند (I4b1d3)
  • برای transitionDefinition، نوع T باید به‌طور صریح مشخص شود. (I1aded)
  • ‫Modifier.plus منسوخ شده است، درعوض از Modifier.then استفاده کنید. «سپس» نشان قوی‌تری از ترتیب دارد و همچنین از تایپ کردن Modifier.padding().background() + anotherModifier جلوگیری می‌کند، که زنجیره را می‌شکند و خواندن را سخت‌تر می‌کند (Iedd58، b/161529964)
  • ‫AndroidComposeTestRule به createAndroidComposeRule تغییر نام داد. (I70aaf)
  • ‫isFocused() و isNotFocused() SemanticsMatcher را اضافه کنید. (I0b760)
  • ‫BaseGestureScope.globalBounds برداشته شد، که نباید از آزمایش‌ها استفاده شود. به‌جای آن، از مختصات محلی گرهی که با آن تعامل دارید استفاده کنید. (Ie9b08)
  • موقعیت بالاپرهای نمایشگرهای برش‌دار اصلاح شد. (Idd7dd)
  • نام Modifier.drawBackground به Modifier.background تغییر کرده است (I13677)

نسخه 0.1.0-dev15

‫۲۲ ژوئیه ۲۰۲۰

‫androidx.compose.material:material:0.1.0-dev15،‏ androidx.compose.material:material-icons-core:0.1.0-dev15، و androidx.compose.material:material-icons-extended:0.1.0-dev15 منتشر شدند. نسخه 0.1.0-dev15 حاوی این تعهدات است.

به‌روزرسانی وابستگی‌ها

  • برای استفاده از نسخه 0.1.0-dev15 «نوشتن»، باید وابستگی‌هایتان را مطابق با تکه‌کدهای جدیدی که در بالا در اعلام وابستگی‌ها نشان داده شده است به‌روز کنید.

تغییرات میانای برنامه‌سازی کاربردی

  • گزارمان @Model اکنون منسوخ شده است. از state و mutableStateOf به‌عنوان جایگزین استفاده کنید. این تصمیم برای منسوخ کردن پس‌از بحث‌های دقیق و طولانی اتخاذ شد.

    توجیهات

    دلیل شامل موارد زیر است ولی به این موارد محدود نمی‌شود:

    • مساحت سطح API و مفاهیمی را که باید آموزش دهیم کاهش می‌دهد
    • با دیگر مجموعه‌های ابزار قابل‌مقایسه (Swift UI،‏ React،‏ Flutter) هم‌راستاتر است
    • تصمیم برگشت‌پذیر است. هرزمان بخواهیم می‌توانیم @Model را برگردانیم.
    • موارد استفاده گوشه‌ای و سؤالات دشوار درباره پیکربندی @Model را به‌عنوان مواردی که باید مدیریت کنیم برمی‌دارد
    • ‫@Model کلاس داده، برابر، کد درهم‌سازی، و غیره
    • چگونه برخی‌از دارایی‌ها را «تحت‌نظر» داشته باشم و برخی دیگر را نداشته باشم؟
    • چگونه برابری ساختاری دربرابر برابری ارجاعی را برای استفاده در مشاهده مشخص کنم؟
    • «جادو» را در سیستم کاهش می‌دهد. احتمال اینکه کسی فکر کند سیستم از آنچه هست هوشمندتر است را کاهش می‌دهد (یعنی اینکه سیستم می‌داند چگونه فهرست را متمایز کند)
    • جزئیات مشاهده را دیداری‌تر می‌کند.
    • بهبود قابلیت تغییر از متغیر -> دارایی در کلاس
    • به‌طور بالقوه امکان انجام بهینه‌سازی‌های دستی مختص هر ایالت را فراهم می‌کند
    • با بقیه اکوسیستم هم‌راستاتر می‌شود و ابهام درباره تغییرناپذیری یا «پذیرش وضعیت تغییرپذیر» را کاهش می‌دهد

    یادداشت‌های انتقال

    تقریباً همه موارد استفاده موجود از @Model به یکی از دو روش به‌سادگی تبدیل می‌شوند. مثال زیر یک کلاس @Model با دو دارایی فقط برای مثال دارد و از آن در یک عنصر ترکیبی استفاده می‌کند.

    @Model class Position(
     var x: Int,
     var y: Int
    )
    
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    جایگزین ۱: از State<OriginalClass> استفاده کنید و کپی ایجاد کنید.

    این رویکرد با کلاس‌های داده Kotlin آسان‌تر می‌شود. اساساً، همه دارایی‌های قبلاً var را به دارایی‌های val کلاس داده تبدیل کنید، و سپس به‌جای remember از state استفاده کنید، و مقدار وضعیت را بااستفاده از روش تسهیل copy(...) کلاس داده به نسخه‌های شبیه‌سازی‌شده از نسخه اصلی اختصاص دهید.

    توجه به این نکته مهم است که این رویکرد فقط زمانی کار می‌کند که تنها جهش‌های آن کلاس در همان دامنه‌ای انجام شده باشد که نمونه State در آن ایجاد شده است. اگر کلاس به‌صورت داخلی و خارج از محدوده استفاده تغییر می‌کند و شما به مشاهده آن تکیه می‌کنید، رویکرد بعدی همان رویکردی است که می‌خواهید استفاده کنید.

    data class Position(
     val x: Int,
     val y: Int
    )
    
    @Composable fun Example() {
     var p by state { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p = p.copy(x=it) }
       onYChange={ p = p.copy(y=it) }
     )
    }
    

    جایگزین ۲: استفاده از mutableStateOf و نمایندگان دارایی

    این رویکرد با نمایندگان دارایی Kotlin و mutableStateOf API که به شما امکان می‌دهد نمونه‌های MutableState را خارج از ترکیب ایجاد کنید، آسان‌تر می‌شود. اساساً، همه دارایی‌های var کلاس اصلی را با دارایی‌های var با mutableStateOf به‌عنوان نماینده دارایی آن‌ها جایگزین کنید. این مزیت را دارد که استفاده از کلاس اصلاً تغییر نخواهد کرد، فقط پیاده‌سازی داخلی آن تغییر خواهد کرد. هرچند این رفتار کاملاً مشابه مثال اصلی نیست، زیرا اکنون هر دارایی به‌صورت جداگانه مشاهده/مشترک می‌شود، بنابراین ترکیب‌های مجددی که پس‌از این بازسازی می‌بینید ممکن است محدودتر باشد (که خوب است).

    class Position(x: Int, y: Int) {
     var x by mutableStateOf(x)
     var y by mutableStateOf(y)
    }
    
    // source of Example is identical to original
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    ‫(I409e8،‏ b/152050010،‏ b/146362815،‏ b/146342522،‏ b/143413369،‏ b/135715219،‏ b/143263925،‏ b/139653744)

  • بازخوان onFocusChange در فیلدهای نوشتاری به onFocusChanged تغییر نام داد (Ida4a1)

  • پارامتر آستانه‌ها در stateDraggable اضافه شد تا آستانه‌ها بین لنگرها مشخص شود. از این برای تنظیم آستانه ۵۶dp در کشوی پایین استفاده شده است. همچنین BottomDrawerLayout اکنون از یک شمارشگر BottomDrawerState جداگانه استفاده می‌کند. (I533fa)

  • «اصلاح‌گر.موج» منسوخ‌شده قبلی را برمی‌دارد. اکنون «کلیک‌کردنی» از موج به‌عنوان نشانه پیش‌فرض استفاده می‌کند (اگر در برنامه‌تان MaterialTheme {} تنظیم کرده باشید)، بنابراین در اکثر موارد می‌توانید فقط از «کلیک‌کردنی» استفاده کنید و نشانه موج را به‌صورت رایگان دریافت کنید. اگر نیاز دارید رنگ / اندازه / پارامتر محدودشده را برای موج سفارشی‌سازی کنید، می‌توانید به‌صورت دستی RippleIndication ایجاد کنید و آن را به‌عنوان پارامتر نشانه به عنصر کلیک‌کردنی منتقل کنید. (I663b2, b/155375067)

  • جای‌گزینی منسوخ‌شده عنصر ترکیبی FilledTextField (I7f8f8) برداشته شد

  • تغییر نام دادن شیء «دکمه» (حاوی پیش‌فرض‌های استفاده‌شده توسط تابع «دکمه») به «ثابت‌های دکمه» (I7c5f7، b/159687878)

  • جایگاه محتوای دکمه اکنون به‌عنوان «ردیف» عمل می‌کند (وقتی نیاز دارید نمادی با نوشتار داشته باشید مفید است، نمونه‌های مربوط به نحوه نوشتن آن را در «دکمه» ببینید) (I0ff10، b/158677863)

  • ‫RadioGroup و RadioGroupItem منسوخ شده‌اند. از Box با Modifier.selectable،‏ Row، و Column استفاده کنید تا مجموعه مناسبی از انتخاب‌های دکمه رادیویی را با طراحی خودتان بسازید (I7f5cf،‏ b/149528535)

  • «فیلد نوشتاری خط‌دار Material» (I1a518) اضافه شد

  • ‫androidx.ui.foundation.TextFieldValue و androidx.ui.input.EditorValue منسوخ شده است. ترکیب‌های TextField،‏ FilledTextField، و CoreTextField که از این نوع استفاده می‌کنند نیز منسوخ شده‌اند. لطفاً به‌جای آن از androidx.ui.input.TextFieldValue استفاده کنید (I4066d، b/155211005)

  • ‫TabRow.TabPosition موقعیت را در Dp ندارد، در IntPx ندارد (I34a07، b/158577776)

  • استفاده از IntPx با Int جایگزین شد. IntPxPosition با IntOffset جایگزین شد. ‫IntPxSize با IntSize جایگزین شد. (Ib7b44)

  • برای ادغام کردن تعداد کلاس‌های استفاده‌شده برای نمایش اطلاعات اندازه‌بندی، به‌جای PxSize، استفاده از کلاس «اندازه» را استاندارد کنید. این کار مزایای کلاس درون‌خطی را برای استفاده از long به‌منظور بسته‌بندی ۲ مقدار شناور برای نشان دادن عرض و ارتفاع نشان‌داده‌شده به‌صورت شناور فراهم می‌کند. (Ic0191)

  • ‫Modifier.ripple را منسوخ می‌کند. اکنون «کلیک‌کردنی» از موج به‌عنوان نشانه پیش‌فرض استفاده می‌کند (اگر در برنامه‌تان MaterialTheme {} تنظیم کرده باشید)، بنابراین در اکثر موارد می‌توانید فقط از «کلیک‌کردنی» استفاده کنید و نشانه موج را به‌صورت رایگان دریافت کنید. اگر نیاز دارید رنگ / اندازه / پارامتر محدودشده را برای موج سفارشی‌سازی کنید، می‌توانید به‌صورت دستی RippleIndication ایجاد کنید و آن را به‌عنوان پارامتر نشانه به عنصر کلیک‌کردنی منتقل کنید. (I101cd،‏ b/155375067)

  • «میانای برنامه کاربردی» داربست بازطراحی شده است: نام چند پارامتر تغییر کرده است، پارامترهای جدیدی برای سفارشی‌سازی بهتر اضافه شده است. افزودن دریافت‌کننده به اندازه‌های پرسمان «دکمه شناور»، «نوار بالا»، و «نوار پایین» (I0e7ce)

  • عنصر DropdownMenu را در ui-material، پیاده‌سازی منو «طراحی مواد» اضافه کرد. (I9bb3d)

  • اجازه می‌دهد صفحه‌کلید نرم‌افزاری به‌صورت دستی بااستفاده از SoftwareKeyboardController نشان داده/پنهان شود (Ifb9d6، b/155427736)

  • ‫Modifier.indication به بسته پایه اضافه شد. از آن برای نمایش فشار/کشیدن/نشانگرهای دیگر در عناصر تعاملی سفارشی‌تان استفاده کنید (I8425f، b/155287131)

  • پیاده‌سازی‌های CanvasScope ادغام شد بنابراین اکنون فقط DrawScope و ContentDrawScope وجود دارد نام CanvasScope به DrawScope تغییر کرد. ‫DrawScope به‌روزرسانی شد تا واسط Density را پیاده‌سازی کند و LayoutDirection را ارائه دهد زیرکلاس DrawScope در ContentDrawScope حذف شد ‫Painter و PainterModifier به‌روزرسانی شده‌اند تا دیگر خودشان ویژگی RTL را حفظ نکنند زیرا DrawScope این ویژگی را ازقبل بدون ارائه دستی آن ارائه می‌دهد (I1798e)

  • نام Emphasis.emphasize() به Emphasis.applyEmphasis() تغییر می‌کند (Iceebe)

  • دکمه‌های غیرفعال اکنون ازنظر بصری از مشخصات «طراحی مواد» پیروی می‌کنند (I47dcb، b/155076924)

  • ‫FilledTextField از کنش IME، تبدیل دیداری، و پشتیبانی از نوع صفحه‌کلید برخوردار می‌شود (I1f9cf، b/155075201)

  • پارامتر strokeWidth را به CircularProgressIndicator اضافه می‌کند تا اندازه خط پیرامونی را سفارشی‌سازی کند. برای تغییر اندازه خط پیرامونی (ارتفاع) یک LinearProgressIndicator، می‌توانید از Modifier.preferredHeight() یا اصلاح‌گر اندازه دیگری استفاده کنید. (Icea16،‏ b/154919081)

  • پارامتر strokeWidth را به CircularProgressIndicator اضافه می‌کند تا اندازه خط پیرامونی را سفارشی‌سازی کند. برای تغییر اندازه خط پیرامونی (ارتفاع) یک LinearProgressIndicator، می‌توانید از Modifier.preferredHeight() یا اصلاح‌گر اندازه دیگری استفاده کنید. (Icea16،‏ b/154919081)

  • میانای برنامه‌سازی کاربردی جایگاه برای نمادهای پیش‌رو و پس‌رو در FilledTextField و مدیریت وضعیت خطا اضافه شد (Ic12e0)

  • رنگ پیش‌فرض «دکمه اقدام شناور» و «دکمه اقدام شناور گسترده» به MaterialTheme.colors.secondary تغییر کرده است. (I3b9b9, b/154118816)

  • همه موارد استفاده از «رنگ» تهی‌پذیر در API با غیرتهی‌پذیر جایگزین شد و به‌جای تهی از Color.Unset استفاده شد (Iabaa7)

  • نام EdgeInsets به InnerPadding تغییر کرد. نام پارامتر innerPadding در «دکمه‌های Material» به paddding تغییر کرد. (I66165)

  • اکنون لغزنده بدون وضعیت است. کاربران باید وضعیت را خودشان منتقل و به‌روز کنند، درست مثل هر کنترل دیگری. (Ia00aa)

  • ‫StaticDrawer برداشته شد. اگر به آن نیاز دارید، به‌جای آن از Box با پهنای مشخص‌شده برای مواد استفاده کنید (I244a7)

  • پیاده‌سازی «طراحی مواد» برای «فیلد نوشتار پرشده» (Ic75cd) اضافه شد

  • پارامتر اصلاح‌گر به «فهرست مورد» اضافه شد و پارامترها برای ارتقای بدنه لامبدای انتهایی تغییر ترتیب داده شد (I66e21)

  • پارامتر سازنده defaultFontFamily را به «حروف‌چینی» اضافه می‌کند و امکان می‌دهد خانواده قلم پیش‌فرضی که برای هریک از «سبک‌های نوشتاری» ارائه‌شده‌ای که خانواده‌ای برای آن‌ها تنظیم نشده است استفاده شود مشخص شود. (I89d07)

  • «جدول‌های داده‌های مادی» به‌طور موقت از سطح API برداشته شد. (Iaea61)

  • پارامترهای تغییرنام‌داده‌شده در عنصر ترکیبی «تقسیم‌کننده» (Ic4373)

  • کودکان (Ia6d19)

  • ‫MaterialTheme.emphasisLevels را برمی‌دارد، به‌جای آن از EmphasisAmbient.current برای بازیابی سطوح تأکید استفاده کنید (Ib5e40)

  • سیستم زمینه‌سازی شکل براساس مشخصات طراحی Material به‌روزرسانی شده است. اکنون می‌توانید شکل‌های کوچک، متوسط، و بزرگ ارائه دهید تا اکثر عناصر از آن‌ها استفاده کنند (Ifb4d1)

  • «میاناهای برنامه‌سازی کاربردی» MaterialTheme مثل MaterialTheme.colors()،‏ MaterialTheme.typography() را تغییر دادیم تا به‌جای تابع، ویژگی باشند. پرانتزها را از تماس‌های موجود بردارید، هیچ تغییری در رفتار پیش‌بینی نمی‌شود. (I3565a)

  • میاناهای برنامه‌سازی کاربردی «دکمه شناور کنش» را بازسازی کردیم تا به‌جای عناصر اولیه، لامبداهای ترکیب‌پذیر را بپذیرد. برای اطلاعات استفاده، نمونه‌های به‌روزشده را ببینید. ‫(I00622)

  • افزودن پارامتر enabled به «چارگوش انتخاب»، «کلید»، و «قابل‌تغییر» (I41c16)

  • «موج» اکنون یک «اصلاح‌گر» است. تا زمانی که «کلیک‌کردنی» تبدیل نشده است، استفاده توصیه‌شده Clickable(onClick = { ... }, modifier = ripple()) است (Ie5200، b/151331852، b/150060763)

  • ‫Surface و Card از androidx.ui.material.surface به androidx.ui.material منتقل شدند (I88a6d، b/150863888)

  • اکنون دکمه، FloatingActionButton، و Clickable پارامتر enabled جداگانه‌ای دارند. برخی‌از پارامترهای «دکمه» تغییر نام داده یا ترتیب آن‌ها تغییر کرده است. (I54b5a)

  • نام «تصویر» به «دارایی تصویر» تغییر کرد تا تفاوت بین داده‌های «تصویر» و عنصر ترکیبی «تصویر» که برای شرکت در چیدمان و رسم محتوا استفاده می‌شود بهتر مشخص شود. _بدنه:روش افزونه‌ای در android.graphics.Bitmap ایجاد شد، Bitmap.asImageAsset()‎، برای ایجاد نمونه‌ای از ImageAsset که برای ترکیب توسعه سنتی برنامه Android با چارچوب Compose مفید است (Id5bbd)

  • میانای برنامه‌سازی کاربردی Snackbar با پارامترهای «رشته» برداشته شد و به‌جای آن از سرباری که لامبداهای ترکیب‌پذیر را می‌پذیرد استفاده شد. دیدن نمونه‌های به‌روزشده برای اطلاعات استفاده (I55f80)

  • کد میاناهای برنامه‌سازی کاربردی «برگه» را بازسازی کردیم تا text و icon لامبدا را بپذیرد، (Ia057e)

  • عنصر BottomNavigation اضافه شد، برای اطلاعات استفاده به اسناد و نمونه‌ها مراجعه کنید (I731a0)

  • ‫Icon،‏ IconButton، و IconToggleButton اضافه شد، AppBarIcon برداشته شد. می‌توانید مستقیماً موارد استفاده موجود از AppBarIcon را با IconButton جایگزین کنید، و اکنون هدف لمسی صحیح را خواهند داشت. برای اطلاعات استفاده، نمونه‌ها را ببینید، و برای «نمادهای Material» ارائه‌شده که می‌توانید مستقیماً با این عناصر استفاده کنید، «نمادها» را ببینید. (I96849)

  • ‫ButtonStyle با توابع متمایز جایگزین شد و بار اضافه نوشتار (رشته) برداشته شد. برای اطلاعات استفاده، نمونه‌های به‌روزشده را ببینید. (If63ab،‏ b/146478620،‏ b/146482131)

  • تغییر نام اصلاح‌گر Border به DrawBorder (I8ffcc)

  • ‫LayoutCoordinates دیگر ویژگی موقعیت ندارد. وقتی «LayoutModifiers»، چرخش، یا مقیاس‌بندی درنظر گرفته می‌شود، دارایی موقعیت معنایی ندارد. به‌جای آن، توسعه‌دهندگان باید از parentCoordinates و childToLocal() برای محاسبه تبدیل از یک LayoutCoordinate به دیگری استفاده کنند.

    ‫LayoutCoordinates به‌جای PxSize از IntPxSize برای خصوصیت اندازه استفاده می‌کند. چیدمان‌ها از اندازه‌های پیکسل عدد صحیح برای چیدمان‌ها استفاده می‌کنند، بنابراین همه اندازه‌های چیدمان باید از اعداد صحیح استفاده کنند و نه مقادیر ممیز شناور. (I9367b)

  • تغییرات ناگهانی در ambients API. برای جزئیات، گزارش و مستندات Ambient<T> را ببینید (I4c7ee، b/143769776)

  • عنصر مطلب داربست اضافه شده است. داربست پیاده‌سازی می‌کند (I7731b)

  • ‫DrawBorder با «اصلاح‌گر حاشیه» (Id335a) جایگزین شد

رفع اشکال‌ها

  • ‫FocusModifier به‌نفع Modifier.focus،‏ Modifier.focusRequester،‏ Modifier.focusObserver منسوخ شده است. ‫FocusState و FocusDetailedState به‌نفع FocusState2 منسوخ شده‌اند (I46919، b/160822875، b/160922136)
  • ‫VerticalScroller و HoriziontalScroller منسوخ شده‌اند. از ScrollableColumn و ScrollableRow برای تجربه داخلی با رفتار و پارامترهای Column/Row، یا Modifier.verticalScroll و Modifier.horizontalScroll در عنصر خودتان استفاده کنید. به‌همین ترتیب، ScrollerPosition به‌نفع ScrollState منسوخ شده است (I400ce، b/157225838، b/149460415، b/154105299)
  • میاناهای برنامه‌سازی کاربردی Modifier.draggable و Modifier.scrollable بازطراحی شدند. ‫DragDirection به‌نفع Orientation برداشته شد. وضعیت موردنیاز برای پیمایش ساده شده است. نام ScrollableState به ScrollableController تغییر کرده است (Iab63c، b/149460415)
  • نام runOnIdleCompose به runOnIdle تغییر کرد (I83607)
  • اکنون دارایی‌های معنایی تک‌مقدار از سبک تماس استفاده می‌کنند. برای مثال، «semantics { hidden = true }» اکنون به‌صورت زیر نوشته می‌شود: «semantics { hidden() }». (Ic1afd، b/145951226، b/145955412)
  • چندین API آزمایشی برای شهودی‌تر شدن تغییر نام دادند. همه میاناهای برنامه‌سازی کاربردی findXYZ به onNodeXYZ تغییر نام داده شدند. نام همه «میاناهای برنامه‌سازی کاربردی doXYZ» به performXYZ تغییر کرد. (I7f164)
  • «میانای برنامه‌سازی کاربردی انتقال» تغییر کرده است تا به‌جای انتقال «وضعیت انتقال» به فرزندان، «وضعیت انتقال» را برگرداند. این کار باعث می‌شود این «میانای برنامه‌سازی کاربردی» با میاناهای برنامه‌سازی کاربردی animate()‎ سازگارتر شود. (I24e38)
  • یک کلاس واحد IntBounds اضافه شده است که نشان‌دهنده محدوده‌های پیکسل عدد صحیح از چیدمان است. «میانای برنامه کاربردی» PopupPositionProvider برای استفاده از آن به‌روز شده است. (I0d8d0، b/159596546)
  • پرچم اختیاری جدیدی به‌نام useUnmergedTree برای آزمایش یابنده‌ها اضافه شد. (I2ce48)
  • میاناهای برنامه‌سازی کاربردی منسوخ‌شده آزمایش اندازه برداشته شد. (Iba0a0)
  • برداشتن کلاس درون‌خطی Shader که کلاس انتظار NativeShader را می‌پیچید نام NativeShader به Shader تغییر یافت. کلاس درون‌خطی Shader بسته‌بندی‌شده چیزی ارزشمند به سطح API اضافه نکرد و کلاس درون‌خطی بود، بنابراین از کلاس NativeShader مستقیماً استفاده کنید. (I25e4d)
  • اکنون «بالاپَرها»، «کادرهای گفتگو»، و «منوها» از MaterialTheme زمینه‌ای ارث می‌برند (Ia3665، b/156527485)
  • «منو کرکره‌ای» Material اکنون پیمایش‌پذیر است. (Ide699)
  • پارامتر جهت چیدمان از بلوک اندازه‌گیری تابع Layout()‎ برداشته شد. بااین‌حال، جهت چیدمان در داخل بازخوانی ازطریق شیء حوزه اندازه‌گیری (Ic7d9d) دردسترس است
  • از AnimationSpec به‌جای AnimationBuilder در APIهای سطح بالا استفاده کنید تا مفهوم مشخصات پویانمایی ایستا را روشن کنید -با برداشتن الزام لامبدا برای ایجاد AnimationSpecهایی مثل tween و spring،‏ DSL انتقال را بهبود دهید. درعوض، آن‌ها مستقیماً پارامترهای سازنده را می‌گیرند. -بهبود سهولت کلی استفاده از AnimationSpec با باز کردن سازنده‌ها به‌جای تکیه بر سازندگان -تغییر مدت و تأخیر برای KeyFrames و Tween به Int. این کار تبدیل نوع غیرضروری و سربار روش را حذف می‌کند (برای پشتیبانی از هر دو نوع Long و Int). (Ica0b4)
  • وقتی enabled روی false تنظیم شده باشد، «کلید» اکنون در حالت غیرفعال ظاهر می‌شود (If4624، b/155941869، b/159331694)
  • ‫Modifier.tag به Modifier.layoutId تغییر نام داد تا با Modifier.testTag اشتباه نشود. (I995f0)
  • موقعیت‌های خط تراز Int که از Placeable#get(AlignmentLine) برگردانده می‌شوند اکنون غیرتهی هستند. اگر خط تراز موردپُرسمان وجود نداشته باشد، AlignmentLine.Unspecified برگردانده خواهد شد. (I896c5، b/158134875)
  • کلاس «شعاع» بازسازی شد تا به کلاس درون‌خطی تبدیل شود. روش‌های ایجاد همراه را به‌نفع سازنده تابع با پارامتر پیش‌فرض برداشتیم تا شعاع در امتداد محور y با شعاع پارامتر محور x اجباری مطابقت داشته باشد.

    ‫DrawScope.drawRoundRect به‌روزرسانی شد تا به‌جای ۲ مقدار شناور جداگانه برای شعاع در امتداد محور x و y، یک پارامتر Radius مصرف کند (I46d1b)

  • برای ادغام کردن تعداد کلاس‌های استفاده‌شده برای نمایش اطلاعات مکان‌یابی، به‌جای استفاده از PxPosition، از کلاس «آفست» استفاده کنید. این کار مزایای کلاس درون‌خطی را برای استفاده از عدد صحیح طولانی برای بسته‌بندی ۲ مقدار ممیز شناور برای نمایش انحراف‌های x و y که به‌صورت ممیز شناور نمایش داده می‌شوند فراهم می‌کند. (I3ad98)

  • استفاده از کلاس Px در کلاس‌های مختلف compose به‌عنوان بخشی از تلاش بزرگ بازسازی برای تکیه کردن فقط بر Dp و انواع اولیه برای پارامترهای پیکسل جایگزین شد. کلاس Px به‌طور کامل حذف شد (I3ff33)

  • عنصر قابل‌تغییر وضعیت منسوخ شده است. به‌جای آن از Modifier.toggleable استفاده کنید (I35220، b/157642842)

  • جایگزین کردن استفاده از کلاس Px در کلاس‌های مختلف ترکیب به‌عنوان بخشی از تلاش بزرگ بازسازی برای تکیه کردن فقط بر Dp و انواع اولیه برای پارامترهای پیکسل (I086f4)

  • جایگزین کردن استفاده از کلاس Px در کلاس‌های مختلف ترکیب به‌عنوان بخشی از تلاش بزرگ بازسازی برای تکیه کردن فقط بر Dp و انواع اولیه برای پارامترهای پیکسل (Id3434)

  • جایگزین کردن استفاده از کلاس Px در کلاس‌های مختلف compose به‌عنوان بخشی از تلاش بزرگ بازسازی برای تکیه کردن فقط بر Dp و انواع اولیه برای پارامترهای پیکسل (I97a5a)

  • رفع مشکل فراخوانی نشدن onClick برای DropdonMenuItems. (I3998b،‏ b/157673259)

  • ‫MutuallyExclusiveSetItem منسوخ شده است. درعوض از Modifier.selectable استفاده کنید. (I02b47, b/157642842)

  • ‫TestTag اکنون منسوخ شده است. درعوض از Modifier.testTag استفاده کنید. (If5110،‏ b/157173105)

  • مکان‌نمای «فیلد نوشتاری» پویانمایی چشمک‌زن دارد (Id10a7)

  • جایگزین کردن استفاده از کلاس Px در کلاس‌های مختلف ترکیب به‌عنوان بخشی از تلاش بزرگ بازسازی برای تکیه کردن فقط بر Dp و انواع ابتدایی برای پارامترهای پیکسل (I19d02)

  • ‫VerticalScroller اکنون «ستون» را به‌صورت آماده ارائه می‌دهد. ‫HorizontalScroller اکنون «ردیف» را به‌صورت آماده ارائه می‌دهد. (Ieca5d، b/157020670)

  • جایگزین کردن استفاده از کلاس Px در کلاس‌های مختلف ترکیبی به‌عنوان بخشی از تلاش بزرگ بازسازی برای تکیه کردن فقط بر Dp و انواع ابتدایی برای پارامترهای پیکسل (Iede0b)

  • ‫Modifier.semantics برای اجازه دادن به استفاده از عناصر سطح بالا، از حالت منسوخ خارج شده است. (I4cfdc)

  • ‫DrawLayer modifiers api تغییر کرده است: outlineShape به shape تغییر نام داده است و مقدار پیش‌فرض آن RectangleShape است و اکنون غیرقابل تهی است؛ clipToOutline به clip تغییر نام داده است؛ clipToBounds برداشته شده است زیرا با clip == true با RectangleShape یکسان است (I7ef11، b/155075735)

  • میاناهای برنامه‌سازی کاربردی سطح بالاتر ترکیب به‌روزرسانی‌شده که «بوم نقاشی» را آشکار می‌کند به‌جای آن «محدوده بوم نقاشی» را آشکار می‌کند. این کار نیاز مصرف‌کنندگان به نگهداری اشیاء Paint خود را برطرف می‌کند. مصرف‌کنندگانی که هنوز به Canvas نیاز دارند می‌توانند از روش افزونه drawCanvas استفاده کنند که برای صدور فرمان‌های طراحی با Canvas زیرین بازخوانی ارائه می‌دهد. (I80afd)

  • ‫AlignmentLineOffset قابل ترکیب منسوخ شده است، لطفاً درعوض از اصلاح‌گر relativePaddingFrom()‎ استفاده کنید. ترکیب‌کننده CenterAlignmentLine برداشته شد. (I60107)

  • «میانای برنامه‌سازی کاربردی» لامبدای انتهایی WithConstraints تغییر کرده است. اکنون به‌جای دو پارامتر، حوزه گیرنده‌ای دارد که علاوه‌بر محدودیت‌ها و layoutDirection، ویژگی‌های minWidth،‏ maxWidth،‏ minHeight، و maxHeight را در Dp ارائه می‌دهد (I91b9a، b/149979702)

  • اصلاحگر چیدمان defaultMinSizeConstraints اضافه شد که محدودیت‌های اندازه را فقط زمانی برای چیدمان پیچیده تنظیم می‌کند که محدودیت‌های متناظر ورودی نامشخص باشد (۰ برای محدودیت‌های حداقل و بی‌نهایت برای محدودیت‌های حداکثر). (I311ea، b/150460257)

  • ‫FocusManagerAmbient برداشته شد. برای دریافت تمرکز، از FocusModifier.requestFocus استفاده کنید. (Ic4826)

  • ‫CanvasScope API ایجاد شد که شیء Canvas را می‌پیچد تا سطح API طراحی بی‌حالت و بیانی را نمایان کند. تبدیل‌ها در محدوده گیرنده خودشان قرار دارند و اطلاعات اندازه نیز به محدوده درج مربوطه محدود می‌شود. برای پیکربندی عملیات طراحی، نیازی نیست که مصرف‌کننده شیء وضعیت Paint خود را حفظ کند.

    ‫CanvasScopeSample اضافه شد و همچنین برنامه نمایشی به‌روزرسانی شد تا شامل نمایش گرافیک بیانی (Ifd86d) شود

  • افزودن سفارشی‌سازی رنگ مکان‌نما به «فیلد نوشتاری» (I6e33f)

  • ‫TextFieldValue که با TextField استفاده می‌شود اکنون می‌تواند هنگام استفاده به این شکل، از بازآفرینی فعالیت جان سالم به‌در ببرد: var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() } (I5c3ce،‏ b/155075724)

  • نام LayoutModifier2 به LayoutModifier تغییر کرد. (Id29f3)

  • واسط LayoutModifier منسوخ‌شده برداشته شد. (I2a9d6)

  • پارامتر CoreTextField/TextField focusIdentifier با FocusNode جایگزین شد تا با زیرسیستم کانونی کردن یکپارچه شود. (I7ea48)

  • توابع اندازه‌گیری ذاتی در Layout و LayoutModifier2 اکنون گیرنده IntrinsicMeasureScope دارند که میانای برنامه‌سازی کاربردی پُرسمان ذاتی را با جهت چیدمان ضمنی منتشرشده ارائه می‌دهد. (Id9945)

  • ‫Modifier.zIndex() جدید برای کنترل ترتیب رسم فرزندان در چیدمان والد یکسان اضافه شده است. دارایی ارتفاع در DrawLayerModifier به shadowElevation تغییر نام داده است و دیگر ترتیب رسم را کنترل نمی‌کند. ترتیب پارامترهای DrawShadow تغییر کرده است: اکنون ارتفاع اولین پارامتر و شکل دومین پارامتر با پیش‌فرض RectangleShape است. (I20150, b/152417501)

  • RectangleShape از androidx.ui.foundation.shape.* به androidx.ui.graphics.* منتقل شد (Ia74d5،‏ b/154507984)

  • به‌روزرسانی «میانای برنامه‌سازی کاربردی فیلد نوشتاری» - ادغام کردن پاسخ‌برهای onFocus و onBlur در پاسخ‌بر onFocusChange(Boolean) واحد با پارامتر (I66cd3)

  • پارامترهای verticalGravity و horizontalGravity را به ترتیب به «ردیف» و «ستون» اضافه کرد. (I7dc5a)

  • ‫wrapContentWidth و wrapContentHeight به‌روزرسانی شدند تا به‌جای هر «ترازی»، «تراز» عمودی یا افقی را انتظار داشته باشند. «تعدیل‌کننده جاذبه» به‌روزرسانی شد تا «تراز» عمودی یا افقی را بپذیرد. «ردیف»، «ستون»، و «پشته» به‌روزرسانی شدند تا از «ترازهای» پیوسته سفارشی پشتیبانی کنند. (Ib0728)

  • «میانای برنامه‌سازی کاربردی PixelMap» برای پشتیبانی از پرسش اطلاعات پیکسل از «دارایی تصویر» ایجاد شد. (I69ad6)

  • «ارائه رنگ محتوا» را برمی‌دارد، به‌جای آن فقط از «رنگ محیط محتوا» مستقیماً با Providers (Iee942) استفاده کنید

  • واحد ui-text-compose به ui-text تغییر نام داد. ui-text اکنون شامل عناصر ترکیب‌پذیر CoreText و CoreTextField است (Ib7d47)

  • نام واحد ui-text به ui-text-core تغییر کرد (I57dec)

  • ترکیب‌پذیرهای ui-framework/CoreText،‏ CoreTextField به ui-text-compose منتقل شد. بهتر است ui-text-compose را در پروژه‌تان بگنجانید. (I32042)

  • بهبود دادن DrawModifier API:

    • محدوده گیرنده را برای draw() به ContentDrawScope تغییر داد
    • همه پارامترهای draw() برداشته شد
    • ‫DrawScope همان رابط کاربری CanvasScope سابق را دارد
    • ‫ContentDrawScope روش drawContent() دارد (Ibaced، b/152919067)
  • ‫runOnIdleCompose و runOnUiThread اکنون کارکردهای سراسری هستند به‌جای روش‌هایی در ComposeTestRule. (Icbe8f)

  • عملگرهای نماینده دارایی [Mutable]State به افزونه‌ها منتقل شدند تا از بهینه‌سازی‌های نماینده دارایی Kotlin 1.4 پشتیبانی کنند. برای ادامه استفاده از by state { ... } یا by mutableStateOf(...)، تماس‌گیرندگان باید وارد کردن‌ها را اضافه کنند. ‫(I5312c)

  • ‫positionInParent و boundsInParent را برای LayoutCoordinates اضافه کرد. (Icacdd، b/152735784)

  • ‫ColoredRect منسوخ شده است. درعوض از Box(Modifier.preferredSize(width, height).drawBackground(color))‎ استفاده کنید. (I499fa، b/152753731)

  • نام LayoutResult به MeasureResult تغییر کرد. (Id8c68)

  • ‫LayoutModifier2، میانای برنامه‌سازی کاربردی جدیدی برای تعریف اصلاح‌کننده‌های چیدمان، اضافه شد؛ ‫LayoutModifier (If32ac) منسوخ شد

  • جایگزین کردن «اصلاح‌گر به‌علاوه اپراتور» با توابع افزونه کارخانه (I225e4)

  • «کشیدنی» به اصلاح‌گر منتقل شده است (Id9b16، b/151959544)

  • ‫ParentData ترکیبی منسوخ شده است. باید اصلاح‌گری بسازید که رابط ParentDataModifier را پیاده‌سازی کند، یا اگر فقط نیاز دارید فرزندان چیدمان را برچسب‌گذاری کنید تا در بلوک اندازه‌گیری شناسایی شوند، از اصلاح‌گر LayoutTag استفاده کنید. (I51368،‏ b/150953183)

  • ترکیب‌بندی Center منسوخ شده است. باید با اصلاح‌گر LayoutSize.Fill + LayoutAlign.Center یا با یکی از تابع‌های ترکیب‌پذیر Box یا Stack با اصلاح‌گرهای مناسب اعمال‌شده جایگزین شود (Idf5e0)

  • ‫VectorPainter API اضافه شد تا جایگزین میانای برنامه‌سازی کاربردی زیرترکیب موجود برای گرافیک برداری شود. نتیجه زیرترکیب یک شیء VectorPainter به‌جای DrawModifier است. ترکیب‌های قبلی منسوخ‌شده DrawVector به‌نفع VectorPainter.

    نام «میانای برنامه کاربردی تصویر(نقاش)» به «جعبه رنگ(نقاش)» تغییر کرد عنصر ترکیبی «برداری» ایجاد شد که مانند عنصر ترکیبی «تصویر» عمل می‌کند، با این تفاوت که به‌جای «دارایی تصویر» از «دارایی برداری» استفاده می‌کند (I9af9a، b/149030271)

  • نام LayoutFlexible به LayoutWeight تغییر کرد. نام پارامتر «محکم» به «پر کردن» تغییر کرد. (If4738)

  • ‫RepaintBoundary برداشته شد و DrawLayerModifier جایگزین آن شد (I00aa4)

  • ‫DrawVector از تابع ترکیب‌پذیر معمولی به تابع بازگرداننده Modifier drawVector() تغییر کرده است که بردار را به‌عنوان پس‌زمینه طرح‌بندی رسم می‌کند. (I7b8e0)

  • تابع ترکیب‌پذیر «ماتی» با اصلاح‌گر drawOpacity جایگزین شده است. (I5fb62)

  • جایگزین کردن تابع ترکیب‌شدنی «کلیپ» با اصلاح‌کننده drawClip(). ‏ DrawClipToBounds اصلاح‌کننده مناسبی است که وقتی فقط نیاز دارید با شکل مستطیل به مرزهای لایه کلیپ کنید استفاده می‌شود. (If28eb)

  • تابع ترکیب‌بندی DrawShadow با اصلاح‌کننده drawShadow() جایگزین شد. اکنون سایه‌ها به‌عنوان بخشی از «اصلاح‌کننده لایه» رسم می‌شوند. (I0317a)

  • ‫LayerModifier اضافه شد، اصلاح‌گری که امکان افزودن RenderNode برای Layout را فراهم می‌کند. این ویژگی امکان تنظیم برش، کدری، چرخش، مقیاس‌بندی، و سایه‌ها را فراهم می‌کند. این مورد جایگزین RepaintBoundary خواهد شد. ‫(I7100d،‏ b/150774014)

  • ‫androidx.compose.ViewComposer به androidx.ui.node.UiComposer منتقل شده است ‫androidx.compose.Emittable برداشته شده است. با ComponentNode اضافی بود. androidx.compose.ViewAdapters برداشته شده است. دیگر مورد استفاده پشتیبانی‌شده‌ای نیست. ‫Compose.composeInto منسوخ شده است. درعوض از setContent یا setViewContent استفاده کنید. ‫Compose.disposeComposition منسوخ شده است. به‌جای آن از روش dispose در Composition برگشتی از setContent استفاده کنید. androidx.compose.Compose.subcomposeInto به androidx.ui.core.subcomposeInto منتقل شده است نام ComponentNode#emitInsertAt به ComponentNode#insertAt تغییر کرده است نام ComponentNode#emitRemoveAt به ComponentNode#removeAt تغییر کرده است نام ComponentNode#emitMode به ComponentNode#move تغییر کرده است (Idef00)

  • «ترکیب‌شدنی تصویر ایجادشده» برای مدیریت اندازه‌بندی/چیدمان علاوه‌بر رسم کردن «دارایی تصویر» معین در صفحه. این عنصر ترکیبی همچنین از رسم هر نمونه دلخواه Painter با رعایت اندازه ذاتی آن و همچنین پشتیبانی از اندازه ثابت یا حداقل اندازه معین (Ibcc8f) پشتیبانی می‌کند

  • ‫Wrap composable منسوخ شده است. می‌توان آن را با اصلاح‌گر LayoutAlign یا با عنصر ترکیبی Stack (Ib237f) جایگزین کرد

  • ‫WithConstraints پارامتر LayoutDirection (I6d6f7) را دریافت کرد

  • جهت چیدمان از گره چیدمان والد به فرزندان منتقل می‌شود. اصلاح‌گر جهت چیدمان اضافه شد. ‫(I3d955)

  • عنصر پشته از جهت‌گیری راست‌به‌چپ پشتیبانی می‌کند (Ic9e00)

  • ترکیب‌شونده DrawShape برداشته شد. درعوض از اصلاح‌گر DrawBackground استفاده کنید. (I7ceb2)

  • پشتیبانی از جهت راست‌به‌چپ در اصلاح‌گر LayoutPadding (I9e8da)

  • ‫AdapterList اضافه شد، عنصر فهرست پیمایش‌شدنی که فقط موارد نمایان را می‌سازد و چیدمان می‌کند. مشکلات شناخته‌شده فعلی شامل این است که فقط عمودی است و به‌طور کامل از عهده همه موارد تغییر در فرزندانش برنمی‌آید. (Ib351b)

  • پرچم ComposeFlags.COMPOSER_PARAM به true به‌روز شد که استراتژی تولید کد را برای افزایه نوشتن تغییر خواهد داد. در سطح بالا، این امر باعث می‌شود توابع @Composable با یک پارامتر ترکیبی اضافی تولید شوند که به تماس‌های @Composable بعدی منتقل می‌شود تا زمان اجرا بتواند اجرا را به‌درستی مدیریت کند. این یک تغییر باینری مهم است، بااین‌حال، باید سازگاری سطح منبع را در تمام استفاده‌های مجاز از compose حفظ کند. (I7971c)

  • عنصر «بوم نقاشی» اضافه شد. این عنصر ترکیبی مقداری فضا (ارائه‌شده توسط کاربر) را اشغال می‌کند و به شما امکان می‌دهد بااستفاده از CanvasScope (I0d622) طراحی کنید

  • ‫Density و DensityScope در یک میانای واحد ادغام شدند. اکنون به‌جای ambientDensity() می‌توانید از DensityAmbient.current استفاده کنید. به‌جای withDensity(density) فقط with(density) (I11cb1)

  • ‫LayoutCoordinates تغییر کرد تا providedAlignmentLines به‌جای Map به Set تبدیل شود و LayoutCoordinates عملگر get() را برای بازیابی مقدار پیاده‌سازی کند. این کار باعث می‌شود اصلاح‌گرها بتوانند یک یا چند مقدار مجموعه را بدون ایجاد مجموعه جدید برای هر اصلاح‌گر اصلاح کنند. (I0245a)

  • پیمایشگرها اکنون رفتار حرکت پرتاب بومی Android را نشان می‌دهند. (I922af، b/147493715)

  • بهبودهای سطح API «محدودیت‌ها» (I0fd15)