إنشاء مادة

يمكنك إنشاء واجهات مستخدم Jetpack Compose باستخدام "مكوّنات Material Design" الجاهزة للاستخدام. هذه هي نقطة الدخول الأعلى مستوى في Compose، وهي مصمَّمة لتوفير مكوّنات تتطابق مع تلك الموضّحة في www.material.io.
آخر الأخبار الإصدار الثابت إصدار محتمل الإصدار التجريبي الإصدار الأوّلي
‫2 يوليو 2025 1.8.3 - 1.9.0-beta02 -

البنية

‫Compose هي مجموعة من 7 أرقام تعريف لمجموعات Maven ضِمن androidx. تحتوي كل مجموعة على مجموعة فرعية مستهدَفة من الوظائف، ولكل منها مجموعة خاصة من ملاحظات الإصدار.

يوضّح هذا الجدول المجموعات ويتضمّن روابط لكل مجموعة من ملاحظات الإصدار.

مجموعةالوصف
compose.animationإنشاء رسوم متحركة في تطبيقات Jetpack Compose لإثراء تجربة المستخدم
compose.compilerتحويل دوال ‎ @Composable وتفعيل عمليات التحسين باستخدام مكوّن إضافي لمترجم Kotlin
compose.foundationيمكنك كتابة تطبيقات Jetpack Compose باستخدام وحدات أساسية جاهزة للاستخدام وتوسيع نطاق الأساس لإنشاء عناصر نظام التصميم الخاص بك.
compose.materialيمكنك إنشاء واجهات مستخدم Jetpack Compose باستخدام "مكوّنات Material Design" الجاهزة للاستخدام. هذه هي نقطة الدخول الأعلى مستوى في Compose، وهي مصمَّمة لتوفير مكوّنات تتطابق مع تلك الموضّحة في www.material.io.
compose.material3يمكنك إنشاء واجهات مستخدم Jetpack Compose باستخدام "مكوّنات Material Design 3"، وهي التطوّر التالي في Material Design. يتضمّن الإصدار 3 من Material تصميمات ومكوّنات محدّثة وميزات تخصيص Material You، مثل الألوان الديناميكية، وهو مصمّم ليكون متوافقًا مع الأسلوب المرئي الجديد وواجهة مستخدم النظام في Android 12.
compose.runtimeالوحدات الأساسية لنموذج برمجة Compose وإدارة الحالة، ووقت التشغيل الأساسي الذي يستهدفه مكوّن Compose الإضافي للمترجم.
compose.uiالمكوّنات الأساسية لواجهة مستخدم Compose اللازمة للتفاعل مع الجهاز، بما في ذلك التنسيق والرسم والإدخال

تعريف التبعيات

لإضافة تبعية على Compose، يجب إضافة مستودع Google Maven إلى مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.

أضِف التبعيات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:

رائع

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

لمزيد من المعلومات حول العناصر التابعة، يُرجى الاطّلاع على إضافة عناصر تابعة للإنشاء.

الملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.

إنشاء مشكلة جديدة

يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.

الإصدار 1.9

الإصدار 1.9.0-beta02

‫2 يوليو 2025

تم طرح androidx.compose.material:material-*:1.9.0-beta02. يحتوي الإصدار 1.9.0-beta02 على عمليات الإيداع هذه.

الإصدار 1.9.0-beta01

‫18 يونيو 2025

تم طرح androidx.compose.material:material-*:1.9.0-beta01. يحتوي الإصدار 1.9.0-beta01 على عمليات الإيداع هذه.

إصلاح الأخطاء

  • تتضمّن الروابط التشعّبية في Text(AnnotatedString) الآن تنسيق Material تلقائيًا. (I0e8ed، b/339843816)

الإصدار 1.9.0-alpha04

‫4 يونيو 2025

تم طرح androidx.compose.material:material-*:1.9.0-alpha04. يحتوي الإصدار 1.9.0-alpha04 على عمليات الدمج هذه.

الإصدار 1.9.0-alpha03

‫20 مايو 2025

تم طرح androidx.compose.material:material-*:1.9.0-alpha03. يحتوي الإصدار 1.9.0-alpha03 على عمليات الدمج هذه.

الإصدار 1.9.0-alpha02

‫7 مايو 2025

تم طرح androidx.compose.material:material-*:1.9.0-alpha02. يحتوي الإصدار 1.9.0-alpha02 على عمليات الدمج هذه.

الإصدار 1.9.0-alpha01

‫23 أبريل 2025

تم طرح androidx.compose.material:material-*:1.9.0-alpha01. يحتوي الإصدار 1.9.0-alpha01 على عمليات الدمج هذه.

التغييرات في السلوك

  • تتطلّب عمليات التحقّق من Lint التي يتم شحنها مع Compose الآن توفُّر الإصدار 8.8.2 من "مكوّن Android الإضافي لنظام Gradle" كحد أدنى. إذا لم تتمكّن من ترقية AGP، يمكنك بدلاً من ذلك ترقية Lint بمفرده باستخدام android.experimental.lint.version=8.8.2 (أو إصدار أحدث) في gradle.properties. لتشغيل عمليات التحقّق من أخطاء Compose البرمجية داخل بيئة التطوير المتكاملة، يجب استخدام Android Studio Ladybug أو إصدار أحدث.

تغييرات واجهة برمجة التطبيقات

  • تتطلّب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام الإصدار 2.0.0 أو إصدار أحدث من KGP. (Idb6b5)
  • لم تعُد واجهات برمجة التطبيقات الخاصة بمربّعات تزيين حقول النص تجريبية (I7480f وb/269651160)
  • إيقاف runWithTimingDisabled نهائيًا واستخدام runWithMeasurementDisabled بدلاً منه، لأنّه يصف السلوك بشكلٍ أوضح، أي أنّه يتم إيقاف جميع المقاييس مؤقتًا. بالإضافة إلى ذلك، يجب عرض الفئة الرئيسية MicrobenchmarkScope لأنّه لا يمكن إعادة تعريف الدالة runWithMeasurementDisabled لفتح الوصول، لأنّها مضمّنة. (I9e23b، b/389149423، b/149979716)

إصلاح الأخطاء

  • ExposedDropdownMenu متوافق مع الإصدارات القديمة. (I133f7)
  • تم إصلاح عُطل في مؤشّري التقدّم والتحميل في حال تم تمرير Float.NaN كتقدّم. (I4fa96، b/352364576)

الإصدار 1.8

الإصدار 1.8.3

‫18 يونيو 2025

تم طرح androidx.compose.material:material-*:1.8.3. يحتوي الإصدار 1.8.3 على عمليات الدمج هذه.

الإصدار 1.8.2

‫20 مايو 2025

تم طرح androidx.compose.material:material-*:1.8.2. يحتوي الإصدار 1.8.2 على عمليات الدمج هذه.

الإصدار 1.8.1

‫7 مايو 2025

تم طرح androidx.compose.material:material-*:1.8.1. يحتوي الإصدار 1.8.1 على عمليات الدمج هذه.

الإصدار 1.8.0

‫23 أبريل 2025

تم طرح androidx.compose.material:material-*:1.8.0. يتضمّن الإصدار 1.8.0 عمليات الدمج هذه.

الإصدار 1.8.0-rc03

‫9 أبريل 2025

تم طرح androidx.compose.material:material-*:1.8.0-rc03. يحتوي الإصدار 1.8.0-rc03 على عمليات الدمج هذه.

الإصدار 1.8.0-rc02

‫26 مارس 2025

تم طرح androidx.compose.material:material-*:1.8.0-rc02. يحتوي الإصدار 1.8.0-rc02 على عمليات الدمج هذه.

الإصدار 1.8.0-rc01

‫12 مارس 2025

تم طرح androidx.compose.material:material-*:1.8.0-rc01. يحتوي الإصدار 1.8.0-rc01 على عمليات الدمج هذه.

الإصدار 1.8.0-beta03

‫26 فبراير 2025

تم طرح androidx.compose.material:material-*:1.8.0-beta03. يحتوي الإصدار 1.8.0-beta03 على عمليات الإيداع هذه.

الإصدار 1.8.0-beta02

‫12 فبراير 2025

تم طرح androidx.compose.material:material-*:1.8.0-beta02. يحتوي الإصدار 1.8.0-beta02 على عمليات الدمج هذه.

الإصدار 1.8.0-beta01

‫29 يناير 2025

تم طرح androidx.compose.material:material-*:1.8.0-beta01. يحتوي الإصدار 1.8.0-beta01 على عمليات الإيداع هذه.

الإصدار 1.8.0-alpha08

‫15 يناير 2025

تم طرح androidx.compose.material:material-*:1.8.0-alpha08. يحتوي الإصدار 1.8.0-alpha08 على عمليات الدمج هذه.

إصلاح الأخطاء

  • تضيف هذه السمة displayCutout إلى مجموعة الحواف الداخلية التي تأخذها مكونات Material في الاعتبار تلقائيًا، وذلك لتجنُّب تداخل المحتوى مع موضع القطع على الشاشة.
    • هذا تغيير في السلوك سيؤثّر في طريقة عمل المكوّنات التي تتوافق مع الحواف الداخلية حول فتحة الشاشة. ويشمل ذلك القيمة التلقائية للمَعلمة WindowInsets لمكوّنات Material 3 التي تراعي الحواف الداخلية، وقيم WindowInsets المقدَّمة في المكوّن.
    • عناصر تلقائية لكلّ من Material 2 وMaterial 3 إذا تسبّب هذا التغيير في سلوك غير مرغوب فيه، حدِّد المَعلمة WindowInsets يدويًا على أساس كل مكوّن. (I43ee9، b/362508045)
  • يستخدم النشاط الذي يتم استخدامه كمضيف للعنصر القابل للإنشاء قيد الاختبار عند استخدام ComposeContentTestRule.setContent الآن المظهر Theme.Material.Light.NoActionBar، وذلك لتجنُّب تداخل ActionBar مع محتوى الاختبار عند استهداف الإصدار 35 من حزمة تطوير البرامج (SDK). لإيقاف هذا السلوك، يمكنك إزالة التبعية في ui-test-manifest وإضافة إدخال نشاط في AndroidManifest.xml لتطبيق الاختبار من أجل ComponentActivity باستخدام السمة التي تختارها. (I7ae1b، b/383368165)

المساهمة الخارجية

الإصدار 1.8.0-alpha07

‫11 ديسمبر 2024

تم طرح androidx.compose.material:material-*:1.8.0-alpha07. يحتوي الإصدار 1.8.0-alpha07 على عمليات الدمج هذه.

إصلاح الأخطاء

  • إصلاح مشكلة عدم اتّباع عناصر تعديل حجم الحقل النصي في بعض الأحيان (I90d4c، b/356905963)

الإصدار 1.8.0-alpha06

‫13 نوفمبر 2024

تم طرح androidx.compose.material:material-*:1.8.0-alpha06. يحتوي الإصدار 1.8.0-alpha06 على عمليات الدمج هذه.

الإصدار 1.8.0-alpha05

‫30 أكتوبر 2024

تم طرح androidx.compose.material:material-*:1.8.0-alpha05. يحتوي الإصدار 1.8.0-alpha05 على عمليات الدمج هذه.

إصلاح الأخطاء

  • تحسين سلوك contentPadding لتجنُّب إعادة إنشاء محتوى النص الأساسي دائمًا عند تغيير contentPadding (I8c8e2، b/373904168)
  • اجعل شريط التمرير Material Slider يغيّر قيمته عند الضغط على مفاتيح التحكّم. (I1c442)

الإصدار 1.8.0-alpha04

‫16 أكتوبر 2024

تم طرح androidx.compose.material:material-*:1.8.0-alpha04. يحتوي الإصدار 1.8.0-alpha04 على عمليات الدمج هذه.

تغييرات واجهة برمجة التطبيقات

  • أزِل readOnly من TextFields' لتثبيت الإصدار الأساسي الثابت. (I3aaba)

إصلاح الأخطاء

  • تضيف هذه السمة إمكانية إنشاء تموّجات في العناصر الموسّعة على Android S+‎، مثل بطاقة تتوسّع عند النقر عليها. في السابق، لم تكن التموجات تملأ الحجم الجديد، ولكنها ستتوسع الآن لتناسب الحدود الجديدة. (If509a، b/183019123)

الإصدار 1.8.0-alpha02

‫18 سبتمبر 2024

تم طرح androidx.compose.material:material-*:1.8.0-alpha02. يحتوي الإصدار 1.8.0-alpha02 على عمليات الدمج هذه.

الإصدار 1.8.0-alpha01

‫4 سبتمبر 2024

تم طرح androidx.compose.material:material-*:1.8.0-alpha01. يحتوي الإصدار 1.8.0-alpha01 على عمليات الدمج هذه.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة أداة إنشاء NavGraphBuilder.bottomSheet جديدة لإنشاء bottomSheet باستخدام وسيطات آمنة ((I28589 وI777db وb/351858980))
  • تمت إضافة عمليات تحميل زائدة جديدة TextField وOutlinedTextField تأخذ TextFieldState (I3b74c)

الإصدار 1.7

الإصدار 1.7.8

‫12 فبراير 2025

تم طرح androidx.compose.material:material-*:1.7.8. يحتوي الإصدار 1.7.8 على عمليات الدمج هذه.

الإصدار 1.7.7

‫29 يناير 2025

تم طرح androidx.compose.material:material-*:1.7.7. ما مِن تغييرات مقارنةً بالإصدار 1.7.6.

الإصدار 1.7.6

‫11 ديسمبر 2024

تم طرح androidx.compose.material:material-*:1.7.6. يحتوي الإصدار 1.7.6 على عمليات الدمج هذه.

الإصدار 1.7.5

‫30 أكتوبر 2024

تم طرح androidx.compose.material:material-*:1.7.5. يحتوي الإصدار 1.7.5 على عمليات الدمج هذه.

الإصدار 1.7.4

‫16 أكتوبر 2024

تم طرح androidx.compose.material:material-*:1.7.4. يحتوي الإصدار 1.7.4 على عمليات الدمج هذه.

الإصدار 1.7.2

‫18 سبتمبر 2024

تم طرح androidx.compose.material:material-*:1.7.2. يحتوي الإصدار 1.7.2 على عمليات الدمج هذه.

الإصدار 1.7.1

‫10 سبتمبر 2024

  • لم يتم إجراء أي تغييرات على عناصر Android. تمت إزالة -desktop من العناصر وإضافة -jvmStubs و-linuxx64Stubs من العناصر. لا يُفترض استخدام أي من هذه الأهداف، بل هي عناصر نائبة للمساعدة في جهود Jetbrains Compose.

الإصدار 1.7.0

‫4 سبتمبر 2024

تم طرح androidx.compose.material:material-*:1.7.0. يحتوي الإصدار 1.7.0 على عمليات الدمج هذه.

التغييرات المهمة منذ الإصدار 1.6.0

  • تم نقل مكونات Material لاستخدام واجهات برمجة التطبيقات الجديدة الخاصة بالتموج، ولم تعُد تستعلم عن RippleTheme.
  • إنّ مكوّنات Material التي كانت تقبل سابقًا MutableInteractionSource وتستخدِم القيمة التلقائية remember { MutableInteractionSource() } تقبل الآن قيمة MutableInteractionSource قابلة للقيم الفارغة وتستخدِم القيمة التلقائية null بدلاً من ذلك. إذا لم تكن تستخدم MutableInteractionSource، يجب تمرير قيمة فارغة. يتيح ذلك لبعض المكوّنات إنشاء مثيل بشكل غير مباشر عند الحاجة فقط، ما يؤدي إلى تحسين الأداء. يُنصح أيضًا بإجراء تغييرات مماثلة في مكوّناتك.
  • تمت ترقية BottomDrawer وModalBottomSheet وBackdropScaffold وBottomsheet العادي إلى واجهة برمجة تطبيقات ثابتة.

الإصدار 1.7.0-rc01

‫21 أغسطس 2024

تم طرح androidx.compose.material:material-*:1.7.0-rc01. يحتوي الإصدار 1.7.0-rc01 على عمليات الدمج هذه.

الإصدار 1.7.0-beta07

‫7 أغسطس 2024

تم طرح androidx.compose.material:material-*:1.7.0-beta07. يحتوي الإصدار 1.7.0-beta07 على عمليات الإيداع هذه.

الإصدار 1.7.0-beta06

‫24 يوليو 2024

تم طرح androidx.compose.material:material-*:1.7.0-beta06. يحتوي الإصدار 1.7.0-beta06 على عمليات الإيداع هذه.

الإصدار 1.7.0-beta05

‫10 يوليو 2024

تم طرح androidx.compose.material:material-*:1.7.0-beta05. يحتوي الإصدار 1.7.0-beta05 على عمليات الإيداع هذه.

الإصدار 1.7.0-beta04

‫26 يونيو 2024

تم طرح androidx.compose.material:material-*:1.7.0-beta04. يحتوي الإصدار 1.7.0-beta04 على عمليات الإيداع هذه.

الإصدار 1.7.0-beta03

‫12 يونيو 2024

تم طرح androidx.compose.material:material-*:1.7.0-beta03. يحتوي الإصدار 1.7.0-beta03 على عمليات الإيداع هذه.

الإصدار 1.7.0-beta02

‫29 مايو 2024

تم طرح androidx.compose.material:material-*:1.7.0-beta02. يحتوي الإصدار 1.7.0-beta02 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تعديل واجهة برمجة التطبيقات لتصميم الروابط: تم نقل TextLinkStyles إلى TextStyle وإزالة TextDefaults من Material (I5477b)

الإصدار 1.7.0-beta01

‫14 مايو 2024

تم طرح androidx.compose.material:material-*:1.7.0-beta01. يحتوي الإصدار 1.7.0-beta01 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تم تعديل واجهة برمجة التطبيقات للحصول على روابط متوافقة مع تصميم Material في النص. على وجه التحديد، تمت إزالة الطرق من TextDefaults لإنشاء LinkAnnotations ذات سمات معيّنة وتحليل HTML باستخدام روابط ذات سمات معيّنة. بدلاً من ذلك، تمت إضافة فئة TextLinkStyles تتيح تصميم الروابط كمعلَمة في العنصر Text القابل للإنشاء. (I31b93)

الإصدار 1.7.0-alpha08

‫1 مايو 2024

تم طرح 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

‫17 أبريل 2024

تم طرح 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

‫3 أبريل 2024

تم طرح 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

‫20 مارس 2024

تم طرح androidx.compose.material:material-*:1.7.0-alpha05. يحتوي الإصدار 1.7.0-alpha05 على عمليات الدمج هذه.

تغييرات واجهة برمجة التطبيقات

  • تمت إزالة العلامة ScaffoldSubcomposeInMeasureFix. (I67363)

الإصدار 1.7.0-alpha04

‫6 مارس 2024

تم طرح androidx.compose.material:material-*:1.7.0-alpha04. يحتوي الإصدار 1.7.0-alpha04 على عمليات الدمج هذه.

الميزات الجديدة

الإصدار 1.7.0-alpha03

‫21 فبراير 2024

تم طرح androidx.compose.material:material-*:1.7.0-alpha03. يحتوي الإصدار 1.7.0-alpha03 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تمت ترقية BottomDrawer من إصدار تجريبي إلى إصدار ثابت. تعرض السمة BottomDrawerState الآن مستوى التقدّم كدالة، ما يسمح بالاستعلام عن مستوى التقدّم بين أهداف معيّنة. تسمح السمة BottomDrawerState الآن بتخصيص مواصفات الحركة، ولم تعُد السمة confirmStateChange تعبير lambda لاحقًا. (I9c029، b/261423850)
  • تمت ترقية BackdropScaffold من إصدار تجريبي إلى إصدار ثابت. أصبحت مواصفات الصورة المتحركة الآن مواصفات tween وفقًا للإرشادات. لم تعُد المَعلمة snackbarHost الخاصة بـ BackdropScaffold هي المَعلمة الأخيرة لتجنُّب الخلط بينها وبين تعابير lambda اللاحقة. تعرض 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

‫7 فبراير 2024

تم طرح androidx.compose.material:material-*:1.7.0-alpha02. يتضمّن الإصدار 1.7.0-alpha02 عمليات الإيداع هذه.

الإصدار 1.7.0-alpha01

‫24 يناير 2024

تم طرح androidx.compose.material:material-*:1.7.0-alpha01. يحتوي الإصدار 1.7.0-alpha01 على عمليات الإيداع هذه.

التغييرات في السلوك

  • تم نقل مكونات Material لاستخدام واجهات برمجة التطبيقات الجديدة الخاصة بالتموج، ولم تعُد تستعلم عن RippleTheme.

تغييرات واجهة برمجة التطبيقات

  • تم إيقاف rememberRipple وRippleTheme نهائيًا من material-ripple، وتمت إضافة واجهات برمجة تطبيقات جديدة خاصة بالتموّج وRippleConfiguration إلى Material ومكتبات أخرى لنظام التصميم.

  • إنّ مكوّنات Material التي كانت تقبل سابقًا MutableInteractionSource وتتذكر { MutableInteractionSource() } تلقائيًا تقبل الآن MutableInteractionSource قابلة للقيم الخالية وتضبط القيمة التلقائية على القيمة الخالية بدلاً من ذلك. إذا لم تكن تستخدم MutableInteractionSource، يجب تمرير قيمة فارغة. يتيح ذلك لبعض المكوّنات إنشاء مثيل بشكل غير مباشر عند الحاجة فقط، ما يؤدي إلى تحسين الأداء. يُنصح أيضًا بإجراء تغييرات مماثلة في مكوّناتك.

الإصدار 1.6

الإصدار 1.6.8

‫12 يونيو 2024

تم طرح androidx.compose.material:material-*:1.6.8. يحتوي الإصدار 1.6.8 على عمليات الدمج هذه.

الإصدار 1.6.7

‫1 مايو 2024

تم طرح androidx.compose.material:material-*:1.6.7. يحتوي الإصدار 1.6.7 على عمليات الدمج هذه.

الإصدار 1.6.6

‫17 أبريل 2024

تم طرح androidx.compose.material:material-*:1.6.6. لم يتم إجراء أي تغييرات منذ الإصدار الأخير.

الإصدار 1.6.5

‫3 أبريل 2024

تم طرح androidx.compose.material:material-*:1.6.5. يحتوي الإصدار 1.6.5 على عمليات الدمج هذه.

الإصدار 1.6.4

‫20 مارس 2024

تم طرح androidx.compose.material:material-*:1.6.4. يحتوي الإصدار 1.6.4 على عمليات الدمج هذه.

الإصدار 1.6.3

‫6 مارس 2024

تم طرح androidx.compose.material:material-*:1.6.3. يحتوي الإصدار 1.6.3 على عمليات الدمج هذه.

إصلاح الأخطاء

  • إصلاح مشكلة تراجع في ExposedDropdownMenu لجعلها قابلة للتركيز مرة أخرى (c0e0ed، b/323694447)

الإصدار 1.6.2

‫21 فبراير 2024

تم طرح androidx.compose.material:material-*:1.6.2. يتضمّن الإصدار 1.6.2 عمليات الإيداع هذه.

الإصدار 1.6.1

‫7 فبراير 2024

تم طرح androidx.compose.material:material-*:1.6.1. يحتوي الإصدار 1.6.1 على عمليات الدمج هذه.

الإصدار 1.6.0

‫24 يناير 2024

تم طرح androidx.compose.material:material-*:1.6.0. يحتوي الإصدار 1.6.0 على عمليات الدمج هذه.

الإصدار 1.6.0-rc01

‫10 يناير 2024

تم طرح androidx.compose.material:material-*:1.6.0-rc01. يحتوي الإصدار 1.6.0-rc01 على عمليات الإيداع هذه.

الإصدار 1.6.0-beta03

‫13 كانون الأول (ديسمبر) 2023

تم طرح androidx.compose.material:material-*:1.6.0-beta03. يحتوي الإصدار 1.6.0-beta03 على عمليات الإيداع هذه.

الإصدار 1.6.0-beta02

‫29 نوفمبر 2023

تم طرح androidx.compose.material:material-*:1.6.0-beta02. يحتوي الإصدار 1.6.0-beta02 على عمليات الإيداع هذه.

الإصدار 1.6.0-beta01

‫15 تشرين الثاني (نوفمبر) 2023

تم طرح androidx.compose.material:material-*:1.6.0-beta01. يحتوي الإصدار 1.6.0-beta01 على عمليات الإيداع هذه.

الإصدار 1.6.0-alpha08

‫18 أكتوبر 2023

تم طرح androidx.compose.material:material-*:1.6.0-alpha08. يحتوي الإصدار 1.6.0-alpha08 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • إيقاف الدالة materialIcon نهائيًا واستخدام الدالة التي تتضمّن معلَمة autoMirror بدلاً منها (Ia338d)

إصلاح الأخطاء - زيادة ارتفاع عنصر شريط التنقّل تلقائيًا عند عرض محتوى كبير (0c4ecc، b/272336962)

الإصدار 1.6.0-alpha07

‫4 أكتوبر 2023

تم طرح androidx.compose.material:material-*:1.6.0-alpha07. يحتوي الإصدار 1.6.0-alpha07 على عمليات الإيداع هذه.

  • تحديثات التبعيات

الإصدار 1.6.0-alpha06

‫20 سبتمبر 2023

تم طرح androidx.compose.material:material-*:1.6.0-alpha06. يحتوي الإصدار 1.6.0-alpha06 على عمليات الإيداع هذه.

تغيير في السلوك قد يؤدي إلى أعطال

  • تمت إزالة الوظائف ذات الصلة بلوحة التنقّل من BottomSheetScaffold. يمكنك تضمين BottomSheetScaffold في عنصر Drawer قابل للإنشاء لتحقيق الوظيفة السابقة. يمكنك الاطّلاع على BottomSheetScaffoldWithDrawerSample مثلاً. (I1dcc8)

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة علامة مؤقتة للتحكّم في ما إذا كان يجب أن تقيس أداة Scaffold عناصرها الثانوية أثناء القياس أو أثناء التنسيق. سيتم قياس هذا المقياس تلقائيًا. إذا كنت تواجه مشاكل في السلوك الجديد، يُرجى إبلاغنا عن المشكلة. (If6e3b)

الإصدار 1.6.0-alpha05

‫6 سبتمبر 2023

تم طرح 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

‫23 أغسطس 2023

تم طرح androidx.compose.material:material-*:1.6.0-alpha04. يحتوي الإصدار 1.6.0-alpha04 على عمليات الإيداع هذه.

إصلاح الأخطاء

  • تم إصلاح المشكلة التي كانت تتسبب في محاولة بعض المكوّنات التي تستخدم Subcomposition (مثل BottomSheetScaffold) داخل Scaffold داخل LookaheadScope في قراءة حجمها في وقت مبكر جدًا. (If2c5d)
  • تم إصلاح عملية احتساب DropdownMenu في offset، وبالتالي تعتمد إزاحات x فقط على اتجاه التنسيق المحلي، ولن يتم عكس إزاحات y عندما تكون القائمة بالقرب من أسفل الشاشة. (Iccc74، b/294103942)
  • تم تحسين الأجزاء الداخلية لتنسيق BottomSheetScaffold وتم حلّ مشكلة محتملة في BottomSheetScaffold داخل LookaheadLayout. (Ic0afa)

الإصدار 1.6.0-alpha03

‫9 أغسطس 2023

تم طرح androidx.compose.material:material-*:1.6.0-alpha03. يحتوي الإصدار 1.6.0-alpha03 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تتضمّن مكوّنات Material2 الآن واجهة برمجة تطبيقات منفصلة لتمرير windowInsets من أجل إتاحة وظيفة العرض من الحافة إلى الحافة في Android. على عكس مكوّنات Material3، لا تتوافق مكوّنات Material2 مع الحواف الداخلية تلقائيًا، ويجب تمرير القيمة يدويًا. يُرجى الرجوع إلى النماذج ذات الصلة للحصول على إرشادات. (I655e8)

الإصدار 1.6.0-alpha02

‫26 يوليو 2023

تم طرح androidx.compose.material:material-*:1.6.0-alpha02. يحتوي الإصدار 1.6.0-alpha02 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • سننقل الاعتماد على الكثافة إلى مستوى المكوّن. ينطبق ذلك على المكوّنات التالية: SwipeToDismiss والمكوّنات المستندة إلى جداول البيانات. يُرجى استخدام التحميل الزائد الجديد الذي يتم فيه توفير الكثافة كمَعلمة. (I1846e)
  • تعليقات توضيحية إضافية لتحديد المدخلات المسموح بها للعناصر القابلة للإنشاء (I51109)
  • تم تعديل ملفات واجهة برمجة التطبيقات لإضافة تعليقات توضيحية بشأن إيقاف التوافق (I8e87a، b/287516207)
  • تمت إضافة محاذاة "البدء" الجديدة إلى FabPosition (Ib7aea، b/170592777)
  • تم إيقاف TextFieldColorsWithIcons في Material 2 نهائيًا لصالح TextFieldColors. عند إلغاء leadingIconColor أو trailingIconColor، عليك أيضًا إلغاء التحميل الزائد باستخدام interactionSource. (Id57ed، b/199377790)

الإصدار 1.6.0-alpha01

‫21 حزيران (يونيو) 2023

تم طرح androidx.compose.material:material-*:1.6.0-alpha01. يحتوي الإصدار 1.6.0-alpha01 على عمليات الإيداع هذه.

التغييرات في السلوك

  • أصبح includeFontPadding الآن false تلقائيًا في الكتابة في Material 2. تم أيضًا تغيير نمط ارتفاع السطر التلقائي إلى Trim.None وAlignment.Center، وتمت إضافة lineHeight (بالوحدات المستقلة عن الكثافة) الصريحة إلى TextStyle في Typography. راجِع مستندات واجهة برمجة التطبيقات إذا أردت تخصيص هذه القيم، واطّلِع على مشاركة المدونة للحصول على شرح مفصّل لهذه التغييرات. (Icabc3 وI3f801 وI04c03)

تغييرات واجهة برمجة التطبيقات

  • تم إيقاف واجهات برمجة التطبيقات Swipeable الخاصة بالمواد نهائيًا. يُرجى الرجوع إلى واجهات برمجة التطبيقات في Foundation التي تم تحسينها لحالات الاستخدام البسيطة والمعقّدة.AnchoredDraggable (I732e0)

إصلاح الأخطاء

  • تعرض الآن كل من BottomSheetState وModalBottomSheetState وBottomDrawerState سمة تقدّم تشير إلى مستوى التقدّم بين نقطة الارتكاز الحالية (المستقرة) وأقرب نقطة ارتكاز في اتجاه التمرير السريع. (I1b317 وb/271169225 وb/276375124 وb/276776071 وb/270066861)

الإصدار 1.5

الإصدار 1.5.4

‫18 أكتوبر 2023

تم طرح androidx.compose.material:material-*:1.5.4. يحتوي الإصدار 1.5.4 على عمليات الإيداع هذه.

الإصدار 1.5.3

‫4 أكتوبر 2023

تم طرح androidx.compose.material:material-*:1.5.3. لا يتضمّن هذا الإصدار أي تغييرات

الإصدار 1.5.2

‫27 سبتمبر 2023

تم طرح androidx.compose.material:material-*:1.5.2. يحتوي الإصدار 1.5.2 على عمليات الإيداع هذه.

الإصدار 1.5.1

‫6 سبتمبر 2023

تم إصدار androidx.compose.material:material-*:1.5.1 بدون أي تغييرات. يحتوي الإصدار 1.5.1 على عمليات الدمج هذه.

الإصدار 1.5.0

‫9 أغسطس 2023

تم طرح androidx.compose.material:material-*:1.5.0. يحتوي الإصدار 1.5.0 على عمليات الإيداع هذه.

التغييرات المهمة منذ الإصدار 1.4.0

تغييرات واجهة برمجة التطبيقات

  • تم دمج التغييرات في واجهات برمجة تطبيقات Swipeable1 في BottomSheetScaffold. تمت إعادة تسمية المَعلمة confirmStateChange الخاصة بـ BottomSheetState لتصبح confirmValueChange. يتم الآن عرض progress كقيمة عائمة. animateTo وsnapTo هما سمتان داخلية. استخدِم expand() وcollapse() بدلاً منها. تمت إزالة direction وoverflow. تم استبدال offset بـ requireOffset(). I323b4
  • وضع علامة على الدالة snapTo في Drawer للإشارة إلى أنّها ليست واجهة برمجة تطبيقات تجريبية (Ib9c18، b/261425368)
  • تمت إضافة مَعلمة لون المسار لمؤشرات التقدم الدائرية، ومَعلمة غطاء نهاية الخط لكلّ من مؤشرات التقدم الدائرية والخطية. (Ie668c، b/216325962، b/222964817)
  • تمت إعادة تسمية confirmStateChange في ModalBottomSheetState وModalBottomSheetState.Saver وrememberModalBottomSheetState إلى confirmValueChange. (Ib48d1)
  • أضِف Modifier.minimumInteractiveComponentSize. يمكن استخدامها لحجز مساحة لا تقلّ عن 48 بكسل مستقل الكثافة (dp) لتوضيح التفاعلات باللمس إذا كان قياس العنصر أصغر. (I33f58، b/258495559)
  • تم دمج التغييرات في واجهات برمجة التطبيقات التي يمكن التمرير سريعًا فيها في ModalBottomSheetLayout. لم تعُد الدالة animateTo في ModalBottomSheetState تقبل المَعلمة animationSpec، وأصبحت قيمة الإزاحة المعروضة تقبل القيم الخالية. استخدِم requireOffset لطلب الإزاحة. (Ia2e79)
  • إضافة تعليق توضيحي @JvmDefaultWithCompatibility (I8f206)
  • تم دمج التغييرات في واجهات برمجة التطبيقات التي يمكن التمرير السريع فيها في animateTo من ModalDrawer. DrawerState، وتم استبدالها بطريقتَي الفتح والإغلاق، وأصبح الإزاحة الآن تقبل القيم الفارغة. استخدِم requireOffset لطلب الإزاحة. (I3de9e)
  • تم تعديل الأدراج وأوراق البيانات لتأخير الضغطات بشكل صحيح في حال إمكانية تحوّل الإيماءات إلى أحداث تمرير.
  • تمت إضافة المَعلمة minLines إلى النص في Material وMaterial3، وTextField وOutlinedTextField، ما يتيح ضبط الحد الأدنى لارتفاع المكوّن من حيث عدد الأسطر (I4af1d)

إصلاح الأخطاء

  • تم إصلاح مشكلة عدم استهلاك pullRefresh للسرعة، ما يؤدي إلى ظهور التمرير السريع. تم أيضًا تغيير توقيع واجهة برمجة التطبيقات للدالة lambda onRelease في Modifier.pullRefresh لعرض قيمة Float للسرعة المستهلكة (I7db65، b/266874741)
  • تعرض الآن كل من BottomSheetState وModalBottomSheetState وBottomDrawerState سمة تقدّم تشير إلى مستوى التقدّم بين نقطة الارتكاز الحالية (المستقرة) وأقرب نقطة ارتكاز في اتجاه التمرير السريع. (I1b317 وb/271169225 وb/276375124 وb/276776071 وb/270066861)
  • تم إصلاح مشكلة عدم ظهور إجراء الإغلاق AlertDialog أسفل إجراء التأكيد عندما يتم ترتيب الإجراءات فوق بعضها البعض لتناسب عرض مربّع الحوار. يعمل هذا الإصلاح على مواءمة التنفيذ مع مواصفات Material Design. (I029de، b/235454277)
  • لن تشارك BottomSheetScaffold في التمرير المتداخل بعد الآن عندما يتم ضبط gesturesEnabled على "خطأ". (I634f3، b/215403277)
  • تم إصلاح الخطأ الذي كان يؤدي إلى تعطُّل BottomSheetScaffold عند تقديم محتوى فارغ للفتحات. (Ib24a5، b/235588730)
  • إصلاح مشكلة PullRefreshIndicator اعتراض النقرات/أحداث المؤشر (2494256، b/271777421)
  • تم إصلاح مشكلة كانت تؤدي إلى تعطُّل ModalBottomSheetLayout في حالة استخدام غير شائعة عند تغيير اتجاه الشاشة. تعمل الآن الرسوم المتحركة للتنسيق (مثل Modifier.animateContentSize) في محتوى الورقة أو عليها بسلاسة. (I2f981، b/266780234)

الإصدار 1.5.0-rc01

‫26 يوليو 2023

تم طرح androidx.compose.material:material-*:1.5.0-rc01. يحتوي الإصدار 1.5.0-rc01 على عمليات الإيداع هذه.

الإصدار 1.5.0-beta03

‫28 يونيو 2023

تم طرح 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

‫7 يونيو 2023

تم طرح androidx.compose.material:material-*:1.5.0-beta02. يحتوي الإصدار 1.5.0-beta02 على عمليات الإيداع هذه.

الإصدار 1.5.0-beta01

‫24 مايو 2023

تم طرح 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 أسفل إجراء التأكيد عندما يتم ترتيب الإجراءات فوق بعضها البعض لتناسب عرض مربّع الحوار. يعمل هذا الإصلاح على مواءمة التنفيذ مع مواصفات "التصميم المتعدد الأبعاد". (I029de، b/235454277)

الإصدار 1.5.0-alpha04

‫10 مايو 2023

تم طرح androidx.compose.material:material-*:1.5.0-alpha04. يحتوي الإصدار 1.5.0-alpha04 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • سننقل الاعتماد على الكثافة إلى مستوى المكوّن. ينطبق ذلك على المكوّنات التالية: BottomDrawer وModalBottomSheetLayout وBottomSheetScaffold وSwitch وModalDrawer. يُرجى استخدام التحميل الزائد الجديد الذي يتم فيه توفير الكثافة كمَعلمة. (I8fbd8)

الإصدار 1.5.0-alpha03

‫19 أبريل 2023

تم طرح androidx.compose.material:material-*:1.5.0-alpha03. يحتوي الإصدار 1.5.0-alpha03 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تعديل الأجزاء الداخلية من BottomDrawer لاستخدام واجهات برمجة التطبيقات الجديدة SwipeableV2 لهذا السبب، لن يحتوي BottomDrawerState الآن إلا على واجهات برمجة تطبيقات محدّدة على مستوى الفئة، ولن يرث طرقًا أو سمات من SwipeableState. نحن نستخدم التركيب مع SwipeableV2State داخلي. أصبحت الإزاحة الآن سمة نقطة عائمة تقبل القيم الخالية، ولا يزال بإمكانك الوصول إلى القيمة الحالية وقيمة هدف التمرير السريع من خلال سمتَي currentValue وtargetValue. سيظلّ بإمكانك استخدام طرق مستوى الفئة السابقة، مثل open/expand/close والسمات، مثل isOpen/isClosed. (Iad40c، b/178529942، b/220676296)

إصلاح الأخطاء

  • تم تعديل الأجزاء الداخلية لمكوّن "مفتاح التبديل". سيعرض مفتاح التبديل الآن معاينة لأقرب حالة (الحالة المستهدَفة) عند السحب. (Id90d4)
  • تم تحسين المحتوى المتحرّك في الورقة (مثل Modifier.animateContentSize في محتوى الورقة) في BottomSheetScaffold وأصبح يعمل بسلاسة. (Ia913c، b/270518202، b/254446195)
  • لن تشارك BottomSheetScaffold في التمرير المتداخل بعد الآن عندما يتم ضبط gesturesEnabled على false. (I634f3، b/215403277)

الإصدار 1.5.0-alpha02

‫5 أبريل 2023

تم طرح androidx.compose.material:material-*:1.5.0-alpha02. يحتوي الإصدار 1.5.0-alpha02 على عمليات الإيداع هذه.

إصلاح الأخطاء

  • تم إصلاح الخطأ الذي كان يؤدي إلى تعطُّل BottomSheetScaffold عند تقديم محتوى فارغ للفتحات. (Ib24a5، b/235588730)
  • إصلاح المشكلة التي تتسبّب في اعتراض PullRefreshIndicator للنقرات / أحداث المؤشر (2494256، b/271777421)

الإصدار 1.5.0-alpha01

‫22 مارس 2023

تم طرح androidx.compose.material:material-*:1.5.0-alpha01. يحتوي الإصدار 1.5.0-alpha01 على عمليات الإيداع هذه.

إصلاح الأخطاء

  • إضافة نموذج لإعادة تدفّق ChipGroup تعديل المسافة المتروكة الأفقية بين الشرائح الفرعية في نموذج مجموعة الشرائح ذات السطر الواحد لتتوافق مع المواصفات (I3b155)
  • تم إصلاح مشكلة كانت تؤدي إلى تعطُّل ModalBottomSheetLayout في حالة استخدام غير شائعة عند تغيير اتجاه الشاشة. تعمل الآن الرسوم المتحركة للتنسيق (مثل Modifier.animateContentSize) في محتوى الورقة أو عليها بسلاسة. (I2f981، b/266780234)

الإصدار 1.4

الإصدار 1.4.3

‫3 مايو 2023

تم إصدار androidx.compose.material:material-*:1.4.3 بدون أي تغييرات (تمت زيادة رقم الإصدار فقط).

الإصدار 1.4.2

‫19 أبريل 2023

تم طرح androidx.compose.material:material-*:1.4.2. يتضمّن الإصدار 1.4.2 عمليات الإيداع هذه.

الإصدار 1.4.1

‫5 أبريل 2023

تم طرح androidx.compose.material:material-*:1.4.1. يحتوي الإصدار 1.4.1 على عمليات الدمج هذه.

الإصدار 1.4.0

‫22 مارس 2023

تم طرح androidx.compose.material:material-*:1.4.0. يتضمّن الإصدار 1.4.0 عمليات الإيداع هذه.

التغييرات المهمة منذ الإصدار 1.3.0

تغييرات واجهة برمجة التطبيقات

  • أضِف Modifier.minimumInteractiveComponentSize. يمكن استخدامها لحجز مساحة لا تقلّ عن 48 بكسل مستقل الكثافة (dp) لتوضيح التفاعلات باللمس إذا كان قياس العنصر أصغر. (I33f58، b/258495559)
  • تم دمج التغييرات في واجهات برمجة التطبيقات التي يمكن التمرير سريعًا فيها في ModalDrawer. تم استبدال animateTo في DrawerState بالطريقتَين open وclose، وأصبح الإزاحة قابلة للتصغير. استخدِم requireOffset لطلب الإزاحة. (I3de9e)
  • تمت إضافة المَعلمة minLines إلى النص في Material وMaterial3، وTextField وOutlinedTextField، ما يتيح ضبط الحد الأدنى لارتفاع المكوّن من حيث عدد الأسطر (I4af1d)
  • تمت إضافة المَعلمة minLines إلى BasicText وBasicTextField. تتيح هذه السمة ضبط الحد الأدنى لارتفاع العناصر القابلة للإنشاء هذه من حيث عدد الأسطر (I24294 وb/122476634).

الإصدار 1.4.0-rc01

‫8 مارس 2023

تم إصدار androidx.compose.material:material-*:1.4.0-rc01 بدون أي تغييرات. يتضمّن الإصدار 1.4.0-rc01 عمليات الإيداع هذه.

الإصدار 1.4.0-beta02

‫22 فبراير 2023

تم طرح 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)
  • تعديل بسيط على رموز Material الممتدة التي تتضمّن الرموز المعبّأة desktop_mac وdirections وkitchen (I65f5e)

الإصدار 1.4.0-beta01

‫8 شباط (فبراير) 2023

تم طرح androidx.compose.material:material-*:1.4.0-beta01. يحتوي الإصدار 1.4.0-beta01 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تم إصلاح مشكلة عدم استهلاك pullRefresh للسرعة، ما يؤدي إلى ظهور التمرير السريع. تم أيضًا تغيير توقيع واجهة برمجة التطبيقات للدالة lambda onRelease في Modifier.pullRefresh لعرض قيمة Float للسرعة المستهلكة (I7db65، b/266874741)
  • تمت استعادة دالة جلب السمة LocalMinimuTouchTargetEnforcement ووضع علامة عليها على أنّها متوقّفة نهائيًا وإعادة التوجيه إلى LocalMinimumInteractiveComponentEnforcement. (I60dd5)

الإصدار 1.4.0-alpha05

‫25 كانون الثاني (يناير) 2023

تم طرح 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

‫11 يناير 2023

تم طرح androidx.compose.material:material-*:1.4.0-alpha04. يحتوي الإصدار 1.4.0-alpha04 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة السمة الدلالية IsContainer على "المنصات". سيتم استخدام هذه السمة في تغيير لاحق يحدّد ترتيب الانتقال استنادًا إلى المعنى الدلالي للعناصر، مثل المساحات. (I63379)
  • وضع علامة على الدالة snapTo في Drawer للإشارة إلى أنّها ليست واجهة برمجة تطبيقات تجريبية (Ib9c18، b/261425368)
  • تمت إضافة مَعلمة لون المسار لمؤشرات التقدم الدائرية، ومَعلمة غطاء نهاية الخط لكلّ من مؤشرات التقدم الدائرية والخطية. (Ie668c، b/216325962، b/222964817)
  • تمت إعادة تسمية confirmStateChange في ModalBottomSheetState وModalBottomSheetState.Saver وrememberModalBottomSheetState إلى confirmValueChange. (Ib48d1)
  • المزيد من إمكانية قبول القيمة الخالية لأنواع الإرجاع للدوال المتوقفة نهائيًا والمخفية (Ibf7b0)
  • أضِف Modifier.minimumInteractiveComponentSize. يمكن استخدامها لحجز مساحة لا تقلّ عن 48 بكسل مستقل الكثافة (dp) لتوضيح التفاعلات باللمس إذا كان قياس العنصر أصغر. (I33f58، b/258495559)
  • تم دمج التغييرات في واجهات برمجة التطبيقات التي يمكن التمرير سريعًا فيها في ModalBottomSheetLayout. لم يعُد animateTo في ModalBottomSheetState يقبل المَعلمة animationSpec، وأصبحت القيمة offset المعروضة تقبل القيم الخالية. استخدِم requireOffset لطلب offset. (Ia2e79)

إصلاح الأخطاء

  • يبلغ الحد الأقصى لعرض ورقة ModalBottomSheetLayout الآن 640 وحدة بكسل مستقلة عن الكثافة. (I71a4f، b/234927577)
  • تم إصلاح مشكلة عدم تعديل rememberPullRefreshState refreshThreshold وrefreshingOffset بمرور الوقت. (Ifed10، b/263159832)
  • تم الآن ربط مستوى التقدّم في مؤشرات التقدّم بالنطاق المتوقّع بشكل صحيح. (I8a7eb، b/262262727)
  • عندما لم يتلقَّ ModalBottomSheetState أي نقاط ربط بعد، سيعدّل currentValue بدون رسوم متحركة عند طلب snapTo أو animateTo بدلاً من عرض استثناء. (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. هنا تم الإبلاغ عن المشكلة في الأصل. تم إرسال إصلاح، وسيتوفّر في تحديث Compose التالي. كحلّ بديل، يمكنك تحديث مكتبتَي androidx.compose.material وandroidx.compose.material3 إلى أحدث إصدار(1.1.0-alpha04) أو الرجوع إلى الإصدار 1.4.0-alpha03 من androidx.compose.foundation.

الإصدار 1.4.0-alpha03

‫7 كانون الأول (ديسمبر) 2022

تم طرح androidx.compose.material:material-*:1.4.0-alpha03. يحتوي الإصدار 1.4.0-alpha03 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • إضافة تعليق توضيحي @JvmDefaultWithCompatibility (I8f206)
  • تم دمج التغييرات في واجهات برمجة التطبيقات ‎Swipeable في ModalDrawer. تم استبدال animateTo في DrawerState بالطريقتَين open وclose، وأصبح بإمكانك الآن ضبط قيمة فارغة للإزاحة. استخدِم requireOffset لطلب الإزاحة. (I3de9e)
  • تمت إضافة Modifier API للاستعلام عن معلومات التمرير الخاصة بالعناصر الرئيسية. (I2ba9d، b/203141462)
  • يُستخدَم في Clickable لتأخير تفاعلات الضغط بشكل صحيح، عندما يمكن أن تصبح الإيماءات أحداث تمرير.
  • تم إصلاح المشكلة المتمثلة في عدم تأخير Clickables التموجات بشكلٍ صحيح عند استخدامها داخل Scrollable ViewGroup.
  • تم تعديل الأدراج وأوراق البيانات لتأخير الضغطات بشكل صحيح في حال إمكانية تحوّل الإيماءات إلى أحداث تمرير.

إصلاح الأخطاء

  • تم إصلاح مشكلة تعذُّر إيقاف PullRefreshIndicator بعد استدعاء onRefresh، إذا لم يتم تغيير حالة إعادة التحميل إلى "صحيح". (Ie2416، b/248274004)

تحديثات التبعيات

  • تعتمد مكتبتا Compose UI وCompose Material الآن على الإصدار 2.5.1 من Lifecycle. (I05ab0، b/258038814)

الإصدار 1.4.0-alpha02

‫9 نوفمبر 2022

تم طرح androidx.compose.material:material-*:1.4.0-alpha02. يحتوي الإصدار 1.4.0-alpha02 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • يقبل الحقلان awaitFirstDown وwaitForUpOrCancellation الآن القيمة PointerEventPass لتوفير مرونة أكبر. (I7579a، b/212091796)
  • تمت إضافة المَعلمة minLines إلى النص في Material وMaterial3، وTextField وOutlinedTextField، ما يتيح ضبط الحد الأدنى لارتفاع المكوّن من حيث عدد الأسطر (I4af1d)
  • تمت إضافة المَعلمة minLines إلى BasicTex وBasicTextField. تتيح هذه السمة ضبط الحد الأدنى لارتفاع العناصر القابلة للإنشاء هذه من حيث عدد الأسطر (I24294، b/122476634).

الإصدار 1.4.0-alpha01

‫24 أكتوبر 2022

تم طرح androidx.compose.material:material-*:1.4.0-alpha01. يحتوي الإصدار 1.4.0-alpha01 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة طريقة جديدة، awaitEachGesture()، لأدوات رصد الإيماءات. تعمل هذه الطريقة بشكل مشابه للطريقة forEachGesture()، ولكن يتم تنفيذ حلقة الإيماءات بالكامل داخل AwaitPointerEventScope، لذا لا يمكن فقدان الأحداث بين التكرارات.
  • تم إيقاف forEachGesture() نهائيًا واستبداله بـ awaitEachGesture() لأنّه يسمح بفقدان الأحداث بين الإيماءات. (Iffc3f، b/251260206)

الإصدار 1.3

الإصدار 1.3.1

‫9 نوفمبر 2022

تم طرح androidx.compose.material:material-*:1.3.1. يحتوي الإصدار 1.3.1 على عمليات الإيداع هذه.

الإصدار 1.3.0

‫24 أكتوبر 2022

تم طرح androidx.compose.material:material-*:1.3.0. يحتوي الإصدار 1.3.0 على عمليات الإيداع هذه.

التغييرات المهمة منذ الإصدار 1.2.0

تغيير في السلوك يؤدي إلى حدوث خطأ

  • تم تقليل الحد الأقصى للارتفاع المسموح به في مربّعات الحوار والنوافذ المنبثقة إلى 8 وحدات بكسل مستقلة الكثافة.

تغييرات واجهة برمجة التطبيقات

  • إضافة مكوّن "السحب لإعادة التحميل" إلى Compose (I29168)
  • تغيير اسم المَعلمة من "القيم" إلى "القيمة" في RangeSlider (I3b79a)

الإصدار 1.3.0-rc01

‫5 أكتوبر 2022

تم طرح androidx.compose.material:material-*:1.3.0-rc01. يحتوي الإصدار 1.3.0-rc01 على عمليات الإيداع هذه.

الإصدار 1.3.0-beta03

‫21 سبتمبر 2022

تم طرح androidx.compose.material:material-*:1.3.0-beta03. يحتوي الإصدار 1.3.0-beta03 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • إضافة مكوّن "سحب لإعادة التحميل" إلى Compose (I29168)

الإصدار 1.3.0-beta02

‫7 أيلول (سبتمبر) 2022

تم طرح androidx.compose.material:material-*:1.3.0-beta02. يحتوي الإصدار 1.3.0-beta02 على عمليات الإيداع هذه.

لم يتم إجراء أي تغييرات منذ الإصدار 1.3.0-beta01

الإصدار 1.3.0-beta01

‫24 أغسطس 2022

تم طرح androidx.compose.material:material-*:1.3.0-beta01. يحتوي الإصدار 1.3.0-beta01 على عمليات الإيداع هذه.

تغيير في السلوك يؤدي إلى حدوث خطأ

تم تقليل الحد الأقصى للارتفاع المسموح به في مربّعات الحوار والنوافذ المنبثقة إلى 8 وحدات بكسل مستقلة الكثافة.

تم خفض الحد الأقصى للارتفاع المسموح به في مربّعات الحوار والنوافذ المنبثقة في Compose من 30dp إلى 8dp. يؤثّر هذا التغيير في مربّعات الحوار المخصّصة والنوافذ المنبثقة لكلّ من Material وUI. تم إجراء هذا التغيير للحدّ من خطأ في إمكانية الوصول على إصدارات Android الأقدم من الإصدار S، ولضمان قدرة خدمات تسهيل الاستخدام داخل هذه النوافذ على التفاعل مع المحتوى داخل مربّع الحوار أو النافذة المنبثقة.

لن يؤثّر هذا التغيير فيك إلا إذا كنت بصدد إنشاء تنفيذ مخصّص لمربّع حوار أو نافذة منبثقة مع ضبط مستوى الارتفاع على مستويات أعلى من 8dp. ننصحك بخفض مستوى ارتفاع مربّع الحوار أو النافذة المنبثقة. إذا كنت بحاجة إلى إيقاف هذا السلوك الجديد، يمكنك إنشاء مربّع حوار أو نافذة منبثقة خاصة بك مع ضبط مستوى الارتفاع المطلوب. لا يُنصح بذلك، لأنّ ذلك قد يؤثّر سلبًا في إمكانية الوصول، ويقع على المطوّر مسؤولية ضمان إمكانية التفاعل مع الجزء السفلي من مربّع الحوار أو النافذة المنبثقة وأن يكون قابلاً للقراءة من خلال خدمات تسهيل الاستخدام.

الإصدار 1.3.0-alpha03

‫10 أغسطس 2022

تم طرح androidx.compose.material:material-*:1.3.0-alpha03. يحتوي الإصدار 1.3.0-alpha03 على عمليات الإيداع هذه.

الإصدار 1.3.0-alpha02

‫27 يوليو 2022

تم طرح androidx.compose.material:material-*:1.3.0-alpha02. يحتوي الإصدار 1.3.0-alpha02 على عمليات الإيداع هذه.

المساهمة الخارجية

  • حلّ مشكلة AnimatedVisibility في FloatingActionButton في Scaffold (I3a0ae، b/224005027)

الإصدار 1.3.0-alpha01

‫29 يونيو 2022

تم طرح androidx.compose.material:material-*:1.3.0-alpha01. يحتوي الإصدار 1.3.0-alpha01 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تغيير اسم المَعلمة من "القيم" إلى "القيمة" في RangeSlider (I3b79a)

إصلاح الأخطاء

  • تعديل عيّنة الشارة لتقديم وصف أكثر دلالة للمحتوى (I10b9d)

الإصدار 1.2

الإصدار 1.2.1

‫10 أغسطس 2022

تم طرح androidx.compose.material:material-*:1.2.1. يحتوي الإصدار 1.2.1 على عمليات الإيداع هذه.

الإصدار 1.2.0

‫27 يوليو 2022

تم طرح androidx.compose.material:material-*:1.2.0. يتضمّن الإصدار 1.2.0 عمليات الإيداع هذه.

الإصدار 1.2.0-rc03

‫29 يونيو 2022

تم طرح androidx.compose.material:material-*:1.2.0-rc03. يحتوي الإصدار 1.2.0-rc03 على عمليات الإيداع هذه.

  • لم يتم إجراء أي تغييرات منذ الإصدار 1.2.0-rc02.

الإصدار 1.2.0-rc02

‫22 يونيو 2022

تم طرح androidx.compose.material:material-*:1.2.0-rc02. يحتوي الإصدار 1.2.0-rc02 على عمليات الإيداع هذه.

الإصدار 1.2.0-rc01

‫15 يونيو 2022

تم طرح androidx.compose.material:material-*:1.2.0-rc01. يحتوي الإصدار 1.2.0-rc01 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • يتم الآن إنشاء الواجهات في مكتبات Compose باستخدام طرق الواجهة التلقائية في الإصدار 8 من حزمة تطوير البرامج (JDK) (I5bcf1).

إصلاح الأخطاء

  • تعديل الشارة باستخدام علامة تبويب الرمز الرئيسي لتثبيت الشارة على التصنيف بدلاً من الرمز (I90993)

الإصدار 1.2.0-beta03

‫1 يونيو 2022

تم طرح androidx.compose.material:material-*:1.2.0-beta03. يحتوي الإصدار 1.2.0-beta03 على عمليات الإيداع هذه.

إصلاح الأخطاء

  • تم إصلاح الخطأ الذي كان يتسبّب في ظهور BottomSheetScaffold فوق ظل شريط التطبيق العلوي. تأخذ BottomSheetScaffold الآن أيضًا حالة ورقة البيانات في الاعتبار عند وضع Snackbars: في الحالة المصغّرة، يتم وضع Snackbars فوق ورقة البيانات وزر الإجراء العائم (FAB)، وفي الحالة الموسّعة، يتم ربط Snackbars بأسفل ورقة البيانات. (Ia80b5، b/187771422)

الإصدار 1.2.0-beta02

‫18 مايو 2022

تم طرح androidx.compose.material:material-*:1.2.0-beta02. يحتوي الإصدار 1.2.0-beta02 على عمليات الإيداع هذه.

الإصدار 1.2.0-beta01

‫11 مايو 2022

تم طرح androidx.compose.material:material-*:1.2.0-beta01. يحتوي الإصدار 1.2.0-beta01 على عمليات الإيداع هذه.

الميزات الجديدة

  • هذا هو الإصدار التجريبي الأول من الإصدار 1.2.

تغييرات واجهة برمجة التطبيقات

  • تمت إعادة تسمية العنصر القابل للإنشاء TextFieldDefaults.BorderStroke الذي يرسم ضربة حدودية في OutlinedTextField إلى TextFieldDefaults.BorderBox. (I5f295)

الإصدار 1.2.0-alpha08

‫20 أبريل 2022

تم طرح 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

‫6 أبريل 2022

تم طرح androidx.compose.material:material-*:1.2.0-alpha07. يحتوي الإصدار 1.2.0-alpha07 على عمليات الإيداع هذه.

الإصدار 1.2.0-alpha06

‫23 مارس 2022

تم طرح androidx.compose.material:material-*:1.2.0-alpha06. يحتوي الإصدار 1.2.0-alpha06 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تعديلات على واجهة برمجة التطبيقات Card API القابلة للنقر لتتضمّن التغييرات في واجهة برمجة التطبيقات Surface API (I56bcb)
  • تعديلات على واجهة برمجة التطبيقات Surface في Material 2 تضيف وظائف إضافية محمّلة بشكل زائد للأسطح القابلة للتحديد والتبديل. (Ifcca5)

الإصدار 1.2.0-alpha05

‫9 مارس 2022

تم طرح androidx.compose.material:material-*:1.2.0-alpha05. يحتوي الإصدار 1.2.0-alpha05 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • أصبح الإصداران LazyVerticalGrid وLazyHorizontalGrid مستقرَّين الآن. (I307c0)
  • تم نقل LazyVerticalGrid/LazyHorizontalGrid وجميع واجهات برمجة التطبيقات ذات الصلة إلى الحزمة الفرعية ‎ .grid. يُرجى تعديل عمليات الاستيراد من androidx.compose.foundation.lazy إلى androidx.compose.foundation.lazy.grid. (I2d446، b/219942574)
  • تمت إعادة التغيير السابق الذي كان يعتمد فقط على View في WindowInsetsControllerCompat، وأصبح من الضروري توفُّر Window مرة أخرى، وهو أمر مطلوب لإدارة بعض علامات Window. تم إيقاف ViewCompat.getWindowInsetsController نهائيًا واستبداله بـ WindowCompat.getInsetsController للتأكّد من استخدام Window الصحيح (على سبيل المثال، إذا كان View في مربّع حوار). (I660ae، b/219572936)
  • تم إيقاف ميزة "النص":includeFontPadding تلقائيًا. تم حلّ مشاكل الاقتصاص الناتجة عن includeFontPadding=false، ولن يحدث أي اقتصاص للنصوص البرمجية الطويلة. (I31c84، b/171394808)
  • تمت إضافة واجهة برمجة تطبيقات جديدة LazyVerticalGrid لتحديد أحجام المحاور المتقاطعة (I17723)

الإصدار 1.2.0-alpha04

‫23 فبراير 2022

تم طرح androidx.compose.material:material-*:1.2.0-alpha04. يحتوي الإصدار 1.2.0-alpha04 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • Add support for filter chips (I39a6e، b/192585545)
  • تمت إضافة TextFieldDecorationBox وOutlinedTextFieldDecorationBox. سيساعدك استخدامها مع BasicTextField في إنشاء حقل نص مخصّص استنادًا إلى حقول نص Material Design، ولكن مع المزيد من خيارات التخصيص.
  • تم توفير طريقة لضبط المسافات العمودية والأفقية في الحقول النصية. (I8c9f1 وb/203764564 وb/191543915 وb/189971673 وb/183136600 وb/179882597 وb/168003617)
  • تمت إضافة ComposableTarget وComposableTargetMarker وComposableOpenTarget التي تتيح إعداد تقارير في وقت الترجمة عن الحالات التي يتم فيها استدعاء دالة قابلة للإنشاء تستهدف أداة تطبيق لم يتم تصميمها لاستخدامها.

    في معظم الحالات، يمكن استنتاج التعليقات التوضيحية من خلال المكوّن الإضافي لمترجم Compose، لذا يجب أن يكون استخدام هذه التعليقات التوضيحية مباشرةً أمرًا نادرًا . تشمل الحالات التي لا يمكن استنتاجها إنشاء واستخدام أداة تطبيق مخصّصة، أو دوال قابلة للإنشاء مجرّدة (مثل طرق الواجهة)، أو حقول أو متغيرات عامة تكون تعبيرات lambda قابلة للإنشاء (يتم استنتاج المتغيرات والمعلَمات المحلية)، أو عند استخدام ComposeNode أو دوال قابلة للإنشاء ذات صلة.

    بالنسبة إلى أدوات التطبيق المخصّصة، يجب إضافة التعليق التوضيحي CompoableTarget إلى الدوال القابلة للإنشاء التي تستدعي ComposeNode أو ReusableComposeNode، وإلى أي أنواع مَعلمات lambda قابلة للإنشاء. ومع ذلك، يُنصح بإنشاء تعليق توضيحي يتضمّن ComposableTargetMarker، ثم استخدام التعليق التوضيحي الذي يتضمّن ComposableTarget بدلاً من ComposableTarget مباشرةً. تكون التعليقات التوضيحية القابلة للإنشاء المميّزة بـ ComposableTargetMarker مكافئة لـ ComposbleTarget مع الاسم المؤهّل بالكامل لفئة السمة كالمَعلمة المطبِّقة. للاطّلاع على مثال لاستخدام ComposableTargetMarker، يُرجى الاطّلاع على anroidx.compose.ui.UiComposable. (I38f11)

الإصدار 1.2.0-alpha03

‫9 فبراير 2022

تم طرح androidx.compose.material:material-*:1.2.0-alpha03. يحتوي الإصدار 1.2.0-alpha03 على عمليات الإيداع هذه.

إصلاح الأخطاء

الإصدار 1.2.0-alpha02

‫26 يناير 2022

تم طرح androidx.compose.material:material-*:1.2.0-alpha02. يحتوي الإصدار 1.2.0-alpha02 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة NonRestartableComposable إلى الطرق التي تم تحميلها بشكل زائد من الطرق الحالية بدون منطق معقّد. يقلّل ذلك من عمليات التحقّق من التخزين المؤقت التي ينشئها المترجم (equals) لجميع المَعلمات التي تتكرّر في الدالة الداخلية التي يتم استدعاؤها. (I90490)
  • إضافة دعم لشريحة الإجراء (I07100، b/192585545)

الإصدار 1.2.0-alpha01

‫12 يناير 2022

تم طرح 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)

الإصدار 1.1

الإصدار 1.1.1

‫23 فبراير 2022

تم طرح androidx.compose.material:material-*:1.1.1. يحتوي الإصدار 1.1.1 على عمليات الإيداع هذه.

إصلاح الأخطاء

  • حلّ المشكلة في NullPointerException في androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList (aosp/1947059 وb/206677462)
  • تم إصلاح عُطل ناتج عن محتوى الحافظة أثناء القراءة منها على جهاز Android. (I06020، b/197769306)
  • تم إصلاح مشكلة عرض النصوص من اليمين إلى اليسار في LazyVerticalGrid (aosp/1931080، b/207510535)

الإصدار 1.1.0

‫9 فبراير 2022

تم طرح androidx.compose.material:material-*:1.1.0. يحتوي الإصدار 1.1.0 على عمليات الإيداع هذه.

التغييرات المهمة منذ الإصدار 1.0.0

  • إتاحة تأثير التمرير السريع في Android 12 بشكل ثابت
  • تحسينات على حجم عناصر اللمس المستهدَفة
  • يُرجى العِلم أنّه في ما يتعلّق بالإصدار 1.0 من Compose، ستوسّع مكوّنات Material مساحة التنسيق لتلبية إرشادات تسهيل الاستخدام في Material بشأن حجم مساحة اللمس. على سبيل المثال، سيتم توسيع مساحة اللمس الخاصة بالزر إلى حدّ أدنى يبلغ 48x48 بكسل مستقل الكثافة، حتى إذا ضبطت حجم الزر على قيمة أصغر. يتوافق ذلك مع سلوك "مكوّنات Material Design" نفسه، ما يوفّر سلوكًا متسقًا في حال استخدام كلّ من "طرق العرض" وCompose. يضمن هذا التغيير أيضًا استيفاء الحدّ الأدنى من متطلبات إمكانية الوصول إلى مساحة اللمس عند إنشاء واجهة المستخدم باستخدام مكوّنات Compose Material.
  • إصدار ثابت من شريط التنقّل
  • تحديث عدد من واجهات برمجة التطبيقات التجريبية السابقة إلى إصدار ثابت
  • التوافق مع الإصدارات الأحدث من Kotlin

الإصدار 1.1.0-rc03

‫26 يناير 2022

تم طرح androidx.compose.material:material-*:1.1.0-rc03. يتضمّن الإصدار 1.1.0-rc03 عمليات الإيداع هذه.

التغييرات في السلوك

يُرجى العِلم أنّه في ما يتعلّق بالإصدار 1.0 من Compose، ستوسّع مكوّنات Material مساحة التصميم لتلبية حجم إرشادات تسهيل الاستخدام لمساحة اللمس في Material. على سبيل المثال، سيتم توسيع مساحة اللمس الخاصة بالزر إلى حدّ أدنى يبلغ 48x48 بكسل مستقل الكثافة، حتى إذا ضبطت حجم الزر على قيمة أصغر. يتوافق ذلك مع سلوك "مكوّنات Material Design" نفسه، ما يوفّر سلوكًا متسقًا في حال استخدام كلّ من "طرق العرض" وCompose. يضمن هذا التغيير أيضًا استيفاء الحدّ الأدنى من متطلبات إمكانية الوصول إلى مساحة اللمس عند إنشاء واجهة المستخدم باستخدام مكوّنات Compose Material.

إصلاح الأخطاء

  • تمت إضافة بعض المعلومات الأفضل لتصحيح الأخطاء في "أداة فحص التصميم" عند فحص أدوات تعديل الحد الأدنى لهدف اللمس. (aosp/1955036)

الإصدار 1.1.0-rc01

15 كانون الأول (ديسمبر) 2021

تم طرح androidx.compose.material:material-*:1.1.0-rc01. يحتوي الإصدار 1.1.0-rc01 على عمليات الإيداع هذه.

إصلاح الأخطاء

الإصدار 1.1.0-beta04

‫1 كانون الأول (ديسمبر) 2021

تم طرح androidx.compose.material:material-*:1.1.0-beta04. يحتوي الإصدار 1.1.0-beta04 على عمليات الإيداع هذه.

الميزات الجديدة

  • تم تعديلها لتكون متوافقة مع Kotlin 1.6.0

الإصدار 1.1.0-beta03

‫17 نوفمبر 2021

تم طرح androidx.compose.material:material-*:1.1.0-beta03. يحتوي الإصدار 1.1.0-beta03 على عمليات الدمج هذه.

الإصدار 1.1.0-beta02

‫3 نوفمبر 2021

تم طرح androidx.compose.material:material-*:1.1.0-beta02. يحتوي الإصدار 1.1.0-beta02 على عمليات الإيداع هذه.

إصلاح الأخطاء

  • لن يتم الآن تأخير التموجات والمؤشرات الأخرى إلا إذا كانت داخل حاوية Modifier.scrollable()، بدلاً من تأخيرها دائمًا عند وقوع حدث down. (Ibefe0، b/203141462)

الإصدار 1.1.0-beta01

‫27 أكتوبر 2021

تم طرح androidx.compose.material:material-*:1.1.0-beta01. يحتوي الإصدار 1.1.0-beta01 على عمليات الإيداع هذه.

الميزات الجديدة

  • تتيح تأثيرات التموج الآن حالات التمرير والتركيز، لذا سيؤدي التمرير أو التركيز على أحد المكوّنات، مثل الزر، إلى عرض التراكب الصحيح للحالة.

الإصدار 1.1.0-alpha06

‫13 أكتوبر 2021

تم طرح androidx.compose.material:material-*:1.1.0-alpha06. يحتوي الإصدار 1.1.0-alpha06 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة حمل زائد بدون عنصر فرعي إلى Layout، مع تحسين الكفاءة (Ib0d9a)
  • تنفيذ ExposedDropdownMenu استنادًا إلى ExposedDropdownMenuBox مع TextField وDropdownMenu في الداخل (If60b2)
  • تمت إضافة dismissOnOutsideClick إلى PopupProperties، ما أدى إلى استبدال dismissOnClickOutside الذي تم إيقافه نهائيًا. يتلقّى الموقع الجديد موضع النقرة وحدود العنصر الثابت، ما يتيح تحكّمًا أفضل في ما إذا كان يجب استدعاء onDismissRequest أم لا. على سبيل المثال، يمكن أن يكون ذلك مفيدًا لمنع إغلاق المرساة عند النقر عليها.
    • تمت إضافة updateAndroidWindowManagerFlags إلى PopupProperties، ما يتيح التحكّم على مستوى منخفض في العلامات التي تمرّرها النافذة المنبثقة إلى WindowManager في Android. ستكون مَعلمة دالة lambda هي العلامات المحسوبة من قيم PopupProperties التي تؤدي إلى علامات WindowManager، مثل focusable. ستكون نتيجة الدالة lambda هي العلامات النهائية التي سيتم تمريرها إلى WindowManager في Android. سيؤدي استدعاء updateAndroidWindowManagerFlags تلقائيًا إلى ترك العلامات المحسوبة من المَعلمات بدون تغيير. يجب استخدام واجهة برمجة التطبيقات هذه بحذر، وفقط في الحالات التي تتطلّب فيها النافذة المنبثقة سلوكًا محدّدًا جدًا. (I6e9f9)

الإصدار 1.1.0-alpha05

‫29 سبتمبر 2021

تم طرح androidx.compose.material:material-*:1.1.0-alpha05. يحتوي الإصدار 1.1.0-alpha05 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تضيف هذه السمة الحدّ الأدنى لحجم مساحة اللمس لمكوّنات Material التي لا تتضمّن مساحة لمس يمكن الوصول إليها. بما أنّ ذلك يضيف مساحة إضافية حول المكوّنات للتأكّد من أنّ لديها مساحة لمس كبيرة بما يكفي، قد يؤدي ذلك إلى تغيير واجهات المستخدم الحالية التي تفترض أنّ حجم هذه المكوّنات هو حجمها المرئي، ولا يأخذ في الاعتبار حجم مساحة اللمس. يمكنك استخدام LocalMinimumTouchTargetEnforcement composition local التجريبي لإيقاف هذا السلوك على مستوى التدرّج الهرمي، ولكنّ هذا الإجراء يهدف إلى توفير حلّ مؤقت فقط أثناء تعديل واجهات المستخدم الحالية لتراعي الحد الأدنى الجديد للحجم. (I9b966 وb/149691127 وb/171509422)
  • تمت إضافة واجهة TextFieldColorsWithIcons التجريبية التي توسّع TextFieldColors لتوفير InteractionSource إلى leadingColor وtrailingColor. يتيح ذلك تعديل مظهر TextField وفقًا لحالة التركيز. (I66923، b/198402662)

الإصدار 1.1.0-alpha04

‫15 سبتمبر 2021

تم طرح 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

‫1 سبتمبر 2021

تم طرح androidx.compose.material:material-*:1.1.0-alpha03. يحتوي الإصدار 1.1.0-alpha03 على عمليات الإيداع هذه.

الميزات الجديدة

  • تم تعديل الإصدار 1.1.0-alpha03 من Compose ليعتمد على الإصدار 1.5.30 من Kotlin. (I74545)

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة طريقة اختبار للحصول على الحدود المقتصة. (I6b28e)
  • تمت إضافة الحدّ الأدنى لحجم مساحة اللمس إلى ViewConfiguration لاستخدامه في الدلالات وإدخال المؤشر لضمان إمكانية الوصول. (Ie861c)

الإصدار 1.1.0-alpha02

‫18 أغسطس 2021

تم طرح androidx.compose.material:material-*:1.1.0-alpha02. يحتوي الإصدار 1.1.0-alpha02 على عمليات الإيداع هذه.

المساهمة الخارجية

  • إصلاح سلوك SwipeableState في حال كان إزاحة التمرير السريع ضمن خطأ تقريب للمرساة (I03d39، b/191993377)

الإصدار 1.1.0-alpha01

‫4 أغسطس 2021

تم طرح 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 composable. تمت إضافة مكوّن Badge الذي يمثّل محتوى الشارة النموذجي لـ BadgedBox. (I639c6)
  • تمت إضافة مكوِّن NavigationRail، راجِع المستندات والنماذج للحصول على معلومات حول الاستخدام (I8de77)

إصلاح الأخطاء

  • تمت إضافة عيّنة NavigationRail محاذية للأسفل وعرض توضيحي لتطبيق Catalog. (I3cffc)
  • تتّبع مربّعات الحوار الآن سلوك تحديد الحجم الخاص بالمنصّة. اضبط usePlatformDefaultWidth على false لتجاوز هذا السلوك. (Iffaed، b/192682388)
  • تمت إضافة العرض التوضيحي لشريط التنقّل إلى تطبيق الكتالوج. (I04960)
  • تمت إضافة عرض توضيحي للشارة إلى تطبيق الكتالوج. (If285d)

الإصدار 1.0

الإصدار 1.0.5

‫3 نوفمبر 2021

تم طرح androidx.compose.material:material-*:1.0.5. يحتوي الإصدار 1.0.5 على عمليات الإيداع هذه.

إصلاح الأخطاء

  • تم إصلاح خطأ في تتبُّع الأعطال في مثيلات derivedStateOf. (aosp/1792247)

الإصدار 1.0.4

‫13 أكتوبر 2021

تم طرح androidx.compose.material:material-*:1.0.4. يحتوي الإصدار 1.0.4 على عمليات الإيداع هذه.

تحديثات التبعيات

  • تم تعديلها لتعتمد على Kotlin 1.5.31

الإصدار 1.0.3

‫29 سبتمبر 2021

تم طرح androidx.compose.material:material-*:1.0.3. يحتوي الإصدار 1.0.3 على عمليات الإيداع هذه.

تحديثات التبعيات

  • تم تعديلها لتعتمد على Kotlin 1.5.30

الإصدار 1.0.2

‫1 سبتمبر 2021

تم طرح androidx.compose.material:material-*:1.0.2. يتضمّن الإصدار 1.0.2 عمليات الدمج التالية.

تم تعديل التطبيق ليتوافق مع إصدار Compose 1.0.2. لا يزال الإصدار 1.0.2 من Compose متوافقًا مع الإصدار 1.5.21 من Kotlin.

الإصدار 1.0.1

‫4 أغسطس 2021

تم طرح androidx.compose.material:material-*:1.0.1. يحتوي الإصدار 1.0.1 على عمليات الإيداع هذه.

تحديثات التبعيات

  • تم تعديلها لتعتمد على الإصدار 1.5.21 من Kotlin.

الإصدار 1.0.0

‫28 يوليو 2021

تم طرح androidx.compose.material:material-*:1.0.0. يتضمّن الإصدار 1.0.0 عمليات الدمج هذه.

الميزات الرئيسية في الإصدار 1.0.0

هذا هو أول إصدار ثابت من Compose. يُرجى الاطّلاع على مدوّنة Compose Release الرسمية لمزيد من التفاصيل.

المشاكل المعروفة

  • إذا كنت تستخدم الإصدار 4 من Android Studio Bumblebee Canary أو الإصدار 7.1.0-alpha04/7.1.0-alpha05 من "مكوّن Android الإضافي في Gradle"، قد تواجه الخطأ التالي:

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

    لحلّ هذه المشكلة، عليك زيادة minSdkVersion مؤقتًا إلى 24 أو أكثر في ملف build.gradle. سيتم حلّ هذه المشكلة في الإصدار التالي من Android Studio Bumblebee وAGP 7.1. (b/194289155)

الإصدار 1.0.0-rc02

‫14 تموز (يوليو) 2021

تم طرح androidx.compose.material:material-*:1.0.0-rc02. يحتوي الإصدار 1.0.0-rc02 على عمليات الإيداع هذه.

إصلاح الأخطاء

  • تتّبع مربّعات الحوار الآن سلوك تحديد الحجم الخاص بالمنصّة. اضبط usePlatformDefaultWidth على "خطأ" لتجاوز هذا السلوك. (Iffaed، b/192682388)

الإصدار 1.0.0-rc01

‫1 تموز (يوليو) 2021

تم طرح androidx.compose.material:material-*:1.0.0-rc01. يحتوي الإصدار 1.0.0-rc01 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة المكوّن BadgeBox، يمكنك الاطّلاع على المستندات والأمثلة للحصول على معلومات حول كيفية الاستخدام (I5e284)
  • تمت إعادة تسمية useDefaultMaxWidth في PopupProperties إلى usePlatformDefaultWidth. (I05710)
  • يمكن الآن استخدام عرض الشاشة بالكامل في مربّعات الحوار. (I83929، b/190810877)
  • تمّت إضافة تنفيذ شريط تمرير النطاق التجريبي (I2f4b3)

إصلاح الأخطاء

  • للتوافق مع مواصفات Material Design، توقّف OutlinedTextField الذي يتضمّن إدخالاً غير صالح عن استخدام لون الخطأ للتسمية عندما يتم استخدام التسمية كعنصر نائب. يكون هذا الخيار صحيحًا عندما لا يكون هناك نص إدخال في حقل النص ولا يكون حقل النص في وضع التركيز. بعد إجراء هذا التغيير، تغيّر أيضًا معنى المَعلمة error:Boolean في الدالة TextFieldColors.labelColor(): ستعرض الآن القيمة false حتى عندما تكون القيمة المُدخَلة غير صالحة إذا كان يتم استخدام التصنيف كعنصر نائب. (I45f78)

الإصدار 1.0.0-beta09

‫16 حزيران (يونيو) 2021

تم طرح androidx.compose.material:material-*:1.0.0-beta09. يحتوي الإصدار 1.0.0-beta09 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة المَعلمة Shape إلى OutlinedTextField لتتمكّن من تخصيص شكل الحدود (I8f39e، b/181322957)
  • تم تغيير TextOverflow إلى فئة مضمّنة. (I433af)

إصلاح الأخطاء

  • سيختفي غطاء الشاشة في BottomDrawer وBackdropScaffold وModalBottomSheetLayout، ثم سيتم تمرير Color.Unspecified (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 تتضمّن هذه العناصر، يتم دمج هذه القواعد معًا واستخدام القواعد المدمجة لإنشاء ملف ثنائي مضغوط خاص بحزمة APK في ART. يمكن أن يستفيد ART بعد ذلك من هذا الملف الشخصي عند تثبيت حزمة APK على الأجهزة من أجل تجميع مجموعة فرعية معيّنة من التطبيق مسبقًا لتحسين أداء التطبيق، وخاصةً عند تشغيله للمرة الأولى. يُرجى العِلم أنّ هذا الإجراء لن يؤثر في التطبيقات التي يمكن تصحيح أخطائها.

الإصدار 1.0.0-beta08

‫2 حزيران (يونيو) 2021

تم طرح androidx.compose.material:material-*:1.0.0-beta08. يحتوي الإصدار 1.0.0-beta08 على عمليات الإيداع هذه.

الميزات الجديدة

تغيير في واجهة برمجة التطبيقات يؤدي إلى حدوث خلل في السلوك

  • تغيير في السلوك: تستهلك البطاقة الآن النقرات، ما يجعل النقرات التي تتم إضافتها من خلال Card(Modifier.clickable) غير فعّالة. يُرجى استخدام الإصدار التجريبي الجديد من البطاقة الذي يقبل onClick. (Ia8744, b/183775620)
    • تمت إضافة دالة تحميل زائدة جديدة للبطاقة تتعامل مع النقرات بالإضافة إلى وظائف أخرى قابلة للنقر: الإشارة، ومصدر التفاعل، والتفعيل/الإيقاف. لم يكن من الممكن استخدام بطاقة عادية غير قابلة للنقر مع Modifier.clickable لأنّ البطاقة لن تقصّ مؤشر التموج في هذه الحالات.
  • BEHAVIOUR-BREAKING: تستهلك مساحة العرض الآن النقرات، ما يجعل النقرات المُضافة من خلال Surface(Modifier.clickable) غير فعّالة. يُرجى استخدام الإصدار التجريبي الجديد من مساحة العرض الذي يقبل onClick. (I73e6c، b/183775620)
    • تمت إضافة دالة تحميل زائد جديدة لـ Surface تتعامل مع النقرات بالإضافة إلى الوظائف الأخرى القابلة للنقر: الإشارة وinteractionSource والتفعيل/الإيقاف. لم يكن من الممكن استخدام Surface عادي غير قابل للنقر مع Modifier.clickable لأنّ Surface لن يقتطع مؤشر التموج في هذه الحالات.

تغييرات واجهة برمجة التطبيقات

  • تم تحويل FabPosition إلى فئة مضمّنة من التعداد لدعم التوسّع المحتمل في المستقبل (I030fb)
  • تمت إعادة تصميم استخدامات التعداد لتضمين الفئات المضمّنة لتجنُّب المشاكل المتعلّقة بعبارات when الشاملة عند إضافة قيم تعداد جديدة. (I2b5eb)
  • إضافة مهلة نقرة إلى العناصر القابلة للنقر أو التبديل لمنع ظهور تأثير التموّج أثناء التمرير أو السحب (Ia2704، b/168524931)
  • لم تعُد خصائص ContentDescription وText الدلالية قيمًا فردية، بل أصبحت قوائم. يتيح ذلك دمجها كما هي بدلاً من ربطها. قدّمنا أيضًا واجهات برمجة تطبيقات أفضل للاختبار من أجل الاستفادة من هذه التغييرات (Ica6bf وb/184825850).
  • تم إيقاف Modifier.focusModifier() نهائيًا واستبداله بـ Modifier.focusTarget() (I6c860)
  • تم استبدال التعداد FocusState بواجهة FocusState (Iccc1a، b/187055290)
  • تمت إزالة LocalRippleNativeRendering بعد أن أصبح تنفيذ التموج المستند إلى العرض ثابتًا (I7fab3، b/188569367)

إصلاح الأخطاء

  • تم تغيير Modifier.onGloballyPositioned() للإبلاغ عن إحداثيات أداة التعديل هذه في سلسلة أدوات التعديل، وليس إحداثيات التصميم بعد تطبيق جميع أدوات التعديل. وهذا يعني أنّ ترتيب المعدِّلات يؤثّر الآن في الإحداثيات التي سيتم تسجيلها. (Ieb67d، b/177926591)
  • تمت إضافة ملف README إلى قائمة Compose Material الحالية. (If9191)

الإصدار 1.0.0-beta07

‫18 أيار (مايو) 2021

تم طرح androidx.compose.material:material-*:1.0.0-beta07. يحتوي الإصدار 1.0.0-beta07 على عمليات الدمج هذه.

تغييرات واجهة برمجة التطبيقات

  • لم تعُد بحاجة إلى استخدام طرق الإضافة لتوفير إمكانية الوصول إلى المسار في Navigation Compose. (I22beb، b/172823546)

الإصدار 1.0.0-beta06

‫5 أيار (مايو) 2021

تم طرح androidx.compose.material:material-*:1.0.0-beta06. يحتوي الإصدار 1.0.0-beta06 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تم نقل Ripple لاستخدام RippleDrawable داخليًا على أجهزة Android. وهذا يعني أنّ الرسوم المتحركة المتموجة ستحدث على RenderThread، وبالتالي ستكون سلسة حتى عندما يكون سلسلة UI تحت التحميل، مثلاً عند التنقّل بين الشاشات. لا يؤدي ذلك إلى تغيير مساحة واجهة برمجة التطبيقات الخاصة بتأثير التموج، ولكن قد تحدث تغييرات في السلوك نتيجةً لهذا التغيير. للمساعدة في عملية نقل البيانات، تمت إضافة LocalRippleNativeRendering. أدخِل القيمة false إلى CompositionLocal هذه للرجوع إلى عملية التنفيذ السابقة لتأثير التموّج داخل CompositionLocalProvider. هذه الواجهة مؤقتة وستتم إزالتها في المستقبل، لذا إذا واجهت مشاكل تستدعي استخدامها، يُرجى الإبلاغ عن خطأ. (I902f8، b/168777351، b/183019123)
  • تمّت إضافة واجهات برمجة تطبيقات تسهيل الاستخدام CollectionInfo وCollectionItemInfo التي تتيح وضع علامة على المجموعة وعناصرها لخدمات تسهيل الاستخدام (Id54ef وb/180479017)
  • تمت إضافة واجهة برمجة تطبيقات تسهيل الاستخدام error التي تتيح وضع علامة على عقدة تحتوي على إدخال غير صالح (I12997، b/180584804، b/182142737)

إصلاح الأخطاء

  • تم تعديل عملية تنفيذ هوامش كتالوج Compose Material من: https://github.com/google/accompanist/pull/365. (I25dc3)
  • لم يعُد بإمكان العناصر الفرعية في الصف والعمود التي تتضمّن الوزن(fill = false) أن تجعل العنصر الأصل يملأ المساحة الرئيسية المتاحة بالكامل. (Ied94d، b/186012444، b/184355105)

الإصدار 1.0.0-beta05

‫21 أبريل 2021

تم طرح androidx.compose.material:material-*:1.0.0-beta05. يحتوي الإصدار 1.0.0-beta05 على عمليات الإيداع هذه.

إصلاح الأخطاء

  • تمت إضافة صور مربّعات المكوّنات وأداة اختيار التصميم وعناوين URL أكثر تحديدًا للقوائم إلى "كتالوج مواد Compose" الحالي. (I9b58e)

الإصدار 1.0.0-beta04

‫7 نيسان (أبريل) 2021

تم طرح androidx.compose.material:material-*:1.0.0-beta04. يحتوي الإصدار 1.0.0-beta04 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تغيير في واجهة برمجة التطبيقات: لم تعُد الحالة DrawerState تتضمّن SwipeableState التجريبية.
    • تغيير في واجهة برمجة التطبيقات: تم الآن وضع علامة "تجريبي" على BottomDrawerState، وذلك ليتوافق مع مكوّن BottomDrawer التجريبي الحالي (I81114، b/181656094)
  • أعِد تسمية hideSoftwareKeyboard وshowSoftwareKeyboard على SoftwareKeyboardController إلى hide() وshow() على التوالي.
    • توفير واجهة CompositionLocal الكاملة لـ LocalSoftwareKeyboardController، ما يتيح ضبطها (مفيد بشكل خاص في الاختبارات) (I579a6)
  • تمت إضافة واجهة برمجة التطبيقات LiveRegion التي تسهّل استخدام المحتوى. إذا تم وضع علامة على العقدة كمنطقة مباشرة، ستُرسل خدمات تسهيل الاستخدام تلقائيًا إشعارًا إلى المستخدم بشأن التغييرات التي تم إجراؤها عليها (Idcf6f، b/172590946).

إصلاح الأخطاء

  • تمت إضافة تنفيذ مكتبة Compose Material إلى الوحدة الحالية. لا تتوفّر حاليًا: صور مربّعات المكوّنات، وأداة اختيار المظهر (سيتمّ إضافتها في التغييرات اللاحقة). (Ie7a94)

الإصدار 1.0.0-beta03

‫24 مارس 2021

تم طرح androidx.compose.material:material-*:1.0.0-beta03. يحتوي الإصدار 1.0.0-beta03 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تم إيقاف DefaultMonotonicFrameClock نهائيًا. سيؤدي الآن استدعاء withFrameNanos أو Recomposer.runRecomposeAndApplyChanges بدون MonotonicFrameClock إلى عرض الخطأ IllegalStateException. (I4eb0d)
  • تمت إضافة واجهة برمجة تطبيقات جديدة LeadingIconTab تتيح عرض رمز ونص مضمّن في علامة تبويب. (I23267)

المساهمة الخارجية

  • يتم الآن تضمين محتوى فتحة الدرج في [by Jossi Wolf] BottomDrawer. لا يعرض BottomDrawer الخطأ IllegalStateException عندما يكون ارتفاع العنصر الرئيسي غير محدود. سيتم الآن فتح اللوحة السفلية في حالة موسّعة إذا كانت أصغر من% 50 من العنصر الرئيسي. تم تعديل المستندات حول BottomDrawerState وModalBottomSheetLayoutState. تعرض BottomDrawerState#isOpen الآن القيمة "صحيح" إذا كانت في حالة مفتوحة أو موسّعة. (I87241)

الإصدار 1.0.0-beta02

‫10 مارس 2021

تم طرح androidx.compose.material:material-*:1.0.0-beta02. يحتوي الإصدار 1.0.0-beta02 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة واجهة برمجة تطبيقات جديدة LocalSoftwareKeyboardController محلية للتأليف بدلاً من واجهة SoftwareKeyboardController السابقة في TextField. (I5951e، b/168778053)

إصلاح الأخطاء

  • فرض قيود على الاستخدام العلني لواجهات برمجة التطبيقات التجريبية (I6aa29 وb/174531520)
  • تم تغيير المحاذاة الأفقية التلقائية لكل من TopAppBar وBottomAppBar إلى "البداية"، بما يتوافق مع الصف (Ib2dc7)
  • تمت إضافة وحدة جديدة وواجهة مستخدم عنصر نائب لكتالوج Compose Material، وهي مضمّنة حاليًا في عروض توضيحية لاختبارات التكامل الحالية. (Idfcb3)
  • androidx.compose.ui:ui لم يعُد يعتمد على AppCompat أو Fragment. إذا كنت تستخدم ComposeView في تطبيقك، وكنت تستخدم Fragment و/أو AppCompat، تأكَّد من استخدام AppCompat 1.3+‎ أو Fragment 1.3+‎، فهذه الإصدارات مطلوبة لضبط مالكي مراحل النشاط والحالة المحفوظة اللازمين لـ ComposeView بشكل صحيح. (I1d6fa، b/161814404)

الإصدار 1.0.0-beta01

‫24 شباط (فبراير) 2021

تم طرح androidx.compose.material:material-*:1.0.0-beta01. يحتوي الإصدار 1.0.0-beta01 على عمليات الإيداع هذه.

هذا هو الإصدار الأول من الإصدار التجريبي 1.0.0 من Compose.

تغييرات واجهة برمجة التطبيقات

  • تمت إعادة تسمية مُعدِّلات الحجم. تمت إعادة تسمية 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)
  • تمت إزالة معاودة الاتصال SoftwareKeyboardController من جميع حقول النص، وسيتم استبدالها بواجهة برمجة تطبيقات جديدة قريبًا. (Iae869، b/168778053)
  • أصبحت الآن تعبيرات lambda الخاصة بإجراءات Switch وCheckbox وRadioButton تقبل القيم الخالية. تم تعديل أمثلة مربّع الاختيار في الصف القابل للنقر لاستخدام هذه الميزة. (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. (If47d1، b/177457083)

  • يتم الآن تمثيل موضع التمرير في Modifier.verticalScroll()/horizontalScroll() باستخدام أعداد صحيحة (I81298)

  • تم تغيير حِزم طريقتَي smoothScrollBy وscrollBy إلى androidx.compose.foundation.gestures.* (I3f7c1، b/175294473)

  • تمت إعادة تسمية FlingConfig إلى FlingBehavior، وتتيح الآن تخصيص الصورة المتحركة الخاصة بالتعليق بدلاً من عمليات التلاشي المحدّدة مسبقًا. (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

    • لم يعُد منشئ Composition يقبل مَعلمة مفتاح، وتم إيقافه نهائيًا.
    • تم تحويل 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. تستخدم الآن واجهة Scrollable بدلاً من فئة ScrollableController (I4f5a5 وb/174485541 وb/175294473)

  • تقبل Modifier.draggable الآن DraggableState بدلاً من تعبير لامدا بسيط. يمكنك إنشاء حالة من خلال rememberDraggableState { delta -> } للحصول على السلوك نفسه كما كان من قبل (Ica70f، b/175294473).

  • أصبحت الدالتان ZoomableController.smoothScaleBy وZoomableController.stopAnimation دالتين معلّقتين. (I7f970، b/177457083)

  • تم حذف بعض واجهات برمجة التطبيقات التي تم إيقافها نهائيًا سابقًا (Ice5da وb/178633932)

  • أجرينا التغييرات التالية على Material API:

    • تمت إضافة المَعلمة contentPadding إلى Top/BottomAppBar للسماح بتخصيص المساحة المتروكة التلقائية.
    • تمت إعادة ترتيب المَعلمات في BackdropScaffold لتتوافق مع إرشادات واجهة برمجة التطبيقات بشأن المَعلمات المطلوبة التي تسبق المَعلمات الاختيارية.
    • تم نقل المَعلمة icon في BottomNavigationItem لتصبح بعد selected وonClick.
    • تمت إعادة تسمية المَعلمة alwaysShowLabels في BottomNavigationItem إلى alwaysShowLabel.
    • تمت إعادة تسمية مَعلمات bodyContent في بعض المكوّنات إلى content فقط.
    • تمت إعادة ترتيب المَعلمات في ButtonDefaults.buttonColors(). يُرجى العِلم أنّه بما أنّ نوع المَعلمات لم يتغيّر، لن يتسبّب ذلك في حدوث خطأ في الرمز. يُرجى التأكّد من أنّك تستخدم مَعلمات مسماة أو تعدّل الترتيب يدويًا، وإلا لن يعمل الرمز بالطريقة نفسها كما كان في السابق.
    • تمت إضافة المَعلمة secondaryVariant إلى darkColors(). يكون هذا اللون عادةً هو نفسه secondary في "المظهر الداكن"، ولكن تتم إضافته لتحقيق التناسق والمزيد من التخصيص.
    • تمت إزالة ElevationDefaults وanimateElevation() من مساحة واجهة برمجة التطبيقات العامة لأنّهما لم يكونا مستخدَمَين أو مفيدَين بشكل شائع.
    • تمت إعادة تسمية onValueChangeEnd في Slider إلى onValueChangeFinished وتم السماح بقيمة فارغة.
    • تمت إعادة تسمية المَعلمة text في Snackbar إلى content لضمان الاتساق.
    • تمت إضافة المَعلمة contentPadding إلى DropdownMenuItem للسماح بتخصيص المساحة المتروكة التلقائية، وتمّت إضافة content كإضافة على RowScope.
    • تمت إعادة تسمية "ModalDrawerLayout" إلى "ModalDrawer".
    • تمت إعادة تسمية "BottomDrawerLayout" إلى "BottomDrawer".
    • (I1cc66)
  • تقبل السمة BasicTextField الآن Brush بدلاً من Color لتوفير خيارات تخصيص أفضل (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 للاستبدال بواجهة SoftwareKeyboardController السابقة في TextField. (I658b6، b/168778053)

الإصدار 1.0.0-alpha12

10 شباط (فبراير) 2021

تم طرح androidx.compose.material:material-*:1.0.0-alpha12. يحتوي الإصدار 1.0.0-alpha12 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • يتطلّب Modifier.pointerInput الآن مفاتيح remember للإشارة إلى الوقت الذي يجب فيه إعادة تشغيل روتين pointer input detection المشترك لإنشاء تبعيات جديدة. (I849cd)
  • تم وضع علامة ‎ @ExperimentalMaterialApi على BottomDrawerLayout وListItem (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. (Icf416)
  • تمت إزالة طريقتَي تفكيك البنية وcopy() من عدة فئات كانتا تُستخدمان فيها نادرًا. (I26702، b/178659281)
  • جعل halfExpand() وexpand() في ModalBottomSheetState داخليًا (Ic914e)
  • تم تغيير Indication#createInstance إلى ‎ @Composable، وتم تغيير LocalIndication ليحتوي على Indication، وليس () -> Indication. (I5eeea، b/157150564)
  • تم نقل AlertDialog وDropdownMenu ليكون متاحًا على Android فقط في الوقت الحالي. تمت إضافة المَعلمة PopupProperties إلى DropdownMenu لإجراء المزيد من الإعدادات للنافذة المنبثقة الأساسية. (I9c443)
  • تم إيقاف loadFontResource نهائيًا. يجب استخدام fontResource بدلاً من ذلك. تم إيقاف imageResource وloadImageResource وvectorResource وloadVectorResource نهائيًا. استخدِم painterResource بدلاً من ذلك. (I6b809)
  • تمت إزالة المَعلمتَين toggle وtoggleModifier من DropdownMenu، وتمت إعادة تسمية 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. كانت أسماء Ambients في السابق AmbientFoo، وأصبحت أسماء CompositionLocals الآن LocalFoo. (I2d55d)
  • تم نقل التحديد إلى الأساس. (I7892b)
  • على غرار الطريقة التي أزلنا بها سابقًا state { 0 } القابل للإنشاء ونشجّع الآن على استخدام remember { mutableStateOf(0) }، سنزيل savedInstanceState { 0 } القابل للإنشاء. يجب استخدام rememberSaveable { mutableStateOf(0) } بدلاً من ذلك، وسيتم الحفظ والاستعادة تلقائيًا إذا كان يمكن تخزين النوع المستخدَم داخل MutableState في حزمة. إذا كنت تستخدم سابقًا عنصر حفظ مخصّصًا، عليك الآن استخدام تحميل زائد جديد للدالة 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 في Changed Tab، والمَعلمة label في BottomNavigationItem لتصبح قابلة للقيم الفارغة، وذلك لتوضيح سلوك المكوّن بشكل أفضل عند توفير هذه المَعلمات أو عدم توفيرها، لأنّ ذلك يؤثر في حجم المكوّن وتنسيقه. إذا كنت تستخدم حاليًا emptyContent() لتمثيل عدم توفّر نص أو رمز أو تصنيف، عليك استخدام null بدلاً من ذلك. (I57ed4)

  • تمت إعادة تسمية المَعلمة contentColorFor إلى backgroundColor (I5bb67)

  • تم إيقاف TabDefaults نهائيًا واستبداله بـ TabRowDefaults. (I0f189)

  • تم تقديم واجهة برمجة التطبيقات ColorMatrix API المستخدَمة لتعديل قيم الأحمر والأخضر والأزرق للمحتوى المصدر، وتمت إعادة تصميم واجهة برمجة التطبيقات ColorFilter API لتصبح واجهة وتتطابق مع تنفيذ PathEffect. (Ica1e8)

  • تم إيقاف AnimatedValue/Float نهائيًا. يُرجى استخدام Animatable بدلاً من ذلك. (I71345، b/177457083)

  • إضافة واجهة برمجة التطبيقات SemanticsProperties.PaneTitle. (I20d5a)

  • تمت إضافة مَعلمات مفعَّلة إلى Tab وBottomNavigationItem لمنع النقر عليهما. تم تغيير BottomNavigationItem إلى RowScope.BottomNavigationItem للتعبير بشكل أفضل عن متطلبات التنسيق في واجهة برمجة التطبيقات. (Id683d)

  • تم إيقاف tapGestureFilter وdoubleTapGestureFilter وlongPressGestureFilter وpressIndicaitonGestureFilter نهائيًا. استخدِم Modifier.clickable أو Modifier.pointerInput مع الدالة detectTapGestures بدلاً من ذلك. (I6baf9، b/175294473)

  • إضافة المَعلمة layoutDirection إلى createOutline في Shape يتيح ذلك إنشاء أشكال تراعي اتجاه التنسيق. (I57c20، b/152756983)

  • تمت إزالة Recomposer.current(). [Abstract]ComposeView now default to lazily created, window-scoped Recomposers driven by the ViewTreeLifecycleOwner for the window. يتم إيقاف إعادة التركيب مؤقتًا وعلامات الصورة المتحركة المستندة إلى withFrameNanos أثناء إيقاف Lifecycle المضيف. (I38e11)

إصلاح الأخطاء

  • سيتم الآن تغيير حجم الرمز ليناسب حجمه، مع مراعاة معدّلات تغيير الحجم المطبّقة عليه. على سبيل المثال، سيتم الآن رسم Icon(.., modifier = Modifier.size(50.dp) في مساحة 50x50dp. (Ib2ba9، b/178796190)

الإصدار 1.0.0-alpha11

‫28 يناير 2021

تم طرح androidx.compose.material:material-*:1.0.0-alpha11. يحتوي الإصدار 1.0.0-alpha11 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • ترقية بعض واجهات برمجة تطبيقات Material لتصبح غير @Experimental (I5d20e)
  • تمت إضافة مَعلمة وصف المحتوى إلى "الصورة" و"الرمز". يُستخدَم لتوفير وصف للخدمات المخصّصة لتسهيل الاستخدام (I2ac4c)
  • تغيير واجهات مَعلمات Material ذات الحالة إلى دوال @Composable تعرض State<T> تضيف Animatable.asState() لتسهيل تحويل عنصر Animatable إلى حالة. تغيير animateElevation أيضًا ليكون إضافة تعليق على Animatable (If613c)
  • لم يعُد Snackbar وSnackbarHost وSnackbarHostState @ExperimentalMaterialAPI (Id1fb5)
  • تغيير Typography وShapes وTabPosition لكي لا تكون فئات بيانات بعد الآن تضيف هذه الميزة وظيفة النسخ إلى "الكتابة" و"الأشكال" لاستبدال العناصر التي تم إنشاؤها. (I40037)
  • تم حذف بعض واجهات برمجة تطبيقات Material التي تم إيقافها نهائيًا (Ifaa25)

إصلاح الأخطاء

  • تم إيقاف onCommit وonDispose وonActive نهائيًا لصالح واجهتَي برمجة التطبيقات SideEffect وDisposableEffect (If760e)
  • تم إيقاف ميزة الانتقال المستندة إلى TransitionDefinition نهائيًا (I0ac57)
  • أصبحت الحالة الأولية في updateTransition متاحة الآن (Ifd51d)
  • تمت إعادة تصميم WithConstraints ليصبح BoxWithConstraints وتم نقله إلى foundation.layout. (I9420b، b/173387208)
  • إيقاف scrollBy غير المعلق نهائيًا، وإزالة scrollTo غير المعلق

    ننصحك الآن باستخدام دوال تعليق للتحكّم في التمرير وانتظار انتهاء التمرير. سنوقف نهائيًا و/أو نزيل إصدارات هذه الدوال التي لا تتضمّن تعليقًا مؤقتًا كجزء من عملية الانتقال هذه. (Ie9ced)

  • إيقاف نهائي للدالة smoothScrollBy غير المعلقة ننصحك الآن باستخدام الدوال المعلقة للتحكّم في التمرير وانتظار انتهاء التمرير. سنوقف نهائيًا إصدارات هذه الدوال التي لا تتضمّن suspend كجزء من عملية الانتقال هذه. (I12880)

  • تم تقديم ComposeContentTestRule، الذي يوسّع نطاق ComposeTestRule ويحدّد setContent، والذي تمت إزالته من ComposeTestRule. تمت إضافة طريقة مصنع createEmptyComposeRule() تعرض ComposeTestRule ولا تشغّل نشاطًا لك. استخدِم هذا الخيار عندما تريد تشغيل "نشاطك" أثناء الاختبار، على سبيل المثال، باستخدام ActivityScenario.launch (I9d782، b/174472899)

  • لم يعُد بإمكانك تخصيص تأثير التموّج المستخدَم في Button وFloatingActionButton من خلال توفير Indication جديد عبر AmbientIndication، إذ لم يكن الهدف من ذلك أبدًا تخصيص هذين المكوّنين، وهذا يجعل هذين المكوّنين متوافقَين مع مكوّنات Material الأخرى. لتخصيص التموجات في أحد التطبيقات، اطّلِع على RippleTheme. (I546c5)

  • أصبح اسم animateAsState الآن animateFooAsState، حيث Foo هو نوع المتغير الذي يتم تحريكه، مثل Float وDp وOffset وما إلى ذلك (Ie7e25)

  • تلقّى BasicTextField مَعلمة جديدة باسم decorationBox. يسمح بإضافة عناصر زخرفية مثل الرموز النائبة والتسميات وما شابه ذلك إلى حقل النص، كما يسمح بزيادة مساحة الاستهداف الخاصة به. (I16996)

  • تم إصلاح خطأ كان يجعل من غير الممكن ضبط عرض حقل النص الخاص بتصميم Material Design على أقل من 280 وحدة بكسل مستقلة الكثافة (I78373).

  • تمت إزالة المَعلمة canDrag من Modifier.draggable (Ic4bec، b/175294473)

  • أزِل displaySize لأنّه يجب تجنُّبه. من الأفضل عادةً استخدام حجم onRoot() أو حجم النافذة على الأقل. (I62db4)

  • يمكن أن يحتوي Surface الآن على عناصر ثانوية متعددة للتنسيق. (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

13 كانون الثاني (يناير) 2021

تم طرح androidx.compose.material:material-*:1.0.0-alpha10. يحتوي الإصدار 1.0.0-alpha10 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تم تعديل Velocity لتضمين أجزاء مكوّنة وعمليات رياضية. (Ib0447)
  • تمت إعادة تسمية @ExperimentalTesting إلى @ExperimentalTestApi لتكون متوافقة مع التعليقات التوضيحية المشابهة لواجهات برمجة التطبيقات التجريبية (Ia4502 وb/171464963).
  • تمت إعادة تسمية Position إلى 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 لاستخدام &quot;is MyClass&quot; بدلاً من ذلك. (I4f734)

إصلاح الأخطاء

  • تمت إضافة إمكانية استخدام حقول النص الموقوفة وحقول النص للقراءة فقط (I35279 وb/171040474 وb/166478534)
  • تم الآن استبدال animate() بـ animateAsState()، التي تعرض State<T> بدلاً من T. ويتيح ذلك تحسين الأداء، لأنّه يمكن تضييق نطاق الإبطال إلى المكان الذي تتم فيه قراءة قيمة الحالة. (Ib179e)
  • إضافة واجهة برمجة تطبيقات دور Semantics وإضافة الدور كمعلَمة إلى SemanticsModifier القابل للنقر والاختيار والتبديل تم تغيير Modifier.progressSemantics ليتمكّن شريط التمرير أيضًا من استخدامه. (I216cd)

الإصدار 1.0.0-alpha09

16 كانون الأول (ديسمبر) 2020

تم طرح androidx.compose.material:material-*:1.0.0-alpha09. يحتوي الإصدار 1.0.0-alpha09 على عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة واجهة برمجة تطبيقات لتشغيل الرسوم المتحركة الخاصة بالتسوية والسحب يدويًا في Modifier.swipeable (Iaa17a، b/162408885)
  • تمت إعادة تسمية عناصر *Constants، مثل ButtonConstants، لتنتهي بـ Defaults بدلاً من ذلك، مثل ButtonDefaults. تتم أيضًا إزالة البادئات غير الضرورية default من الخصائص في هذه العناصر الجديدة. (Ibb915، b/159982740)
  • تتيح Compose دوال جلب الخصائص التي يمكنها تنفيذ استدعاءات قابلة للإنشاء. لن نتوقف عن توفير هذه الميزة، ولكن سيتم تغيير بنية تعريف أداة جلب الخصائص على أنّها ‎ @Composable.

    كانت البنية التي تم إيقافها نهائيًا لإجراء ذلك تتم من خلال إضافة تعليق توضيحي إلى السمة نفسها:

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

    تتمثل الصيغة الصحيحة الآن لإجراء ذلك في إضافة تعليق توضيحي إلى دالة جلب قيمة السمة:

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

    ستعمل كلتا البنيتين لفترة من الوقت، ولكنّ البنية السابقة المتوقّفة نهائيًا ستصبح في النهاية خطأ في التجميع. (Id9197)

  • تمت إضافة مكتبة androidx.compose.material:material-ripple تحتوي على واجهات برمجة تطبيقات التموج للسماح بإنشاء مكونات تفاعلية بدون الحاجة إلى بقية مكتبة Material. تم إيقاف rememberRippleIndication نهائيًا واستبداله بـ rememberRipple. (Ibdf11)

إصلاح الأخطاء

  • تعرض دوال Lambda في أدوات تعديل الإزاحة الآن IntOffset بدلاً من Float. (Ic9ee5، b/174137212، b/174146755)
  • تمت إعادة تصميم ShaderBrush لإنشاء مثيل تظليل بشكل غير مباشر عند توفّر معلومات تحديد حجم بيئة الرسم. ويكون ذلك مفيدًا لتحديد تدرّجات لونية تشغل حدود الرسم الكاملة لعنصر قابل للإنشاء في وقت الإنشاء، بدون الحاجة إلى تنفيذ عمليات مخصّصة في DrawModifier.

    تم إيقاف واجهات برمجة التطبيقات لإنشاء دالة التدرّج اللوني واستبدالها بطُرق المصنع في عنصر Gradient. (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)

  • أصبحت Autofill API الآن واجهة برمجة تطبيقات تجريبية وتتطلّب الموافقة (I0a1ec)

  • إضافة عبارات تفكيك لإنشاء مثيلات FocusRequester (I35d84 وb/174817008)

  • تمت إعادة تسمية accessibilityLabel إلى contentDescription، وتمت إعادة تسمية accessibilityValue إلى stateDescription. (I250f2)

  • دالة infiniteRepeatable جديدة لإنشاء InfiniteRepeatableSpec (I668e5)

  • تم تغيير سلوك تحديد موضع DropdownMenus قليلاً وفقًا لمواصفات Material. (I34c72، b/168594123)

  • تمت إضافة إمكانية استخدام InteractionState مع حقول النص. (I61d91)

  • تمّت إضافة Modifier.clearAndSetSemantics لمحو دلالات العناصر الفرعية وتحديد دلالات جديدة. (I277ca)

  • تم نقل ContentDrawScope إلى وحدة ui-graphics ليكون مع DrawScope. (Iee043، b/173832789)

الإصدار 1.0.0-alpha08

‫2 ديسمبر 2020

تم إصدار 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 لأسماء مَعلمات lambda القابلة للإنشاء وموضعها، وذلك للتحقّق من التوافق مع إرشادات Compose. تم أيضًا نقل بعض واجهات برمجة التطبيقات التي تستخدم children كاسم لدالة lambda اللاحقة إلى content، وذلك وفقًا لفحص lint والإرشادات. (Iec48e)
  • تمت إعادة تسمية VectorAsset إلى ImageVector تم نقل VectorAsset وإعادة تسميته إلى Builder ليكون فئة داخلية من ImageVector وفقًا لإرشادات مجلس واجهات برمجة التطبيقات. تمت إضافة نوع الاسم المستعار VectorAssetBuilder للربط بـ ImageVector.Builder من أجل التوافق. (Icfdc8)
  • تمت إعادة تسمية ImageAsset والطُرق ذات الصلة إلى ImageBitmap. (Ia2d99)
  • نقل خصائص دلالات الأساس إلى واجهة المستخدم (I6f05c)
  • تم إيقاف fun RippleIndication() نهائيًا واستبدالها بـ rememberRippleIndication() لضمان التوافق مع واجهات برمجة التطبيقات الأخرى. (Id8e2c)
  • تمت إضافة مَعلمة singeLine إلى BasicTextField وTextField وOutlinedTextField. اضبط هذه المَعلمة على "صحيح" لجعل الحقل النصي سطرًا واحدًا يمكن الانتقال فيه أفقيًا. (I57004، b/168187755)

إصلاح الأخطاء

  • إضافة إجراء "رفض" الترميز الدلالي (I2b706)
  • تم نقل واجهات برمجة التطبيقات DrawModifier من حزمة androidx.compose.ui إلى حزمة androidx.compose.ui.draw. تم إنشاء ملف DrawModifierDeprecated.kt لتضمين أسماء الأنواع المستعارة وطُرق المساعدة للمساعدة في نقل البيانات من واجهات برمجة التطبيقات المتوقفة نهائيًا إلى واجهات برمجة التطبيقات الحالية. (Id6044، b/173834241)
  • تمت إعادة تسمية Modifier.drawLayer إلى Modifier.graphicsLayer وتم أيضًا تعديل الفئات ذات الصلة إلى GraphicsLayer وفقًا للملاحظات الواردة بشأن واجهة برمجة التطبيقات. (I0bd29، b/173834241)
  • تمت إزالة <T> من تعريف SubcomposeLayout. يمكنك استخدامها بدون تحديد نوع الآن. (Ib60c8)
  • تمت إضافة واجهات برمجة التطبيقات Modifier.scale/rotate كأدوات مساعدة في drawLayer.
    • تمت إعادة تسمية "Modifier.drawOpacity" إلى "Modifier.alpha"
    • تمت إعادة تسمية Modifier.drawShadow إلى Modifier.shadow (I264ca، b/173208140)
  • تمت إعادة تسمية مَعلمة المحاذاة الخاصة بـ Box إلى contentAlignment. (I2c957)
  • تمت إعادة تسمية معدِّلات offsetPx إلى offset. تتلقّى الآن مَعلمات lambda بدلاً من State. (Ic3021، b/173594846)
  • تم تقديم واجهات برمجة التطبيقات SweepGradientShader وSweepGradientBrush. (Ia22c1)
  • تمت إضافة عملية تدقيق باستخدام أداة Lint لمعلَمات Modifier في الدوال القابلة للإنشاء. يفحص هذا التدقيق البرمجي التسمية ونوع الإرجاع والقيمة التلقائية وترتيب المَعلمات للتأكّد من اتّساقها مع إرشادات Compose. (If493b)
  • تعديل على واجهة برمجة التطبيقات TextFieldValue
    • جعل TextFieldValue.composition للقراءة فقط
    • تم طرح استثناء تمت إزالته لنطاق التحديد غير الصالح (I4a675، b/172239032)
  • تمت إضافة Modifier.drawLayer() جديدة. تتلقّى هذه الدالة كتلة lambda في GraphicsLayerScope جديدة تحدّد فيها مَعلمات الطبقة بطريقة تتيح تخطّي إعادة التركيب وإعادة التنسيق عند حدوث تغيير في الحالة. أصبحت DrawLayerModifier الآن داخلية استعدادًا لنقل منطقها إلى طريقة placeable.placeWithLayer() في LayoutModifier (I15e9f، b/173030831)
  • تم إيقاف Ambients القديمة التي تحمل الاسم Ambient كلاحقة، واستبدالها بخصائص جديدة تبدأ بـ Ambient، وذلك وفقًا لإرشادات Ambients الأخرى وواجهة برمجة تطبيقات Compose. (I33440)
  • تمت إضافة عملية تدقيق باستخدام أداة Lint للتأكّد من أنّ أدوات إنشاء المعدِّلات تستخدم androidx.compose.ui.composed {} داخليًا، بدلاً من وضع علامة @Composable عليها. (I3c4bc)
  • تمت إعادة تسمية وسيطة الدلالات mergeAllDescendants إلى mergeDescendants. (Ib6250)
  • أصبح التحكّم في الوقت في الاختبارات (TestAnimationClock واستخداماته) تجريبيًا الآن (I6ef86، b/171378521)
  • إزالة وحدة ui-test القديمة ورموزها الصورية (I3a7cb)
  • تمت إعادة تسمية TextUnit.Inherit إلى TextUnit.Unspecified للحفاظ على التناسق مع الوحدات الأخرى. (Ifce19)
  • تم تعديل واجهة "المحاذاة" وإتاحتها للاستخدام. (I46a07، b/172311734)
  • تمت إعادة تسمية المعرّف إلى layoutId لـ LayoutIdParentData. تمت إعادة تسمية Measurable.id إلى Measurable.layoutId. (Iadbcb، b/172449643)

الإصدار 1.0.0-alpha07

‫11 نوفمبر 2020

تم إصدار 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 إلى حقول النص (Ib2a5b)
  • تعديل TextFields لقبول KeyboardOptions (Ida7f3)
  • تستخدم "السطح" الآن الارتفاع المطلق (الإجمالي) عند احتساب تراكبات الارتفاع، لذا سيستخدم "السطح" المتداخل في "سطح" آخر الارتفاع المدمج لرسم التراكب. (I7bd2b، b/171031040)

إصلاح الأخطاء

  • تم نقلcaptureToBitmap إلى captureToImage. (I86385)
  • تم إيقاف العناصر الأساسية AmbientTextStyle وProvideTextStyle وAmbientContentColor نهائيًا. بدلاً من ذلك، استخدِم الإصدارات الجديدة المتوفّرة في مكتبة Material. بالنسبة إلى التطبيقات غير المستندة إلى 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).
  • تم تعديل Icon API لتضمين Color.Unspecified كأحد ألوان التلوين المحتملة التي سترسم العنصر أو أداة الرسم المقدَّمة بدون ColorFilter. في السابق، كانت محاولات تجاهل التلوين باستخدام Color.Unspecified تؤدي إلى التلوين بلون شفّاف، ما يؤدي إلى عدم عرض أي شيء على الإطلاق. (I049e2، b/171624632)
  • تمت إعادة تسمية relativePaddingFrom إلى paddingFrom. تمت إضافة المعدِّل paddingFromBaseline لتسهيل تحديد المسافات من حدود التنسيق إلى خطوط الأساس للنص. (I0440a، b/170633813)
  • تمت إعادة تسمية LaunchedTask إلى LaunchedEffect لضمان التناسق مع واجهتَي برمجة التطبيقات SideEffect وDisposableEffect. لا يُسمح باستخدام LaunchedEffect بدون مَعلمات الموضوع لتشجيع اتّباع أفضل الممارسات. (Ifd3d4)
  • تم نقل MeasureResult خارج MeasureScope. (Ibf96d، b/171184002)
  • تم نقل العديد من الرموز ذات الصلة بالتصميم من androidx.compose.ui إلى androidx.compose.layout.ui. (I0fa98، b/170475424)

الإصدار 1.0.0-alpha06

‫28 أكتوبر 2020

تم إصدار 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. يمكنك أيضًا استخدام مكوّن الصورة / Modifier.paint() مع Painter إذا كنت لا تريد استخدام مكتبة Material. (I9f622)
  • تضيف هذه السمة FloatingActionButtonElevation لتمثيل مستوى الارتفاع الذي تستخدمه أزرار FAB في حالات مختلفة. راجِع 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 بدلاً منه لتوضيح أنّ واجهة برمجة التطبيقات القابلة للإنشاء تستخدم داخليًا الدالة remember للاحتفاظ بالبيانات على مستوى عمليات الإنشاء. (Ifda43)
  • تفعيل عمليات الانتقال في ComposeTestRule وإزالة خيار تفعيل المؤشر الوامض من ComposeTestRule (If0de3)
  • تمت إضافة خيار لوحة المفاتيح ذات السطر الواحد إلى CoreTextField (I72e6d)
  • تمت إعادة تسمية واجهة برمجة التطبيقات Radius إلى CornerRadius للتعبير بشكل أفضل عن طريقة استخدامها في جميع أنحاء Compose. تم تعديل المستندات للإشارة إلى أنّه يتم حصر قيم نصف قطر الزوايا السالبة عند الصفر. (I130c7، b/168762961)
  • إعادة تصميم DrawScope وContentDrawScope ليصبحا واجهتَين بدلاً من فئتَين مجرّدتَين
    • تم إنشاء تنفيذ CanvasDrawScope لـ DrawScope
    • إعادة تصميم عمليات تنفيذ DrawScope لاستخدام CanvasScope بدلاً من ذلك
    • تم إنشاء DrawContext لتضمين التبعيات في DrawScope
    • إزالة الطرق المتوقّفة نهائيًا في DrawScope (I56f5e)
  • تم تحويل المربع إلى دالة مضمّنة. (Ibce0c، b/155056091)

الإصدار 1.0.0-alpha05

‫14 أكتوبر 2020

تم إصدار 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)
  • يحتوي Modifier.swipeable الآن على حدود 56.dp للحالات تلقائيًا (Iab825، b/168610267)
  • تم وضع العلامة ‎ @Stable على جميع حالات Scaffold. تم نقل drawerGesturesEnabled في ScaffoldState إلى Scaffold نفسه. (I36645، b/168297016)
  • تزيل هذه القاعدة نوع القيمة القابلة للتصغير من مَعلمات دالة lambda في Scaffold، ويمكنك استخدام emptyContent() لتمثيل عدم توفّر محتوى لمَعلمة معيّنة. (I2b318 وb/157633857 وb/158551084)
  • إيقاف واجهتَي برمجة التطبيقات contentColor() وcurrentTextStyle() نهائيًا واستبدالهما بالسمتَين AmbientContentColor وAmbientTextStyle على التوالي يمكنك الوصول إلى القيمة الحالية باستخدام .current في السمة المحيطة، كما هو الحال مع أي سمة محيطة أخرى. تم إجراء هذا التغيير للحفاظ على الاتساق وتجنُّب توفّر طرق متعددة لإنجاز المهمة نفسها. بالإضافة إلى ذلك، يعيد تسمية بعض خصائص الإضاءة المحيطة لتوضيح الغرض منها بشكل أفضل على النحو التالي:

    • ContentColorAmbient -> AmbientContentColor
    • TextStyleAmbient -> AmbientTextStyle
    • IndicationAmbient -> AmbientIndication
    • EmphasisAmbient -> AmbientEmphasisLevels
    • ‫RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
  • تضيف هذه السمة AmbientElevationOverlay، ما يتيح تخصيص أو إيقاف التراكب التلقائي للارتفاع الذي يتم تطبيقه على "الأسطح" في المظهر الداكن. (I5b74d)

إصلاح الأخطاء

  • في إطار توحيد قيم الحراسة لفئات مضمّنة، تمت إعادة تسمية Color.Unset إلى Color.Unspecified لتحقيق التناسق مع الفئات المضمّنة الأخرى (I97611 وb/169797763).
  • تم تقديم TextOverflow.None. عندما تكون قيمة overflow هي None، لن يتعامل عنصر Text مع المحتوى الزائد بعد الآن، وسيُبلغ LayoutNode عن حجمه الفعلي. (I175c9، b/158830170)
  • تمت إعادة تسمية launchInComposition إلى LaunchedTask لتتوافق مع إرشادات واجهة برمجة التطبيقات Compose (I99a8e)
  • تمت إعادة تسمية OnPositionedModifier إلى OnGloballyPositionedModifier وإعادة تسمية onPositioned()‎ إلى onGloballyPositioned()‎. (I587e8، b/169083903)

الإصدار 1.0.0-alpha04

1 تشرين الأول (أكتوبر) 2020

تم إصدار 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، وأصبحت تعرض الآن قيمة Dp بدلاً من AnimatedValue. (I5f3ed)

إصلاح الأخطاء

  • تم تعديل العديد من واجهات برمجة تطبيقات الرسومات
    • تم تعديل واجهات برمجة التطبيقات الخاصة بتحويلات تغيير الحجم والتدوير لتستهلك مَعلمة إزاحة واحدة لتمثيل إحداثيات نقطة الارتكاز بدلاً من مَعلمات عائمة منفصلة لإحداثيات س/ص في DrawScope وDrawTransform
    • تمت إزالة الطريقتَين Rect.expandToInclude وRect.join
    • عدّلنا مستندات "نصف القطر" لتشير إلى الشكل البيضوي بالإضافة إلى الشكل الإهليلجي
    • تمت إضافة مستندات للإشارة إلى أنّه يجب عدم استدعاء الدالة الإنشائية العامة لفئة Radius المضمّنة مباشرةً، بل يجب إنشاء عناصر Radius من خلال دوالها الإنشائية.
    • تمت إزالة واجهات برمجة تطبيقات RoundRect للاستعلام عن topRight وbottomRight وbottomCenter وما إلى ذلك.
    • إيقاف Rect.shift نهائيًا واستخدام Rect.translate بدلاً منه
    • إزالة واجهتَي برمجة التطبيقات RoundRect.grow وRect.shrink
    • تمت إعادة تسمية RoundRect.outerRect إلى Rect.boundingRect
    • تمت إزالة طرق RoundRect.middleRect/tallMiddleRect/wideMiddleRect وRect.isStadium
    • تمت إعادة تسمية RoundRect.longestSide إلى RoundRect.maxDimension
    • تمت إعادة تسمية RoundRect.shortestSide إلى RoundRect.minDimension
    • تم تغيير RoundRect.center ليكون سمة بدلاً من دالة
    • تم تعديل الدالة الإنشائية RoundRect لتستهلك خصائص Radius بدلاً من المَعلمات الفردية لقيم نصف القطر x/y
    • تمت إزالة واجهات برمجة التطبيقات الخاصة بالحجم التي افترضت أنّها مستطيل بنقطة بداية عند 0,0
    • تمت إضافة واجهة برمجة تطبيقات لتدمير البيانات إلى Radius
    • نقلنا العديد من دوال إضافة RoundRect إلى خصائص بدلاً من ذلك
    • (I8f5c7، b/168762961)
  • تم إيقاف foundation.Box نهائيًا. يُرجى استخدام foundation.layout.Box بدلاً من ذلك. (Ie5950، b/167680279)
  • تمت إعادة تسمية الحزمة لتصبح Box. سيتم إيقاف Box القديم نهائيًا واستخدام Box الجديد في compose.foundation.layout. سيتيح المربّع الجديد ترتيب العناصر الفرعية فوق بعضها البعض عندما يتضمّن عدة عناصر فرعية، وهذا يختلف عن المربّع السابق الذي كان يتصرف بشكل مشابه للعمود. (I94893، b/167680279)
  • تم إيقاف مَعلمات تزيين المربّعات نهائيًا. إذا كنت تريد إضافة زخارف أو مساحة متروكة إلى المربّع، استخدِم المعدِّلات بدلاً من ذلك (Modifier.background وModifier.border وModifier.padding) (Ibae92 وb/167680279).
  • تم تعديل العديد من واجهات برمجة تطبيقات الرسومات
    • تم تعديل واجهات برمجة التطبيقات DrawScope لتتضمّن طرق تحويل ذات نطاق محدّد للإشارة إلى أنّه لا يتم تطبيق التحويل إلا ضمن دالة الرجوع ويتم إزالته بعد استدعاء دالة الرجوع
    • تم تعديل مستندات clipPath للإشارة إلى Path بدلاً من المستطيل الدائري
    • تم إصلاح المسافة في المستندات الخاصة بالمعلَمة right في clipPath
    • تمت إعادة تسمية DrawScope.drawCanvas إلى drawIntoCanvas وإزالة مَعلمة الحجم
    • تمت إعادة تسمية المَعلمتَين dx/dy في طريقة inset إلى أفقية وعمودية
    • تمت إضافة تحميل زائد للداخل يوفّر قيمة الداخل نفسها لجميع الحدود الأربعة
    • تمت إزالة المستندات المتعلقة بطريقة الإدراج التي تشير إلى أنّه سيتم تطبيق الإدراج على جميع الجوانب الأربعة
    • تعديل المستندات الخاصة بفئة Rect
    • تعديل التعليقات على مَعلمات 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

‫16 سبتمبر 2020

تم إصدار 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)
  • تضيف هذه السمة إمكانية عرض ارتفاعات ديناميكية متحركة لـ Button وFloatingActionButton. يتم الآن تحريك المسقط الرأسي بين الحالتَين التلقائية والمضغوطة. لتخصيص الارتفاع بين الحالات، يُرجى استخدام ButtonConstants.defaultAnimatedElevation() وFloatingActionButtonConstants.defaultAnimatedElevation() بدلاً من ضبط قيمة Dp ثابتة في جميع الحالات. (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

‫2 سبتمبر 2020

تم إصدار 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

26 آب (أغسطس) 2020

تم إصدار 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

19 آب (أغسطس) 2020

تم إصدار 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 اللذين تم إيقافهما نهائيًا سابقًا. استخدِم Row وRadioBotton بدلاً من ذلك (I381b7، b/163806637)
  • تمت إزالة عمليات معاودة الاتصال onFocusChanged من TextField. استخدِم 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. يستضيف هذا العنصر Snackbars استنادًا إلى الحالة وهو مسؤول عن الانتقال بينها.
    • تمت إضافة SnackbarHostState للسماح بالتحكّم في أشرطة المعلومات وأدوات استضافة أشرطة المعلومات وفصلها عن ScaffoldState. يمكنك الوصول إلى هذه الحالة أيضًا من خلال scaffoldState.snackbarHostState.
    • تمت إضافة ميزة "التحميل الزائد لشريط المعلومات" لدعم واجهة مشتركة بين snackbarHostState وأشرطة المعلومات نفسها. (I79aaa)
  • إضافة المَعلمة enabled إلى IconButton، وإعادة ترتيب المَعلمات في IconToggleButton (I0a941، b/161809385، b/161807956)
  • تمت إزالة إصدار ListItem الذي يتضمّن واجهة برمجة تطبيقات مستندة إلى السلسلة. استخدِم إصدار خانة بدلاً من ذلك. (Ib8f57، b/161804681)
  • تمت إزالة مكوّن FilledTextField المتوقّف نهائيًا. يُرجى استخدام TextField بدلاً من ذلك للحصول على تنفيذ حقل النص المملوء وفقًا لإرشادات Material Design. (I5e889)
  • تستخدم AlertDialog الآن FlowRow للأزرار (I00ec1 وb/161809319 وb/143682374)
  • تمت إضافة مَعلمات في Modifier.swipeable لتغيير مقدار المقاومة عند التمرير سريعًا خارج الحدود. تمت إزالة مَعلمات [min/max]Value. (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)
  • تم تعديل المَعلمة thresholds في Modifier.swipeable، وأصبحت الآن تأخذ زوجًا من الحالات (من النوع T) وتعرض الحد بينهما في شكل ThresholdConfig. تمت إضافة المَعلمة dismissThresholds إلى SwipeToDismiss، وهي عبارة عن دالة lambda (DismissDirection) -> ThresholdConfig. (Ie1080)
  • يتضمّن شريط التمرير المزيد من الألوان لتخصيص دقيق (I73e64، b/161810475)
  • تمت إعادة تسمية مَعلمة لون البطاقة إلى backgroundColor (I01fc1، b/161809546)
  • أصبح بإمكانك الآن تخصيص ألوان الخلفية والمحتوى في شريط المعلومات (I238f2، b/161804381)
  • تمت إضافة مَعلمات التخصيص modifier وbackgroundColor وcontentColor وscrimColor إلى Drawers (I23655 وb/161804378)
  • تم إيقاف الدالة البرمجية القابلة للإنشاء state { ... } نهائيًا واستبدالها باستدعاءات صريحة للدالة remember { mutableStateOf(...) } لزيادة الوضوح. يقلّل ذلك من مساحة واجهة برمجة التطبيقات وعدد المفاهيم المتعلّقة بإدارة الحالة، ويتوافق مع نمط by mutableStateOf() لتفويض سمات الفئة. (Ia5727)
  • تمت إعادة تسمية مَعلمة المساحة المتروكة للزر إلى contentPadding (Id252e، b/161809394)
  • أضِف مكوّنًا تجريبيًا من مواد SwipeToDismiss. (I129e5)

إصلاح الأخطاء

  • تمت إزالة onChildPositioned وOnChildPositionedModifier. على المطوّرين استخدام onPositioned وOnPositionedModifier في تصميم الأطفال بدلاً من ذلك. (I4522e، b/162109766)
  • تمت إضافة دالة lambda الخاصة بـ mergePolicy إلى SemanticsPropertyKey. يمكن استخدامها لتحديد سياسة مخصّصة لدمج جميع العناصر الفرعية. تتمثّل السياسة التلقائية في استخدام قيمة العنصر الأصل إذا كانت متوفّرة، وإلا سيتم استخدام قيمة العنصر الفرعي. (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

‫5 آب (أغسطس) 2020

تم إصدار 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 عمليات الإيداع هذه.

تغييرات واجهة برمجة التطبيقات

  • أصبحت "الألوان" الآن فئة نهائية بدلاً من واجهة. بدلاً من توسيع نطاق التنفيذ وتوفير تنفيذ مخصّص، عليك إنشاء عنصر Ambient جديد لكائن المظهر المخصّص، والوصول إلى كائن المظهر من خلال العنصر Ambient الجديد في مكوّناتك، على غرار طريقة عمل 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 لتسهيل العثور على أبسط واجهة برمجة تطبيقات مطلوبة واستخدامها (Ia6242، b/155482676)

إصلاح الأخطاء

  • تم إيقاف OnChildPositioned نهائيًا. استخدِم OnPositioned في العنصر الفرعي بدلاً من ذلك. (I87f95، b/162109766)
  • إصلاحات واسعة النطاق في واجهة برمجة التطبيقات (I077bc)
    1. إزالة واجهة OffsetBase غير المستخدَمة
    2. مواءمة فئتَي Offset وIntOffset للحصول على مساحة سطح متسقة لواجهة برمجة التطبيقات
    3. إعادة تسمية IntOffset.Origin إلى IntOffset.Zero لضمان التوافق مع Offset API
    4. نقل طريقة nativeCanvas من واجهة Canvas لإتاحة إنشاء مستهلكين لنسخ Canvas الخاصة بهم
    5. تم إنشاء فئة EmptyCanvas وهمية لإعادة تصميم DrawScope ليكون مَعلمة غير فارغة بدلاً من lateinit وضمان عدم إمكانية أن يكون الحقل فارغًا
    6. تمت إعادة تسمية تعدادات ClipOp لتصبح Pascal Case
    7. إعادة تسمية تعدادات FilterQuality لتصبح Pascal Case
    8. تمت إعادة تسمية تعدادات StrokeJoin لتصبح Pascal Case
    9. تمت إعادة تسمية تعداد PointMode ليكون Pascal Case
    10. تمت إعادة تسمية تعدادات PaintingStyle لتصبح Pascal Case
    11. تمت إعادة تسمية تعدادات PathFillType لتصبح Pascal Case
    12. تمت إعادة تسمية تعداد StrokeCap إلى Pascal Case
    13. تم تعديل تنفيذ DrawCache لكي لا يستخدم مَعلمات lateinit
    14. تم تعديل DrawScope لكي لا يستخدم التفويض الكسول للمعلَمات الداخلية fillPaint وstrokePaint
    15. تم تعديل دالة Image القابلة للإنشاء لتجنُّب استخدام Box لتقليل الحمل الزائد
    16. تعديل فئة "المخطّط التفصيلي" لتضمين التعليقات التوضيحية ‎ @Immutable
    17. تم تعديل PathNode لتضمين التعليقات التوضيحية @Immutable لكل تعليمات مسار
    18. تم تعديل التركيبة الفرعية Vector لإزالة عمليات التحقّق الشرطية المكرّرة من المساواة، لأنّ عملية الإنشاء تتعامل معها
    19. إيقاف نهائي لطُرق إنشاء Rect المصاحبة واستخدام طرق إنشاء الدوال بدلاً منها
    20. تم تعديل فئات Brush ومنشئات الدوال باستخدام واجهات برمجة التطبيقات ‎@Immutable و‎ @Stable
    21. تم تعديل تعداد VertexMode ليكون PascalCase
    22. تم تعديل طريقة selectPaint في DrawScope لتعديل مَعلمات ضربات الفرشاة في الطلاء بشكل مشروط إذا تم تغييرها
    23. تم تعديل الحجم لإضافة واجهة برمجة تطبيقات تفكيك البنية، وإعادة تسمية UnspecifiedSize إلى Unspecified، وإزالة الطرق غير المستخدَمة
  • نقل مربع الحوار إلى واجهة المستخدم (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)
  • يجب تحديد النوع T بشكل صريح لـ transitionDefinition. (I1aded)
  • تم إيقاف Modifier.plus نهائيًا، يُرجى استخدام Modifier.then بدلاً من ذلك. توفّر الكلمة الأساسية "ثم" إشارة أقوى للترتيب، كما أنّها تحظر كتابة Modifier.padding().background() + anotherModifier، ما يؤدي إلى إيقاف السلسلة ويصعّب قراءتها (Iedd58، b/161529964).
  • تمت إعادة تسمية AndroidComposeTestRule إلى createAndroidComposeRule. (I70aaf)
  • أضِف SemanticsMatcher الخاصَّين بالدالتَين isFocused() وisNotFocused(). (I0b760)
  • تمت إزالة BaseGestureScope.globalBounds، والتي لا يجب استخدامها في الاختبارات. استخدِم الإحداثيات المحلية للعقدة التي تتفاعل معها بدلاً من ذلك. (Ie9b08)
  • تم إصلاح موضع النافذة المنبثقة على الشاشات التي تحتوي على فتحة. (Idd7dd)
  • تمت إعادة تسمية Modifier.drawBackground إلى Modifier.background (I13677)

الإصدار 0.1.0-dev15

‫22 تموز (يوليو) 2020

تم إصدار 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 من Compose، عليك تعديل التبعيات وفقًا لمقتطفات الرموز الجديدة الموضّحة أعلاه في تعريف التبعيات.

تغييرات واجهة برمجة التطبيقات

  • تم إيقاف التعليق التوضيحي @Model نهائيًا. استخدِم state وmutableStateOf كبدائل. تم اتّخاذ قرار الإيقاف النهائي هذا بعد مناقشات دقيقة.

    السبب

    تشمل الأسباب، على سبيل المثال لا الحصر، ما يلي:

    • يقلّل من مساحة واجهة برمجة التطبيقات والمفاهيم التي نحتاج إلى شرحها
    • تتوافق بشكل أكبر مع مجموعات الأدوات المشابهة الأخرى (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 }
     )
    }
    

    الحلّ البديل 1: استخدام State<OriginalClass> وإنشاء نُسخ

    ويسهّل استخدام فئات البيانات في Kotlin اتّباع هذا الأسلوب. في الأساس، يجب تحويل جميع الخصائص var السابقة إلى خصائص val لفئة البيانات، ثم استخدام state بدلاً من remember، وتعيين قيمة الحالة إلى نُسخ مستنسخة من الأصل باستخدام طريقة 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) }
     )
    }
    

    البديل 2: استخدام mutableStateOf ووسيطات الخصائص

    يتم تسهيل هذا الأسلوب باستخدام أدوات تفويض السمات في Kotlin وواجهة برمجة التطبيقات mutableStateOf التي تتيح لك إنشاء مثيلات 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)

  • تمت إضافة المَعلمة thresholds في stateDraggable لتحديد الحدود الدنيا بين نقاط الارتكاز. تم استخدام ذلك لضبط حد 56dp في اللوحة السفلية. يستخدم BottomDrawerLayout الآن أيضًا تعدادًا منفصلاً باسم BottomDrawerState. (I533fa)

  • تزيل هذه السمة Modifier.ripple التي تم إيقافها نهائيًا سابقًا. تستخدم السمة Clickable الآن تأثير التموّج كإشارة تلقائية (إذا كان لديك MaterialTheme {} مضبوط في تطبيقك)، لذا في معظم الحالات، يمكنك استخدام السمة Clickable والحصول على إشارة التموّج مجانًا. إذا كنت بحاجة إلى تخصيص المَعلمة color / size / bounded الخاصة بالتموّج، يمكنك إنشاء RippleIndication يدويًا وتمريرها إلى clickable كمَعلمة indication. (I663b2، b/155375067)

  • تمت إزالة عملية إلغاء نهائية متوقّفة نهائيًا للدالة البرمجية القابلة للإنشاء FilledTextField (I7f8f8)

  • إعادة تسمية عنصر الزر (الذي يحتوي على الإعدادات التلقائية التي تستخدمها وظيفة الزر) إلى ButtonConstants (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)

  • من أجل دمج عدد الفئات المستخدَمة لتمثيل معلومات الحجم، يجب توحيد استخدام فئة Size بدلاً من PxSize. يوفّر ذلك مزايا فئة مضمّنة للاستفادة من نوع بيانات طويل لتضمين قيمتَين عائمتَين لتمثيل العرض والارتفاع كقيم عائمة. (Ic0191)

  • إيقاف Modifier.ripple نهائيًا تستخدم السمة Clickable الآن تأثير التموّج كإشارة تلقائية (إذا كان لديك MaterialTheme {} مضبوط في تطبيقك)، لذا في معظم الحالات، يمكنك استخدام السمة Clickable والحصول على إشارة التموّج مجانًا. إذا كنت بحاجة إلى تخصيص المَعلمة color / size / bounded الخاصة بالتموّج، يمكنك إنشاء RippleIndication يدويًا وتمريرها إلى clickable كمَعلمة indication. (I101cd، b/155375067)

  • تمت إعادة تصميم واجهة برمجة التطبيقات Scaffold: تم تغيير أسماء بعض المَعلمات، وأضفنا مَعلمات جديدة لتحسين التخصيص. تمت إضافة دالة getter للاستعلام عن أحجام Fab وTopBar وBottomBar (I0e7ce)

  • تمت إضافة المكوّن DropdownMenu في ui-material، وهو تنفيذ لقائمة Material Design. (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)

  • توفير دعم إجراء IME والتحويل المرئي ونوع لوحة المفاتيح في FilledTextField (‫I1f9cf، b/155075201)

  • تضيف هذه السمة المَعلمة strokeWidth إلى CircularProgressIndicator لتخصيص حجم الحدّ الخارجي. لتغيير حجم الخط (الارتفاع) الخاص بـ LinearProgressIndicator، يمكنك استخدام Modifier.preferredHeight() أو أداة تعديل أخرى للحجم. (Icea16، b/154919081)

  • تضيف هذه السمة المَعلمة strokeWidth إلى CircularProgressIndicator لتخصيص حجم الحدّ الخارجي. لتغيير حجم الخط (الارتفاع) الخاص بـ LinearProgressIndicator، يمكنك استخدام Modifier.preferredHeight() أو أداة تعديل أخرى للحجم. (Icea16، b/154919081)

  • تمت إضافة واجهة برمجة تطبيقات للخانة من أجل الرموز البادئة واللاحقة في FilledTextField ومعالجة حالة الخطأ (Ic12e0)

  • تم تغيير اللون التلقائي لأزرار الإجراء العائم (FAB) وأزرار الإجراء العائم الموسّعة إلى MaterialTheme.colors.secondary. (I3b9b9، b/154118816)

  • تم استبدال جميع استخدامات Color القابلة للتصغير في واجهة برمجة التطبيقات بأخرى غير قابلة للتصغير، واستخدام Color.Unset بدلاً من القيمة الخالية (Iabaa7)

  • تمت إعادة تسمية EdgeInsets إلى InnerPadding. تمت إعادة تسمية المَعلمة innerPadding في "أزرار Material" إلى paddding. (I66165)

  • أصبح شريط التمرير الآن بلا حالة. على المستخدمين تمرير الحالة وتعديلها بأنفسهم، تمامًا كما هو الحال في أي عنصر تحكّم آخر. (Ia00aa)

  • تمت إزالة StaticDrawer. إذا كنت بحاجة إلى ذلك، استخدِم Box مع عرض محدّد للمادة بدلاً من ذلك (I244a7).

  • تمت إضافة تنفيذ "حقل النص المملوء" وفقًا لمواصفات "التصميم المتعدد الأبعاد" (Ic75cd)

  • تمت إضافة مَعلمة المعدِّل إلى ListItem وإعادة ترتيب المَعلمات من أجل تعزيز نص lambda اللاحق (I66e21)

  • تضيف هذه السمة مَعلمة منشئ defaultFontFamily إلى Typography، ما يتيح تحديد مجموعة الخطوط التلقائية التي سيتم استخدامها لأي TextStyles مقدَّمة لا تتضمّن مجموعة خطوط. (I89d07)

  • تمت إزالة "جداول بيانات المواد" مؤقتًا من مساحة واجهة برمجة التطبيقات. (Iaea61)

  • إعادة تسمية المَعلمات في العنصر القابل للإنشاء Divider (Ic4373)

  • الأطفال (Ia6d19)

  • إزالة MaterialTheme.emphasisLevels، واستخدام EmphasisAmbient.current بدلاً من ذلك لاسترداد مستويات التركيز (Ib5e40)

  • تم تعديل نظام سمات الأشكال وفقًا لمواصفات Material Design. يمكنك الآن توفير أشكال صغيرة ومتوسطة وكبيرة ليتم استخدامها من قِبل معظم المكوّنات (Ifb4d1).

  • تم تغيير واجهات برمجة التطبيقات MaterialTheme، مثل MaterialTheme.colors()‎ وMaterialTheme.typography()‎، لتصبح خصائص بدلاً من دوال. أزِل الأقواس من المكالمات الحالية، ولا يُتوقّع حدوث أي تغيير في السلوك. (I3565a)

  • تمت إعادة تصميم واجهات برمجة التطبيقات FloatingActionButton لقبول رموز lambda قابلة للإنشاء بدلاً من الأنواع الأساسية. يمكنك الاطّلاع على النماذج المعدّلة لمعلومات الاستخدام. (I00622)

  • إضافة المَعلمة enabled إلى مربّع الاختيار ومفتاح التبديل والعنصر القابل للتبديل (I41c16)

  • أصبح Ripple الآن أداة تعديل. على الرغم من أنّ Clickable لم يتم تحويلها بعد، فإنّ الاستخدام المقترَح هو Clickable(onClick = { ... }, modifier = ripple()) (Ie5200، b/151331852، b/150060763).

  • تم نقل Surface وCard من androidx.ui.material.surface إلى androidx.ui.material (I88a6d، b/150863888)

  • يحتوي كل من Button وFloatingActionButton وClickable الآن على المَعلمة enabled المنفصلة. تمت إعادة تسمية بعض المَعلمات في "الزر" أو إعادة ترتيبها. (I54b5a)

  • تمت إعادة تسمية Image إلى ImageAsset للتمييز بشكل أفضل بين بيانات Image وImage القابل للإنشاء القادم والمستخدَم للمشاركة في التنسيق ورسم المحتوى. _Body:تم إنشاء طريقة إضافة Bitmap.asImageAsset() إلى android.graphics.Bitmap لإنشاء مثيل من ImageAsset مفيد لدمج تطوير تطبيقات Android التقليدية مع إطار عمل Compose (Id5bbd)

  • تمت إزالة واجهة برمجة التطبيقات Snackbar API التي تتضمّن مَعلمات String واستبدالها بنسخة معدَّلة تقبل تعبيرات lambda قابلة للإنشاء. الاطّلاع على نماذج محدَّثة لمعلومات الاستخدام (I55f80)

  • إعادة تصميم واجهات برمجة التطبيقات الخاصة بعلامات التبويب لقبول تعبيرات lambda text وicon (Ia057e)

  • تمت إضافة مكوّن BottomNavigation، يمكنك الاطّلاع على المستندات والأمثلة للحصول على معلومات حول الاستخدام (I731a0).

  • تمت إضافة Icon وIconButton وIconToggleButton، وتمت إزالة AppBarIcon. يمكنك استبدال الاستخدامات الحالية لـ AppBarIcon مباشرةً بـ IconButton، وستتضمّن الآن مساحة اللمس الصحيحة. راجِع الأمثلة للحصول على معلومات حول الاستخدام، وراجِع الرموز للحصول على رموز Material Icons المتوفّرة التي يمكنك استخدامها مباشرةً مع هذه المكوّنات. (I96849)

  • تم استبدال ButtonStyle بوظائف مميزة وإزالة التحميل الزائد للنص (السلسلة). يمكنك الاطّلاع على نماذج محدّثة لمعلومات الاستخدام. (If63ab، b/146478620، b/146482131)

  • إعادة تسمية عنصر التعديل Border إلى DrawBorder (I8ffcc)

  • لم يعُد LayoutCoordinates يتضمّن سمة موضع. لا تكون السمة position منطقية عند استخدام LayoutModifiers أو التدوير أو تغيير الحجم. بدلاً من ذلك، على المطوّرين استخدام parentCoordinates وchildToLocal() لاحتساب عملية التحويل من LayoutCoordinate إلى أخرى.

    تستخدم LayoutCoordinates السمة IntPxSize للمقاس بدلاً من PxSize. تستخدِم التصاميم أحجامًا بالبكسل للأعداد الصحيحة، لذا يجب أن تستخدِم جميع أحجام التصاميم أعدادًا صحيحة وليس قيمًا ذات فاصلة عشرية. (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)
  • تمت إعادة تسمية العديد من واجهات برمجة التطبيقات الخاصة بالاختبار لتكون أكثر سهولة في الاستخدام. تمت إعادة تسمية جميع واجهات برمجة التطبيقات findXYZ لتصبح onNodeXYZ. تمت إعادة تسمية جميع واجهات برمجة التطبيقات doXYZ إلى performXYZ. (I7f164)
  • تم تغيير Transition API لعرض TransitionState بدلاً من تمرير TransitionState إلى العناصر الفرعية. ويجعل ذلك واجهة برمجة التطبيقات أكثر اتساقًا مع واجهات برمجة التطبيقات animate(). (I24e38)
  • تمت إضافة فئة وحدة IntBounds، وهي تمثّل حدود وحدات البكسل الصحيحة من التصميم. تم تعديل واجهة برمجة التطبيقات الخاصة بـ PopupPositionProvider لاستخدامها. (I0d8d0، b/159596546)
  • تمت إضافة علامة اختيارية جديدة useUnmergedTree إلى أدوات البحث. (I2ce48)
  • تمت إزالة واجهات برمجة التطبيقات القديمة لاختبار الحجم. (Iba0a0)
  • Removed Shader inline class that wrapped the NativeShader expect class Renamed NativeShader to Shader. لم يضِف صف Shader المضمّن أي قيمة إلى مساحة واجهة برمجة التطبيقات، وكان صفًا مضمّنًا، لذا استخدِم صف NativeShader مباشرةً. (I25e4d)
  • تتضمّن الآن النوافذ المنبثقة ومربّعات الحوار والقوائم سمة MaterialTheme السياقية (Ia3665 وb/156527485).
  • أصبحت القائمة المنسدلة Material DropdownMenu قابلة للتمرير الآن. (Ide699)
  • تمت إزالة مَعلمة اتجاه التنسيق من كتلة القياس الخاصة بالدالة Layout(). ومع ذلك، يتوفّر اتجاه التنسيق داخل دالة الرجوع من خلال عنصر نطاق القياس (Ic7d9d).
  • استخدام AnimationSpec بدلاً من AnimationBuilder في واجهات برمجة التطبيقات ذات المستوى الأعلى لتوضيح مفهوم مواصفات الحركة الثابتة -تحسين لغة DSL الخاصة بالانتقال من خلال إزالة شرط lambda لإنشاء AnimationSpec، مثل tween وspring بدلاً من ذلك، يتم تلقّي مَعلمات الدالة الإنشائية مباشرةً. -تحسين سهولة الاستخدام العامة لـ 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)
  • تمت إعادة تصميم فئة Radius لتصبح فئة مضمّنة. تمت إزالة طرق إنشاء العناصر المصاحبة لصالح دالة الإنشاء مع مَعلمة تلقائية لجعل نصف القطر على المحور y مطابقًا لنصف القطر الإلزامي للمَعلمة على المحور x.

    تم تعديل DrawScope.drawRoundRect لاستخدام مَعلمة Radius واحدة بدلاً من قيمتَين منفصلتَين من النوع float للنطاق الجغرافي على طول المحورَين x وy (I46d1b)

  • من أجل توحيد عدد الفئات المستخدَمة لتمثيل معلومات تحديد المواقع، يجب توحيد استخدام فئة Offset بدلاً من PxPosition. يوفّر ذلك مزايا فئة مضمّنة للاستفادة من نوع بيانات طويل لتعبئة قيمتَين عائمتَين لتمثيل الإزاحتَين x وy الممثّلتَين كقيم عائمة. (I3ad98)

  • تم استبدال استخدام فئة Px في العديد من فئات Compose كجزء من عملية إعادة البناء الكبيرة للاعتماد فقط على Dp والأنواع الأساسية لمعلمات البكسل. تم حذف فئة Px بالكامل (I3ff33)

  • تم إيقاف المكوّن القابل للتبديل نهائيًا. استخدِم Modifier.toggleable بدلاً من ذلك (I35220، b/157642842)

  • تم استبدال استخدام فئة Px في العديد من فئات Compose كجزء من عملية إعادة التصميم الكبيرة للاعتماد فقط على Dp والأنواع الأساسية لمعلمات البكسل (I086f4)

  • تم استبدال استخدام فئة Px في العديد من فئات Compose كجزء من عملية إعادة التصميم الكبيرة للاعتماد فقط على Dp والأنواع الأساسية لمعلمات البكسل (Id3434)

  • تم استبدال استخدام فئة Px في العديد من فئات Compose كجزء من عملية إعادة التصميم الكبيرة للاعتماد فقط على Dp والأنواع الأساسية لمعلمات البكسل (I97a5a)

  • تم إصلاح مشكلة عدم استدعاء onClick لعناصر DropdonMenuItems. (I3998b، b/157673259)

  • تم إيقاف استخدام MutuallyExclusiveSetItem نهائيًا. استخدِم Modifier.selectable بدلاً من ذلك. (I02b47، b/157642842)

  • تم إيقاف TestTag نهائيًا. استخدِم Modifier.testTag بدلاً من ذلك. (If5110، b/157173105)

  • يحتوي مؤشر TextField على تأثير حركي وامض (Id10a7)

  • استبدال استخدام فئة Px في فئات Compose المختلفة كجزء من عملية إعادة البناء الكبيرة للاعتماد فقط على Dp والأنواع الأساسية لمعلمات البكسل (I19d02)

  • توفّر أداة VerticalScroller الآن أداة Column بدون أي إعدادات إضافية. توفّر أداة HorizontalScroller الآن Row تلقائيًا. (Ieca5d، b/157020670)

  • استبدال استخدام فئة Px في العديد من فئات Compose كجزء من عملية إعادة البناء الكبيرة للاعتماد فقط على Dp والأنواع الأساسية لمعلمات البكسل (Iede0b)

  • تمت إعادة إتاحة Modifier.semantics للسماح باستخدامها مع المكوّنات ذات المستوى العالي. (I4cfdc)

  • تم تغيير واجهة برمجة التطبيقات الخاصة بمعدِّلات DrawLayer: تمت إعادة تسمية outlineShape إلى shape، وأصبحت القيمة التلقائية هي RectangleShape، كما أصبحت غير قابلة للتصغير. تمت إعادة تسمية clipToOutline إلى clip. تمت إزالة clipToBounds لأنّها مماثلة لـ clip == true مع RectangleShape (I7ef11، b/155075735)

  • تم تعديل واجهات برمجة التطبيقات الأعلى مستوى في Compose التي تعرض Canvas لعرض CanvasScope بدلاً من ذلك. ويؤدي ذلك إلى إزالة الحاجة إلى أن يحتفظ المستهلكون بكائنات Paint الخاصة بهم. بالنسبة إلى المستهلكين الذين ما زالوا بحاجة إلى الوصول إلى Canvas، يمكنهم استخدام طريقة drawCanvas الخاصة بالإضافة التي توفّر برنامج معالجة لإصدار أوامر الرسم باستخدام Canvas الأساسي. (I80afd)

  • تم إيقاف الدالة البرمجية القابلة للإنشاء AlignmentLineOffset نهائيًا، يُرجى استخدام المعدِّل relativePaddingFrom()‎ بدلاً منها. تمت إزالة العنصر القابل للإنشاء CenterAlignmentLine. (I60107)

  • تم تغيير واجهة برمجة التطبيقات WithConstraints trailing lambda. بدلاً من مَعلمتَين، يتضمّن الآن نطاقًا للمستلِم يوفّر، بالإضافة إلى القيود وlayoutDirection، خصائص minWidth وmaxWidth وminHeight وmaxHeight في Dp (I91b9a وb/149979702).

  • تمت إضافة معدِّل تنسيق defaultMinSizeConstraints الذي يضبط قيود الحجم على التنسيق المضمّن فقط عندما تكون القيود الواردة غير محدّدة (0 للحد الأدنى للقيود واللانهاية للحد الأقصى للقيود). (I311ea، b/150460257)

  • تمت إزالة FocusManagerAmbient. استخدِم FocusModifier.requestFocus للحصول على التركيز. (Ic4826)

  • تم إنشاء واجهة برمجة التطبيقات CanvasScope التي تتضمّن كائن Canvas لعرض مساحة واجهة برمجة تطبيقات للرسم بدون حالة وبطريقة تعريفية. يتم تضمين عمليات التحويل ضمن نطاق جهاز الاستقبال الخاص بها، كما يتم تحديد نطاق معلومات الحجم ضمن حدود الإدراج المقابلة. ولا يتطلّب ذلك من المستهلك الاحتفاظ بكائن حالة Paint الخاص به لتحديد عمليات الرسم.

    تمت إضافة CanvasScopeSample، كما تم تعديل التطبيق التجريبي ليشمل عرضًا توضيحيًا للرسومات التعريفية (Ifd86d).

  • إضافة خيار تخصيص لون المؤشر إلى TextField (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()‎ جديد للتحكّم في ترتيب رسم العناصر الفرعية ضمن التصميم الرئيسي نفسه. تمت إعادة تسمية السمة elevation في DrawLayerModifier إلى shadowElevation ولم تعُد تتحكّم في ترتيب الرسم. تم تغيير ترتيب المَعلمات في DrawShadow: أصبحت قيمة الارتفاع هي الأولى والشكل هو الثاني مع استخدام RectangleShape كقيمة تلقائية. (I20150، b/152417501)

  • تم نقل RectangleShape من androidx.ui.foundation.shape.* إلى androidx.ui.graphics.* (Ia74d5، b/154507984)

  • تعديل على واجهة برمجة التطبيقات TextField API: تم دمج عمليات معاودة الاتصال onFocus وonBlur في عملية معاودة اتصال واحدة onFocusChange(Boolean)‎ مع مَعلمة (I66cd3)

  • تمت إضافة المَعلمتَين verticalGravity وhorizontalGravity إلى Row وColumn على التوالي. (I7dc5a)

  • تم تعديل wrapContentWidth وwrapContentHeight لتوقُّع محاذاة عمودية أو أفقية بدلاً من أي محاذاة. تم تعديل أداة تعديل الجاذبية لقبول المحاذاة العمودية أو الأفقية. تم تعديل الصف والعمود والحزمة لتتوافق مع عمليات المحاذاة المستمرة المخصّصة. (Ib0728)

  • تم إنشاء واجهة برمجة التطبيقات PixelMap API لتتيح الاستعلام عن معلومات البكسل من ImageAsset. (I69ad6)

  • إزالة ProvideContentColor، واستخدام ContentColorAmbient مباشرةً مع Providers (Iee942)

  • تمت إعادة تسمية الوحدة ui-text-compose لتصبح ui-text. تحتوي الوحدة ui-text الآن على دوال CoreText وCoreTextField القابلة للإنشاء (Ib7d47).

  • تمت إعادة تسمية وحدة ui-text النمطية إلى ui-text-core (I57dec)

  • نقلنا عناصر CoreText وCoreTextField القابلة للإنشاء ضمن ui-framework/CoreText إلى ui-text-compose. يمكنك تضمين ui-text-compose في مشروعك. (I32042)

  • تحسين واجهة برمجة التطبيقات DrawModifier:

    • تم إنشاء نطاق المتلقّي للدالة draw() ContentDrawScope
    • تمت إزالة جميع المَعلمات من draw()
    • تتضمّن DrawScope الواجهة نفسها التي كانت تتضمّنها CanvasScope سابقًا
    • يحتوي ContentDrawScope على طريقة drawContent()‎ (Ibaced، b/152919067)
  • أصبح runOnIdleCompose وrunOnUiThread الآن دالتَين عامتَين بدلاً من طريقتَين في ComposeTestRule. (Icbe8f)

  • تم نقل عوامل تشغيل تفويض السمة 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)

  • تم نقل السمة Draggable إلى المعدِّل (Id9b16، b/151959544)

  • تم إيقاف الدالة البرمجية القابلة للإنشاء ParentData نهائيًا. عليك إما إنشاء أداة تعديل تنفّذ واجهة ParentDataModifier، أو استخدام أداة تعديل LayoutTag إذا كنت بحاجة ببساطة إلى وضع علامة على عناصر التنسيق الفرعية للتعرّف عليها داخل كتلة القياس. (I51368، b/150953183)

  • تم إيقاف دالة Center البرمجية القابلة للإنشاء. يجب استبداله إما بالمعدِّل LayoutSize.Fill + LayoutAlign.Center، أو بأحد العناصر القابلة للإنشاء Box أو Stack مع تطبيق المعدِّلات المناسبة (Idf5e0).

  • تمت إضافة واجهة برمجة التطبيقات VectorPainter API لاستبدال واجهة برمجة التطبيقات الحالية الخاصة بالعناصر الفرعية للرسومات المتجهة. نتيجة التركيب الفرعي هي كائن VectorPainter بدلاً من DrawModifier. تم إيقاف الدوال البرمجية السابقة القابلة للإنشاء DrawVector واستبدالها بـ VectorPainter.

    تمت إعادة تسمية واجهة برمجة التطبيقات Image(Painter) إلى PaintBox(Painter) تم إنشاء عنصر Vector قابل للإنشاء يعمل مثل العنصر Image القابل للإنشاء، ولكن باستخدام VectorAsset بدلاً من ImageAsset (I9af9a، b/149030271)

  • تمت إعادة تسمية LayoutFlexible إلى LayoutWeight. تمت إعادة تسمية المَعلمة "ضيق" إلى "ملء". (If4738)

  • تمت إزالة RepaintBoundary واستبدالها بـ DrawLayerModifier (I00aa4)

  • تم تغيير DrawVector من دالة قابلة للإنشاء عادية إلى عرض Modifier drawVector() الذي سيرسم المتّجه كخلفية للتصميم. (I7b8e0)

  • تم استبدال الدالة القابلة للإنشاء Opacity بالمعدِّل drawOpacity. (I5fb62)

  • استبدِل الدالة القابلة للإنشاء Clip بالمعدِّل drawClip(). DrawClipToBounds هو معدِّل مناسب يمكنك استخدامه عندما تحتاج فقط إلى قص المحتوى ضمن حدود الطبقة باستخدام شكل مستطيل. (If28eb)

  • تم استبدال الدالة البرمجية القابلة للإنشاء DrawShadow بأداة التعديل drawShadow(). يتم الآن رسم الظلال كجزء من LayerModifier. (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)

  • تم إنشاء دالة Created Image قابلة للإنشاء للتعامل مع تغيير الحجم/التنسيق بالإضافة إلى عرض ImageAsset معيّن على الشاشة. تتيح هذه الدالة البرمجية القابلة للإنشاء أيضًا رسم أي مثيل Painter عشوائي مع مراعاة حجمه الأصلي بالإضافة إلى توفير حجم ثابت أو الحد الأدنى للحجم (Ibcc8f).

  • تم إيقاف الدالة البرمجية Wrap القابلة للإنشاء نهائيًا. يمكن استبدالها إما بأداة التعديل LayoutAlign أو بعنصر Stack القابل للإنشاء (Ib237f).

  • تمت إضافة المَعلمة LayoutDirection إلى WithConstraints (I6d6f7)

  • تمت إتاحة إمكانية نشر اتجاه التنسيق من عقدة التنسيق الرئيسية إلى العناصر الفرعية. تمت إضافة أداة تعديل اتجاه التنسيق. (I3d955)

  • يتوافق مكوّن الحزمة مع اتجاه الكتابة من اليمين إلى اليسار (Ic9e00)

  • تمت إزالة الدالة البرمجية القابلة للإنشاء DrawShape. استخدِم المعدِّل DrawBackground بدلاً من ذلك. (I7ceb2)

  • إتاحة الاتجاه من اليمين إلى اليسار في أداة التعديل LayoutPadding (I9e8da)

  • تمت إضافة AdapterList، وهو مكوّن قائمة قابلة للتمرير لا يعرض سوى العناصر المرئية. تشمل المشاكل المعروفة حاليًا أنّه عمودي فقط ولا يتعامل بشكل كامل مع جميع حالات التغييرات التي تطرأ على العناصر التابعة له. (Ib351b)

  • تم تعديل العلامة ComposeFlags.COMPOSER_PARAM لتصبح true، ما سيؤدي إلى تغيير استراتيجية إنشاء الرموز البرمجية لمكوّن Compose الإضافي. على مستوى عالٍ، يؤدي ذلك إلى إنشاء دوال @Composable مع مَعلمة اصطناعية إضافية، يتم تمريرها إلى عمليات استدعاء @Composable اللاحقة لكي يتمكّن وقت التشغيل من إدارة التنفيذ بشكلٍ سليم. هذا تغيير كبير في التوافق الثنائي، ولكن من المفترض أن يحافظ على التوافق على مستوى المصدر في جميع الاستخدامات المسموح بها لـ Compose. (I7971c)

  • تمت إضافة مكوّن "لوحة العرض". تستهلك هذه الدالة البرمجية القابلة للإنشاء بعض المساحة (التي يوفّرها المستخدم) وتتيح لك الرسم باستخدام CanvasScope (I0d622).

  • تم دمج Density وDensityScope في واجهة واحدة. بدلاً من ambientDensity()، يمكنك الآن استخدام DensityAmbient.current. بدلاً من withDensity(density) فقط with(density) (I11cb1)

  • تم تغيير LayoutCoordinates لجعل providedAlignmentLines مجموعة بدلاً من خريطة، وتم جعل LayoutCoordinates تنفّذ عامل التشغيل get() بدلاً من ذلك لاسترداد قيمة. يسهّل ذلك على المعدّلات تعديل قيمة واحدة أو أكثر من المجموعة بدون إنشاء مجموعة جديدة لكل معدّل. (I0245a)

  • تعرض أدوات التمرير الآن سلوك حركة التمرير السريع الأصلي في Android. (I922af، b/147493715)

  • تحسينات على مساحة واجهة برمجة التطبيقات الخاصة بالقيود (Constraints) (I0fd15)