إنشاء مادة

أنشئ واجهات مستخدم Jetpack Compose باستخدام مكونات Material Design الجاهزة للاستخدام. هذه هي نقطة الدخول ذات المستوى الأعلى في أداة "الإنشاء"، وهي مصمّمة لتوفير مكوّنات تتطابق مع تلك الموضّحة على www.material.io.
آخر تعديل الإصدار الثابت إصدار محتمل الإصدار التجريبي الإصدار التجريبي الأول
13 تشرين الثاني (نوفمبر) 2024 1.7.5 - - 1.8.0-alpha06

البنية

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

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

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

الإعلان عن التبعيات

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

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

رائع

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

لمزيد من المعلومات عن العناصر الاعتمادية، اطّلِع على مقالة إضافة عناصر الاعتماد الخاصة بالإصدار.

ملاحظات

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

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

اطّلِع على مستندات أداة تتبُّع المشاكل لمزيد من المعلومات.

الإصدار 1.8

الإصدار 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)
  • اجعل شريط التمرير المادّي يغيّر قيمته عند الضغط على مفاتيح التحكّم. (I1c442)

الإصدار 1.8.0-alpha04

16 أكتوبر 2024

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

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

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

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

  • إتاحة تأثيرات التموج في المكونات الموسّعة على الإصدار 14 من نظام التشغيل Android والإصدارات الأحدث، مثل البطاقة التي يتم توسيعها عند النقر عليها في السابق، لم تكن التموجات تملأ الحجم الجديد، ولكن الآن ستتمدد إلى الحدود الجديدة. (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))

الإصدار 1.7

الإصدار 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 واستخدامها، يجب تمرير القيمة null. يتيح ذلك لبعض المكوّنات إنشاء مثيل بشكلٍ كسول عند الحاجة فقط، ما يؤدي إلى تحسين الأداء. وننصحك أيضًا بإجراء تغييرات مشابهة في مكوّناتك.
  • تم ترقية 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 من المادة (I5477b)

الإصدار 1.7.0-beta01

14 أيار (مايو) 2024

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

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

  • تم تعديل واجهة برمجة التطبيقات للحصول على روابط ذات مظهر Material في Text. على وجه التحديد، تمّت إزالة الطرق من TextDefaults لإنشاء LinkAnnotations ذات طابع معيّن وتحليل HTML باستخدام روابط ذات طابع معيّن. بدلاً من ذلك، تمت إضافة فئة TextLinkStyles تتيح تصميم الروابط كمَعلمة إلى عنصر Text composable. (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 دالة لاما متأخرة بعد الآن. (I9c029، b/261423850)
  • تم ترقية الإصدار BackdropScaffold من الإصدار التجريبي إلى الإصدار الثابت. أصبحت مواصفات الرسوم المتحركة الآن مواصفات tween وفقًا للإرشادات. لم تعُد المَعلمة snackbarHost لدالة BackdropScaffold هي المَعلمة الأخيرة لتجنُّب الخلط مع الدوالّ lambda اللاحقة. يوفّر BackdropScaffoldState واجهة برمجة تطبيقات progress(from, to) لطلب معلومات عن مستوى التقدّم بين نقاط الربط. (I73f48، b/261423218)
  • تم ترقية أوراق البيانات السفلية العادية من الإصدار التجريبي إلى الإصدار الثابت. تمّت إزالة وظائف الإنشاء التي تمّ إيقافها نهائيًا. أصبحت مواصفات الصور المتحركة الآن مواصفات Tween وفقًا للإرشادات. (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 ومكتبات أنظمة التصميم الأخرى.

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

الإصدار 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... وما إلى ذلك على المجموعات الجديدة، وتتضمّن رموزًا سيتمّ عكسها تلقائيًا في تنسيقات RTL. اطّلِع على قائمة رموز Material Design لمعرفة الرموز التي يمكن (ويجب) عكسها تلقائيًا.

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

  • تمت إضافة ميزة عرض الرموز بشكل معكوس تلقائيًا عند عرضها بتنسيقات من اليمين إلى اليسار. تقدّم الرموز في المكوّنات material-icons-core وmaterial-icons-extended الآن مجموعات رموز إضافية لتفعيل ميزة "المرآة التلقائية" عندما يسمح الرمز بذلك. يتمّ وضع البادئة Icons.AutoMirrored.Filled... وما إلى ذلك على المجموعات الجديدة، وتتضمّن رموزًا سيتمّ عكسها تلقائيًا في تنسيقات RTL. اطّلِع على قائمة رموز Material Design لمعرفة الرموز التي يمكن (ويجب) عكسها تلقائيًا. تم وضع علامة على سمات الرموز التي تم تقديمها سابقًا لهذه الرموز على أنّها متوقّفة نهائيًا، كما يتم اقتراح رمز بديل للمساعدة في عملية نقل البيانات. في حال عدم توفّر أي معالجة خاصة لعكس الرموز على لغة RTL، ننصحك بالانتقال إلى المجموعة الجديدة من الرموز. على سبيل المثال، يجب إعادة صياغة 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)
  • تم إصلاح عملية احتساب offset في DropdownMenu بحيث تعتمد Offsets x على اتجاه التنسيق المحلي فقط، ولن يتم عكس Offsets 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 والمكوّنات المستندة إلى "جداول بيانات Google". يُرجى استخدام طريقة التحميل الزائد الجديدة المقدَّمة حيث تكون الكثافة مَعلمة. (I1846e)
  • تعليقات توضيحية إضافية لتحديد الإدخالات المسموح بها للعناصر القابلة للتجميع (I51109)
  • تم تعديل ملفات واجهة برمجة التطبيقات لإضافة تعليقات توضيحية حول إيقاف التوافق (I8e87a، b/287516207)
  • تمت إضافة محاذاة جديدة لميزة "البدء" في FabPosition (Ib7aea، b/170592777)
  • تم إيقاف TextFieldColorsWithIcons في المادة 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 صريح (بوحدة sp) إلى TextStyles من Typography. يمكنك الرجوع إلى مستندات واجهة برمجة التطبيقات إذا كنت تريد تخصيص هذه القيم، والاطّلاع على مقالة المدونة للحصول على شرح مفصّل لهذه التغييرات. (Icabc3 وI3f801 وI04c03)

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

  • تم إيقاف واجهات برمجة التطبيقات Swipeable في Material نهائيًا. يُرجى الرجوع إلى واجهات برمجة تطبيقات AnchoredDraggable في Foundation التي تم تحسينها لكل من حالات الاستخدام البسيطة والمعقدة. (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 بطريقتَي open وclose، وأصبح الإزاحة الآن nullable. استخدِم requireOffset لطلب التعويض. (I3de9e)
  • تم تعديل الأدراج واللوحات لتأخير الضغطات بشكل صحيح في حال إمكانية أن تصبح الإيماءات أحداثًا للانتقال للأعلى أو للأسفل.
  • تمت إضافة المَعلمة minLines إلى Text وTextField وOutlinedTextField في material وmaterial3، ما يسمح بضبط الحد الأدنى لارتفاع المكوّن من حيث عدد الأسطر (I4af1d).

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

  • إصلاح مشكلة عدم استخدام pullRefresh لسرعة التنقّل، ما يؤدي إلى ظهور ميزة "الانتقال السريع للأسفل أو للأعلى" تم أيضًا تغيير توقيع واجهة برمجة التطبيقات لدالّة onRelease lambda في Modifier.pullRefresh لعرض قيمة Float للسرعة المستهلكَة (I7db65، b/266874741)
  • تعرض الآن السمات BottomSheetState وModalBottomSheetState وBottomDrawerState سمة التقدّم التي تشير إلى التقدّم بين نقطة الربط الحالية (الثابتة) وأقرب نقطة ربط في اتجاه التمرير السريع. (I1b317 وb/271169225 وb/276375124 وb/276776071 وb/270066861)
  • تم إصلاح إجراء الإغلاق AlertDialog ليظهر أسفل إجراء التأكيد عندما تتكدس الإجراءات فوق بعضها البعض لتلائم عرض مربّع الحوار. يتوافق هذا الإصلاح مع مواصفات التصميم المتعدد الأبعاد (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 على هذه المراجعات.

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

  • أضِف نموذجًا لإعادة تدفق مجموعة الشرائح. عدِّل الحشو الأفقي بين الشرائح الثانوية في نموذج مجموعة الشرائح على سطر واحد لمطابقة المواصفات. (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، وأصبح الإزاحة الآن nullable. استخدِم requireOffset لطلب التعويض. (I3de9e)
  • تمت إضافة المَعلمة minLines إلى Text وTextField وOutlinedTextField في material وmaterial3، ما يسمح بضبط الحد الأدنى لارتفاع المكوّن من حيث عدد الأسطر (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 لسرعة التنقّل، ما يؤدي إلى ظهور ميزة "الانتقال السريع للأسفل أو للأعلى" تم أيضًا تغيير توقيع واجهة برمجة التطبيقات لدالّة onRelease lambda في 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 semantics على Surfaces. سيتم استخدام هذه السمة في تغيير لاحق يحدّد ترتيب التنقّل استنادًا إلى المعنى الدلالي للعناصر، مثل الأسطح. (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. هنا تم الإبلاغ عن المشكلة في الأصل. تم إرسال حلّ لهذه المشكلة، وسيكون متاحًا في تحديث "الإنشاء" التالي. كحل بديل، يمكنك تحديث مكتبتَي androidx.compose.material وandroidx.compose.material3 إلى أحدث إصدار(1.1.0-alpha04) أو الرجوع إلى إصدار androidx.compose.foundation 1.4.0-alpha03.

الإصدار 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، وأصبح الإزاحة الآن nullable. استخدِم requireOffset لطلب التعويض. (I3de9e)
  • تمت إضافة واجهة برمجة تطبيقات Modifier API لطلب معلومات الانتقال للأعلى أو للأسفل في العناصر السابقة. (I2ba9d، b/203141462)
  • تُستخدَم في Clickable لتأخير التفاعلات الناتجة عن الضغط بشكل صحيح، عندما يمكن أن تصبح الإيماءات أحداث انتقال.
  • تم إصلاح مشكلة عدم تأخير Clickables للتأثيرات المتموّجة بشكلٍ صحيح عند استخدامها داخل Scrollable ViewGroup.
  • تم تعديل الأدراج واللوحات لتأخير الضغطات بشكل صحيح في حال إمكانية أن تصبح الإيماءات أحداثًا للانتقال للأعلى أو للأسفل.

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

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

تعديلات على التبعيات

  • يعتمد Compose UI وCompose Material الآن على Lifecycle 2.5.1. (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 إلى Text وTextField وOutlinedTextField في material وmaterial3، ما يسمح بضبط الحد الأدنى لارتفاع المكوّن من حيث عدد الأسطر (I4af1d).
  • تمت إضافة المَعلمة minLines إلى BasicText و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

تغيير قد يؤدي إلى إيقاف الميزة

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

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

  • أضِف مكوّن "السحب لإعادة التحميل" إلى ميزة "الإنشاء" (I29168).
  • غيِّر اسم المَعلمة من values إلى value في 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 على هذه المراجعات.

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

  • إضافة مكوّن "السحب لإعادة التحميل" إلى ميزة "الإنشاء" (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 على هذه المراجعات.

تغيير قد يؤدي إلى إيقاف الميزة

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

تم خفض الحد الأقصى المسموح به للارتفاع في مربّعات الحوار المنبثقة ومربّعات الحوار لإنشاء الرسائل من 30dp إلى 8dp. يؤثر هذا التغيير في كلّ من مربّعات الحوار المنبثقة والمخصّصة لمواد العرض وواجهة المستخدم. تم إجراء هذا التغيير للتخفيف من خطأ في تسهيل الاستخدام على إصدارات 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 على هذه المراجعات.

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

  • تغيير اسم المَعلمة من values إلى value في 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 باستخدام طرق الواجهات التلقائية في jdk8 (I5bcf1).

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

  • تعديل الشارة باستخدام علامة التبويب "الرمز الرئيسي" لربط الشارة بالاسم بدلاً من الرمز (I90993)

الإصدار 1.2.0-beta03

1 حزيران (يونيو) 2022

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

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

  • تم إصلاح خطأ كان يتسبب في ظهور BottomSheetScaffold فوق ظلّ شريط التطبيقات العلوي. BottomSheetScaffold يأخذ الآن أيضًا حالة الصفحة في الاعتبار عند وضع أشرطة التطبيقات المصغّرة: في الحالة المُدمجة، يتم وضع أشرطة التطبيقات المصغّرة فوق الصفحة وشريط التطبيقات المصغّر للإجراءات الفورية، وفي الحالة الموسّعة، يتم تثبيت أشرطة التطبيقات المصغّرة في أسفل الصفحة. (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)
  • تعديلات على واجهة برمجة التطبيقات Material 2 Surface API تضيف وظائف إضافية مُحمَّلة بشكل زائد لمساحات العرض القابلة للاختيار والتبديل (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)
  • تمّ التراجع عن التغيير السابق الذي كان يعتمد فقط على عرض لملف WindowInsetsControllerCompat، وأصبح يتطلّب مرة أخرى نافذة، وهي مطلوبة لإدارة بعض علامات النوافذ. تم إيقافViewCompat.getWindowInsetsController نهائيًا لصالح WindowCompat.getInsetsController لضمان استخدام النافذة الصحيحة (مثلاً إذا كان العرض في مربّع حوار). (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 التي تتيح إعداد تقارير وقت الترجمة عند استدعاء دالة مركّبة تستهدف عامل تطبيق لم يتم تصميمها لاستخدامه.

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

    بالنسبة إلى أدوات التطبيق المخصّصة، يجب أن تضيف الدوالّ القابلة للتجميع التي تستدعي دالة ComposeNode أو ReusableComposeNode تعليقًا توضيحيًا CompoableTarget للدالة وأي أنواع مَعلمات LAMBDA قابلة للتجميع. ومع ذلك، ننصح بإنشاء تعليق توضيحي تمّت الإشارة إليه باستخدام ComposableTargetMarker ثمّ استخدام التعليق التوضيحي الذي تمّت الإشارة إليه بدلاً من 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 إلى الطرق التي تُعدّ مثيلًا مفعّلاً للطرق الحالية بدون منطق معقّد. يقلل ذلك من عمليات التحقّق من ميزة "تذكُّر القيم" (العمليات التي تساوي) التي ينشئها المُجمِّع لجميع المَعلمات التي تتم تكرارها في الدالة الداخلية التي يتمّ استدعاؤها. (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.

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

  • تم الآن وضع علامة isSkipHalfExpanded على "ModalBottomSheetState". ويمكن ضبطه من خلال طريقة وضع التصميم أو تعديله لاحقًا من خلال ضبط خاصية 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
  • تحسينات على حجم أهداف اللمس
  • تجدر الإشارة إلى أنّه بالنسبة إلى Compose 1.0، ستوسّع مكونات Material مساحة التنسيق لاستيفاء إرشادات تسهيل الاستخدام في Material لحجم مساحة اللمس. على سبيل المثال، سيتم توسيع ناحية اللمس المستهدَفة للزرّ إلى الحدّ الأدنى من الحجم 48x48dp، حتى إذا ضبطت حجم الزرّ على قيمة أصغر. يؤدي ذلك إلى مواءمة Compose Material مع السلوك نفسه لمكونات Material Design، ما يضمن سلوكًا متسقًا في حال خلط Views وCompose. يضمن هذا التغيير أيضًا استيفاء الحد الأدنى من متطلبات تسهيل الوصول إلى مساحات اللمس عند إنشاء واجهة المستخدم باستخدام مكونات Compose Material.
  • إتاحة شريط التنقّل بشكل ثابت
  • ترقية عدد من واجهات برمجة التطبيقات التجريبية إلى إصدارات مستقرة
  • التوافق مع الإصدارات الأحدث من Kotlin

الإصدار 1.1.0-rc03

26 كانون الثاني (يناير) 2022

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

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

تجدر الإشارة إلى أنّه في ما يتعلّق بتطبيق Compose 1.0، ستوسّع مكونات Material مساحة التنسيق لاستيفاء حجم مساحة اللمس وفقًا لإرشادات تسهيل الاستخدام في Material. على سبيل المثال، سيتم توسيع ناحية اللمس المستهدَفة للزرّ إلى الحدّ الأدنى من الحجم 48x48dp، حتى إذا ضبطت حجم الزرّ على قيمة أصغر. يؤدي ذلك إلى مواءمة Compose Material مع السلوك نفسه لمكونات Material Design، ما يضمن سلوكًا متسقًا في حال خلط Views و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()، بدلاً من تأخيرها دائمًا لحدث "الانتقال للأسفل". (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، ما يوفر إمكانية التحكّم على مستوى منخفض في العلامات التي تمرّرها النافذة المنبثقة إلى Android WindowManager. ستكون مَعلمة دالة lambda هي العلامات المحسوبة من قيم PopupProperties التي تؤدي إلى ظهور علامات WindowManager، مثل focusable. ستكون نتيجة دالة lambda هي العلامات النهائية التي سيتم تمريرها إلى Android WindowManager. سيترك 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 composable ليعمل على احترام Dp.Hairline لمعلمة السماكة لإتاحة رسم فواصل وحدات بكسل واحدة بغض النظر عن كثافة الشاشة. (I16ffb، b/196840810)

الإصدار 1.1.0-alpha03

1 أيلول (سبتمبر) 2021

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

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

  • تم تعديل Compose 1.1.0-alpha03 ليصبح يعتمد على Kotlin 1.5.30. (I74545)

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

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

الإصدار 1.1.0-alpha02

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. تمت إضافة مكوّن الشارة الذي يمثّل محتوى الشارة المعتاد لعنصر 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 على عمليات الربط هذه.

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

الإصدار 1.0.1

4 آب (أغسطس) 2021

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

تعديلات على التبعيات

  • تم تعديلها لتصبح معتمدة على Kotlin 1.5.21.

الإصدار 1.0.0

28 تموز (يوليو) 2021

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

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

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

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

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

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

الإصدار 1.0.0-beta08

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

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

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

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

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

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

  • تم تحويل FabPosition إلى فئة مضمّنة من enum لدعم التوسيع المحتمل في المستقبل (I030fb)
  • تمّت إعادة صياغة استخدامات النطاقات المحدّدة إلى فئات مضمّنة لتجنُّب المشاكل المتعلّقة ببيانات when الشاملة عند إضافة قيم جديدة للنطاق المحدّد. (I2b5eb)
  • إضافة مهلة للنقرة على العناصر القابلة للنقر أو التبديل لمنع ظهور تموج أثناء الانتقال للأعلى أو للأسفل أو السحب (Ia2704، b/168524931)
  • لم تعُد سمتا ContentDescription وText semantics قيمًا مفردة، بل أصبحتا قائمتَين. يتيح ذلك دمجها كما هي بدلاً من عمليات التسلسل. تم أيضًا توفير واجهات برمجة تطبيقات اختبار أفضل للاستفادة من هذه التغييرات (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 على هذه المراجعات.

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

  • لم تعُد بحاجة إلى استخدام طرق الإضافات لإتاحة المسار في ميزة "إنشاء مسار". (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، وبالتالي ستكون سلسة حتى عندما يكون مؤشر تسلسل واجهة المستخدم قيد التحميل، مثل عند التنقّل بين الشاشات. لا يؤدي ذلك إلى تغيير واجهة برمجة التطبيقات الخاصة بالتأثير، ولكن قد يتم إدخال تغييرات على السلوك نتيجةً لهذا التغيير. للمساعدة في نقل البيانات، تمت إضافة LocalRippleNativeRendering. يمكنك تقديم القيمة false إلى CompositionLocal للرجوع إلى تنفيذ التموج السابق داخل CompositionLocalProvider. هذه الواجهة مؤقتة وستتم إزالتها في المستقبل، لذا إذا واجهت مشاكل تدفعك إلى استخدام هذه الواجهة، يُرجى الإبلاغ عن خطأ. (I902f8، b/168777351، b/183019123)
  • تمت إضافة واجهتَي برمجة تطبيقات CollectionInfo وCollectionItemInfo لأدوات تسهيل الاستخدام تتيحان وضع علامة على المجموعة وعناصرها لخدمات تسهيل الاستخدام (Id54ef وb/180479017)
  • تمت إضافة واجهة برمجة التطبيقات لإمكانية الوصول error التي تسمح بوضع علامة على عقدة تحتوي على إدخال غير صالح (I12997 وb/180584804 وb/182142737).

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

  • تم تعديل تنفيذ إدراجات كتالوج Material في ميزة "إنشاء" من: https://github.com/google/accompanist/pull/365. (I25dc3)
  • لم تعُد عناصر الصف والعمود التي تحتوي على weight(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 accessibility API. إذا تم وضع علامة على العقدة كمنطقة مباشرة، ستخطّط خدمات تسهيل الاستخدام لإرسال إشعار تلقائي للمستخدم بشأن التغييرات التي تطرأ عليها (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)

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

  • [بقلم "جوسي وولف"] BottomDrawer يلفّ الآن محتوى خانة الدرج. لا يُرسِل BottomDrawer خطأ IllegalStateException عندما يكون ارتفاع العنصر الرئيسي لا نهائيًا. سيتم الآن فتح الدرج السفلي في حالة تم توسيعه إذا كان أصغر من% 50 من العنصر الرئيسي. تم تعديل المستندات في BottomDrawerState وModalBottomSheetLayoutState. يعرض BottomDrawerState#isOpen الآن القيمة true إذا كان في حالة "مفتوح" أو "موسّع". (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 إلى Start، بما يتوافق مع الصف (Ib2dc7).
  • تمت إضافة واجهة مستخدم جديدة للمكوّن النائب والمخطّط في كتالوج Compose Material، وهو مضمّن حاليًا في العروض التوضيحية الحالية لاختبار الدمج. (Idfcb3)
  • لم يعُد androidx.compose.ui:ui يعتمد على AppCompat أو Fragment. إذا كنت تستخدِم ComposeView في تطبيقك، وكنت تستخدِم Fragment و/أو AppCompat، تأكَّد من أنّك تستخدِم الإصدار 1.3 من AppCompat أو الإصدار 1.3 من Fragment أو الإصدارات الأحدث، لأنّ هذه الإصدارات مطلوبة لضبط دورة الحياة وأصحاب الحالة المحفوظة المطلوبة لـ ComposeView بشكلٍ صحيح. (I1d6fa، b/161814404)

الإصدار 1.0.0-beta01

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

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

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

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

  • تمّت إعادة تسمية مُعدِّلات المقاس. تمت إعادة تسمية 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 API. (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 تجريبية.
    • تمّت إزالة الدالة clearRoots من المستوى الأعلى @TestOnly. لم تعُد هذه الخطوة ضرورية.
    • تمّت إزالة الدالتَين keySourceInfoOf وresetSourceInfo. لم تعُد هذه الخطوات ضرورية.
    • تمت إزالة Composer.collectKeySourceInformation. لم تعُد هذه الخطوة ضرورية.
    • تمّت إزالة الطُرق isJoinedKey وjoinedKeyLeft وjoinedKeyRight. لم تعُد هذه الخطوات ضرورية.
    • تم نقل واجهات برمجة تطبيقات مختلفة من المستوى الأعلى وإعادة تنظيمها في ملفات مختلفة. بسبب الدلالات المتعلقة بفئة الملفات في Kotlin، سيؤدي ذلك إلى إيقاف التوافق مع الثنائيات ولكن ليس مع المصدر، لذا من المفترض ألا يشكّل ذلك مشكلة لمعظم المستخدمين.
    • (I99b7d، b/177245490)
  • تم تعديل Modifier.scrollable. يستخدم الآن واجهة Scrollable بدلاً من فئة ScrollableController (I4f5a5 وb/174485541 وb/175294473)

  • يقبل Modifier.draggable الآن DraggableState بدلاً من دالة lambda بسيطة. يمكنك إنشاء حالة من خلال 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 وجعلتها nullable.
    • تمت إعادة تسمية المَعلمة text في Snackbar إلى content من أجل الاتساق.
    • تمت إضافة المَعلمة contentPadding إلى DropdownMenuItem للسماح بتخصيص الحشو التلقائي وجعل content إضافةً على RowScope.
    • تمت إعادة تسمية ModalDrawerLayout إلى ModalDrawer.
    • تمت إعادة تسمية BottomDrawerLayout إلى BottomDrawer.
    • (I1cc66)
  • يقبل BasicTextField الآن فرشاة بدلاً من اللون لتخصيص أفضل (I83a36)

  • أصبحت دالة imageResource ودالة vectorResource الآن دالتَي إضافة في العنصرَين المصاحبَين ImageBitmap وImageVector على التوالي. تم حذف دالتَي load{Image,Vector,Font}Resource. (I89130)

  • تم تغيير Indication#createIndication() إلى Indication#rememberUpdatedIndication(InteractionState) وإزالة مَعلمة InteractionState من IndicationInstance#drawIndication(). يجب أن تكون IndicationInstance مسؤولة فقط عن رسم المؤثرات البصرية، وليس عن تشغيل الصور المتحركة / كتابة الحالة استجابةً لتغييرات InteractionState. يجب أن تحدث هذه الرسومات المتحرّكة وعمليات كتابة الحالة خلال rememberUpdatedIndication() بدلاً من ذلك. تم أيضًا تغيير المَعلمة indication في Modifier.indication لتصبح مَعلمة مطلوبة. (Ic1764، b/152525426)

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

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

الإصدار 1.0.0-alpha12

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

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

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

  • يتطلب Modifier.pointerInput الآن تذكُّر المفاتيح للإشارة إلى الوقت الذي يجب فيه إعادة تشغيل دالة التشغيل المتعدّد لرصد إدخال المؤشر لأجل التبعيات الجديدة. (I849cd)
  • تم وضع علامة على BottomDrawerLayout وListItem باسم @ExperimentalMaterialApi‏ (Id766e)
  • تمت إضافة PaddingValues.Absolute ويمكن استخدامه في واجهات برمجة التطبيقات التي تقبل PaddingValues. (Ia5f30)
  • تم إيقاف الإجراء onImeActionPerformed نهائيًا. استخدِم KeyboardActions بدلاً منه (If0bbd، b/179071523).
  • لمطابقة اصطلاحات التسمية بشكل أفضل مع ImageBitmap وImageVector، تم إعادة تسمية ImagePainter ليصبح BitmapPainter للتوازي مع VectorPainter. (Iba381، b/174565889)
  • أصبحت الدالتان Animatable.snapTo وAnimatable.stop الآن وظيفتَي تعليق (If4288)
  • تم نقل ComponentActivity.setContent إلى androidx.activity.compose.setContent في الوحدت androidx.activity:activity-compose. (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).
  • تمت إعادة تسمية الخلفيات المتغيرة لتتطابق مع إعادة تسمية Ambient -> CompositionLocal. كان يُطلق على الخلفيات اسم AmbientFoo، والآن يُطلق على CompositionLocals اسم LocalFoo. (I2d55d)
  • تم نقل التحديد إلى الأساس. (I7892b)
  • على غرار الطريقة التي أزلنا بها سابقًا state { 0 } composable وبدأنا الآن الترويج لاستخدام remember { mutableStateOf(0) }، سنزيل savedInstanceState { 0 } composable. يجب استخدام 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 من left/right إلى start/end لتمكين ميزة "المرآة التلقائية" للشكل في الاتجاه rtl. تمّ تقديم AbsoluteRounderCornerShape وAbsoluteCutCornerShape للحالات التي لا يكون فيها المطلوب هو النسخ المطابق التلقائي. (I61040، b/152756983)

  • تم تغيير مَعلمتَي text وicon في Tab ومَعلمة label في BottomNavigationItem لتكونا nullable، وذلك للتعبير بشكل أفضل عن سلوك المكوّن عند تقديم هذه المَعلمات أو عدم تقديمها، لأنّها تؤثر في حجم المكوّن وتنسيقه. إذا كنت تُرسل حاليًا القيمة emptyContent() للإشارة إلى عدم توفّر نص أو رمز أو تصنيف، يجب استخدام القيمة null بدلاً من ذلك. (I57ed4)

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

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

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

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

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

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

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

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

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

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

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

  • إصلاح خطأ كان يمنع ضبط عرض حقل النص المادّي على قيمة أقل من 280.dp (I78373)

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

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

  • يمكن أن تتضمّن المساحة الآن عناصر متعددة لتنسيقات متعددة. (I66a92، b/144488459)

  • تم إيقاف invalidate وcompositionReference() نهائيًا الآن لصالح currentRecomposeScope وrememberCompositionReference على التوالي. (I583a8)

  • يغيّر PopupPositionProvider لاستخدام الإحداثيات النسبية للنافذة، وليس الإحداثيات الشاملة. إعادة تسمية parentGlobalBounds إلى anchorBounds، وتغيير windowGlobalBounds إلى windowSize: IntSize (I2994a)

  • سيتم استبدال Duration وUptime بـ Long milliseconds، وتؤدي هذه الخطوة إلى إزالة الاعتماد على إدخال المؤشر في هذين الصنفين. (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)
  • إضافة Toggle إلى ملف Strings.kt الأساسي (I4a5b7، b/172366489)
  • تم إيقاف FlowRow وFlowColumn نهائيًا. يُرجى استخدام تنسيق مخصّص بدلاً من ذلك. (I09027)
  • تم إيقاف Modifier.focus() وModifier.focusRequester() نهائيًا. استخدِم Modifier.focusModifier() وModifier.focusReference() بدلاً من ذلك. (I75a48 وb/175160751 وb/175160532 وb/175077829)
  • تم نقل nativeClass إلى ملف برمجي ui وجعله داخليًا. تم تعديل استخدامات nativeClass في تنفيذات equals لاستخدام 'is MyClass' بدلاً من ذلك. (I4f734)

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

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

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

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

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

  • إضافة إجراء الرفض الدلالي (I2b706)
  • تم نقل واجهات برمجة التطبيقات DrawModifier من حزمة androidx.compose.ui إلى حزمة androidx.compose.ui.draw. تم إنشاء ملف DrawModifierDeprecated.kt لإضافة طرق مساعدة/أسماء بديلة للأنواع للمساعدة في نقل البيانات من واجهات برمجة التطبيقات المتوقّفة نهائيًا إلى واجهات برمجة التطبيقات الحالية. (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)
  • تمت إعادة تسمية مَعلمة alignment الخاصة بمربّع إلى contentAlignment. (I2c957)
  • تمت إعادة تسمية مُعدِّلات offsetPx إلى offset. وهي الآن تستخدم مَعلمات lambda بدلاً من State. (Ic3021، b/173594846)
  • تمّت إضافة واجهات برمجة التطبيقات SweepGradientShader وSweepGradientBrush. (Ia22c1)
  • تمت إضافة فحص أخطاء لإعدادات المُعدِّل في الدوالّ القابلة للتجميع. يتحقّق فحص الأخطاء هذا من تسمية المَعلمة ونوعها ونوع القيمة المعروضة وترتيبها للتأكّد من توافقها مع إرشادات Compose. (If493b)
  • واجهة برمجة التطبيقات TextFieldValue API المعدَّلة
    • جعلت TextFieldValue.composition للقراءة فقط
    • تمّت إزالة استثناء تمّ طرحه لنطاق اختيار غير صالح (I4a675، b/172239032)
  • تمت إضافة ميزة "تحميل زائد" جديدة في Modifier.drawLayer(). تأخذ هذه الوظيفة كتلة lambda في GraphicsLayerScope جديدة حيث تحدِّد مَعلمات الطبقة بطريقة تسمح بتخطّي إعادة التركيب وإعادة التنسيق عند حدوث تغيير في الحالة. أصبح DrawLayerModifier داخليًا الآن استعدادًا لنقل منطقه إلى طريقة placeable.placeWithLayer() في LayoutModifier (I15e9f، b/173030831).
  • تم إيقاف الخلفيات المُدمجة نهائيًا التي تحمل Ambient كلاحقة، وتم استبدالها بخصائص جديدة مسبوقة بـ Ambient، وذلك باتّباع إرشادات الخلفيات المُدمجة وCompose API الأخرى. (I33440)
  • تمت إضافة فحص أخطاء لضمان استخدام مصانع المُعدِّلات androidx.compose.ui.composed {} داخليًا، بدلاً من وضع علامة عليها @Composable. (I3c4bc)
  • تمت إعادة تسمية وسيطة الدلالات mergeAllDescendants لتصبح mergeDescendants. (Ib6250)
  • أصبح التحكم في الوقت في الاختبارات (TestAnimationClock واستخداماته) تجريبيًا الآن (I6ef86، b/171378521).
  • إزالة وحدة اختبار واجهة المستخدم القديمة ووحداتها النموذجية (I3a7cb)
  • تمت إعادة تسمية TextUnit.Inherit إلى TextUnit.Unspecified من أجل الاتساق مع الوحدات الأخرى. (Ifce19)
  • تم تعديل واجهة "المحاذاة" وجعلها صالحة للاستخدام. (I46a07، b/172311734)
  • تمت إعادة تسمية id إلى 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 على هذه المراجعات.

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

  • تم إيقاف سمة Emphasis نهائيًا واستبدالها بسمة AmbientContentAlpha. AmbientContentAlpha هو عنصر مجرد أبسط يمثّل قيمة ألفا للمحتوى المفضّل لأحد أجزاء التسلسل الهرمي، تمامًا مثلما يمثّل AmbientContentColor قيمة لون المحتوى المفضّل. يستخدم النص والرمز القيمة الحالية من AmbientContentAlpha تلقائيًا، ويمكنك إجراء ما يلي يدويًا: color.copy(alpha = AmbientContentAlpha.current) للحصول على التأثير نفسه في مكوّناتك. بدلاً من استخدام ProvideEmphasis، يمكنك تقديم قيمة مباشرةً من خلال AmbientContentAlpha واستخدام المستويات التلقائية الجديدة في ContentAlpha لاستبدال EmphasisLevels القديمة. (Idf03e، b/159017896)
  • إضافة androidx.compose.material.AmbientContentColor بدلاً من androidx.compose.foundation.AmbientContentColor (I84f7b، b/172067770)
  • تُضيف هذه الإضافة androidx.compose.material.Text لاستبدال androidx.compose.foundation.Text كمكوّن نص قابل للتخصيص على مستوى عالٍ. لاستخدام مكوّن نص أساسي لا يستخدِم اللون أو نمط النص من المظهر، استخدِم BasicText. (Ie6ae0)
  • تمت إضافة maxLines إلى TextFields (Ib2a5b)
  • تعديل TextFields لقبول KeyboardOptions (Ida7f3)
  • يستخدم السطح الآن الارتفاع المطلق (الإجمالي) عند احتساب تراكبات الارتفاع، لذا سيستخدم السطح المُدمَج في سطح آخر الارتفاع المجمّع لرسم التراكب. (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 كلون صبغة محتمل سيرسم المادّة الأساسية أو الرسام المقدَّم بدون فلتر لون. في السابق، كانت محاولات تجاهل التلوين باستخدام Color.Unspecified تؤدي إلى التلوين بلون شفاف، ما يؤدي إلى عدم عرض أي محتوى على الإطلاق. (I049e2، b/171624632)
  • تمت إعادة تسمية relativePaddingFrom إلى paddingFrom. تمت إضافة المُعدِّل paddingFromBaseline، وذلك لتسهيل تحديد المسافات من حدود التنسيق إلى خطوط الأساس للنص. (I0440a، b/170633813)
  • تمت إعادة تسمية LaunchedTask إلى LaunchedEffect للحفاظ على الاتساق مع واجهات برمجة التطبيقات SideEffect وDisposableEffect. لا يُسمح باستخدام LaunchedEffect بدونparam subject لتعزيز أفضل الممارسات. (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. يمكنك أيضًا استخدام مكوّن Image أو 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 بدلاً منه لتحديد بشكل أفضل أنّ واجهة برمجة التطبيقات القابلة للتركيب تستفيد من "التذكر" للحفاظ على البيانات في التراكيب (Ifda43)
  • فعِّل الانتقالات في ComposeTestRule، وأزِل خيار تفعيل المؤشر المتمايل من ComposeTestRule. (If0de3)
  • تمت إضافة خيار لوحة مفاتيح ذات سطر واحد إلى CoreTextField‏ (I72e6d)
  • تمت إعادة تسمية Radius API إلى CornerRadius للتعبير بشكل أفضل عن كيفية استخدامها في أداة "الإنشاء". تم تعديل المستندات للإشارة إلى أنّ نصف قطر الزاوية السالب يتم تثبيته على القيمة صفر. (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 على جميع حالات الإطار الفرعي. تم نقل drawerGesturesEnabled في ScaffoldState إلى Scaffold نفسه. (I36645، b/168297016)
  • تزيل هذه الميزة النوع nullable من مَعلمات lambda في Scaffold، ويمكنك استخدام emptyContent() للإشارة إلى عدم توفّر محتوى لمَعلمة معيّنة. (I2b318، b/157633857، b/158551084)
  • إيقاف واجهتَي برمجة التطبيقات contentColor() وcurrentTextStyle() نهائيًا واستبدالهما بواجهتَي برمجة التطبيقات AmbientContentColor وAmbientTextStyle على التوالي يمكنك الوصول إلى القيمة الحالية باستخدام .current في السمة ambient، كما هو الحال مع أيّ سمة ambient أخرى. تم إجراء هذا التغيير من أجل الاتساق وتجنُّب توفُّر طرق متعدّدة لتحقيق النتيجة نفسها. بالإضافة إلى ذلك، تمت إعادة تسمية بعض السمات المحيطة لوصف الغرض منها بشكل أفضل على النحو التالي:

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

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

  • كجزء من عملية توحيد القيم المراقبة للفئات المضمّنة، أُعيد تسمية Color.Unset إلى Color.Unspecified للتطابق مع الفئات المضمّنة الأخرى (I97611 وb/169797763).
  • تمّ تقديم TextOverflow.None. عندما يكون overflow غير محدّد، لن يعالج Text المحتوى الزائد بعد الآن، وسيُبلغ عن حجمه الفعلي إلى LayoutNode. (I175c9، b/158830170)
  • تمت إعادة تسمية launchInComposition إلى LaunchedTask لمطابقة إرشادات Compose API (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)

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

  • تم تعديل العديد من واجهات برمجة تطبيقات الرسومات
    • تم تعديل واجهات برمجة التطبيقات الخاصة بتحويلات الحجم والدوران للاستخدام المشترَك لمَعلمة Offset واحدة لتمثيل إحداثي محور الدوران بدلاً من استخدام مَعلمات float منفصلة لإحداثي x/y في DrawScope وDrawTransform
    • إزالة الطريقتَين Rect.expandToInclude وRect.join
    • تم تعديل مستندات "النطاق الجغرافي" لتشير إلى أنّه بيضاوي بالإضافة إلى بيضاوي الشكل.
    • تمت إضافة مستندات للإشارة إلى أنّه يجب عدم استدعاء ملف الإنشاء العلني لفئة Radius المضمّنة مباشرةً، ولكن يجب بدلاً من ذلك إنشاء مثيلات لعناصر Radius من خلال ملفّات إنشاء الدوالّ.
    • تمت إزالة واجهات برمجة تطبيقات RoundRect API لطلب البحث عن 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 الجديد في compose.foundation.layout. يتمثل سلوك المربّع الجديد في تجميع العناصر الفرعية فوق بعضها عندما يكون لديه عناصر فرعية متعددة، ويختلف ذلك عن المربّع السابق الذي كان يتصرف بشكل مشابه للعمود. (I94893، b/167680279)
  • تم إيقاف معلمات زخرفة المربّع نهائيًا. إذا كنت تريد إضافة زخارف أو مسافات على مربّعك، استخدِم عناصر التعديل بدلاً من ذلك (Modifier.background وModifier.border وModifier.padding) (Ibae92، b/167680279)
  • تم تعديل العديد من واجهات برمجة تطبيقات الرسومات
    • تم تعديل واجهات برمجة تطبيقات DrawScope باستخدام طرق تحويل على مستوى النطاق للإشارة إلى أنّه لا يتم تطبيق التحويل إلا ضمن الدالة المخصّصة للردّ، ويتم إزالته بعد استدعاء الدالة المخصّصة للردّ.
    • تم تعديل مستندات clipPath للإشارة إلى Path بدلاً من مستطيل مُعَدَّل
    • تباعُد ثابت في المستند للمَعلمة اليمنى في clipPath
    • تمت إعادة تسمية DrawScope.drawCanvas إلى drawIntoCanvas وتمت إزالة مَعلمة size.
    • تمت إعادة تسمية مَعلمتَي dx/dy في طريقة inset إلى أفقي وعمودي
    • تمت إضافة حمولة زائدة للاقتصاص توفّر قيمة اقتصاص متطابقة لجميع الحدود الأربعة.
    • تمّت إزالة مستندات حول طريقة الحشو التي تشير إلى أنّه سيتم تطبيق الحشو على جميع الجوانب الأربعة.
    • مستندات معدَّلة لفئة Rect
    • تعديل التعليقات على مَعلمات Rect لمطابقة kdoc style
    • تمت إزالة 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)
  • أصبحت Label مَعلمة اختيارية داخل 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)
  • تمت إعادة تسمية استخدامات الجاذبية بشكلٍ متسق لتصبح align أو alignment في واجهات برمجة تطبيقات التنسيق. (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 لإنشاء حالات SwipeableState. (I2fc9c، b/163129614، b/163132293)
  • تمت إضافة ميزة "شريط التطبيقات المصغّرة" مع تحديد الموضع وإضافة التطبيقات إلى "قائمة الانتظار" بشكلٍ صحيح. يمكنك الوصول إليه من خلال دالة تعليق SnackbarHostState.showSnackbar. بالإضافة إلى ذلك:
    • تمت إضافة مكوّنات SnackbarHost. يستضيف هذا العنصر أشرطة التطبيقات المصغّرة استنادًا إلى الحالة، وهو مسؤول عن الانتقال بين أشرطة التطبيقات المصغّرة.
    • تمت إضافة 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 إلى الأدراج (I23655 وb/161804378)
  • تم إيقاف العنصر القابل للتجميع state { ... } نهائيًا، وأصبح من الأفضل استخدام طلبات صريحة لعنصر remember { mutableStateOf(...) } من أجل الوضوح. ويؤدي ذلك إلى تقليل مساحة عرض واجهة برمجة التطبيقات الإجمالية وعدد المفاهيم المتعلّقة بإدارة الحالة، كما يتطابق مع نمط by mutableStateOf() لمنح إذن الوصول إلى ملف تعريف الفئة. (Ia5727)
  • تمت إعادة تسمية مَعلمة الحشو في الزرّ إلى contentPadding (Id252e، b/161809394)
  • أضِف مكوّنًا تجريبيًا من واجهة مستخدم Material Design‏، وهو SwipeToDismiss. (I129e5)

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

  • تمت إزالة onChildPositioned وOnChildPositionedModifier. على المطوّرين استخدام onPositioned وOnPositionedModifier في تنسيق الصفحة الفرعية بدلاً من ذلك. (I4522e، b/162109766)
  • تمت إضافة دالة lambda لسياسة الدمج إلى SemanticsPropertyKey. ويمكن استخدام ذلك لتحديد سياسة مخصّصة لدمج semantik mergeAllDescendants. إنّ السياسة التلقائية هي استخدام قيمة العنصر الرئيسي إذا كانت متوفرة، وإلا يتم استخدام قيمة العنصر الفرعي. (Iaf6c4، b/161979921)
  • أصبح IntSize الآن فئة مضمّنة (I2bf42).
  • تمت إعادة تسمية PlacementScope.placeAbsolute() إلى PlacementScope.place()، وتمت إعادة تسمية PlacementScope.place() السابق إلى PlacementScope.placeRelative(). نتيجةً لذلك، لن تعكس طريقة PlacementScope.place() تلقائيًا الموضع في السياقات من اليمين إلى اليسار بعد الآن. وإذا أردت ذلك، استخدِم PlacementScope.placeRelative() بدلاً من ذلك. (I873ac، b/162916675)
  • تم إيقاف PxBounds نهائيًا واستخدام Rect بدلاً منه. تم تعديل جميع استخدامات PxBounds باستخدام rect وتمت إضافة علامة توضيحية مناسبة لإيقاف الميزة نهائيًا/استبدالها بهدف المساعدة في عملية نقل البيانات. (I37038، b/162627058)
  • تمت إعادة تسمية RRect إلى RoundRect لتناسب أنماط تسمية الإنشاء بشكلٍ أفضل تم إنشاء وظائف إنشاء دالة مشابهة لدالة 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 على هذه المراجعات.

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

  • أصبحت الألوان الآن فئة نهائية بدلاً من واجهة. بدلاً من إضافة تنفيذ مخصّص وتقديمه، عليك إنشاء بيئة جديدة لعنصر المظهر المخصّص، والوصول إلى عنصر المظهر من خلال البيئة الجديدة في المكوّنات، تمامًا مثل طريقة عمل 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 ليصبحا من الفئة SwipeableState. لم تعُد واجهة [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. تم تعديل ميزة "إنشاء الصور" لتجنُّب استخدام Box لخفض التكاليف غير الضرورية
    16. تم تعديل فئة المخطّط لإضافة التعليقات التوضيحية @Immutable
    17. تم تعديل PathNode لإضافة تعليقات توضيحية من النوع @Immutable لكل تعليمات مسار.
    18. تم تعديل التركيب الفرعي للشكل المتجه لإزالة عمليات التحقّق المتكرّرة الشرطية من المساواة لأنّ عملية الإنشاء تتعامل مع هذه العمليات
    19. طرق إنشاء العنصر المصاحب Rect المتوقّفة نهائيًا لصالح طرق إنشاء الدوالّ
    20. تم تعديل فئات Brush ووظائف الإنشاء باستخدام واجهتَي برمجة التطبيقات @Immutable و @Stable
    21. تم تعديل النطاق المحدَّد VertexMode ليكون PascalCase
    22. تم تعديل طريقة DrawScope selectPaint لإعادة كتابة مَعلمات الخطوط على الطلاء بشكل مشروط في حال تغيّرت
    23. تم تعديل Size لإضافة واجهة برمجة تطبيقات لإعادة التشكيل، وإعادة تسمية 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)
  • أضِف isFocused() وisNotFocused() SemanticsMatcher. (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، وequals، وhashcode، وما إلى ذلك
    • كيف يمكنني أن أجعل بعض المواقع "تحت المراقبة" وبعضها الآخر لا يكون كذلك؟
    • كيف يمكنني تحديد المساواة الهيكلية مقابل المساواة المرجعية لاستخدامها في الملاحظة؟
    • تقليل "السحر" في النظام سيقلّل ذلك من احتمالية افتراض أحد الأشخاص أنّ النظام أكثر ذكاءً مما هو عليه (أي أنّه يعرف كيفية الاختلاف في القائمة).
    • تجعل درجة دقة المراقبة أكثر سهولة.
    • تحسين قابلية إعادة التنظيم من المتغيّر -> السمة في الصف
    • قد تفتح فرصًا لإجراء تحسينات مخصّصة يدويًا حسب الولاية
    • تتوافق بشكلٍ وثيق مع بقية المنظومة المتكاملة وتقلل من الغموض بشأن الحالة الثابتة أو "تقبُّلنا للحالة المتغيّرة"

    ملاحظات حول نقل البيانات

    يمكن تحويل جميع الاستخدامات الحالية تقريبًا لرمز @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 التي تم إيقافها نهائيًا في السابق يستخدم العنصر القابل للنقر الآن تأثير التموج كإشارة تلقائية (إذا كان لديك عنصر MaterialTheme {} محدّد في تطبيقك)، لذا في معظم الحالات، يمكنك استخدام العنصر القابل للنقر والحصول على إشارة التموج مجانًا. إذا كنت بحاجة إلى تخصيص مَعلمة اللون / الحجم / الحدود لموجة الصدمة، يمكنك إنشاء عنصر RippleIndication يدويًا ونقله إلى عنصر clickable كمَعلمة indication. (I663b2، b/155375067)

  • تمّت إزالة العنصر المُلغى نهائيًا لعنصر FilledTextField composable (I7f8f8)

  • إعادة تسمية عنصر Button (الذي يحتوي على الإعدادات التلقائية المستخدَمة في وظيفة Button) إلى ButtonConstants (I7c5f7، b/159687878)

  • تعمل الآن خانة محتوى الزرّ كصف (يكون ذلك مفيدًا عندما تحتاج إلى رمز يتضمّن نصًا، اطّلِع على عيّنات عن كيفية كتابة الزرّ) (I0ff10، b/158677863)

  • تم إيقاف RadioGroup وRadioGroupItem نهائيًا. استخدِم المربّع مع Modifier.selectable وRow وColumn لإنشاء مجموعة مناسبة من خيارات radioButton وفقًا لتصميمك (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 نهائيًا يستخدم العنصر القابل للنقر الآن تأثير التموج كإشارة تلقائية (إذا كان لديك عنصر MaterialTheme {} محدّد في تطبيقك)، لذا في معظم الحالات، يمكنك استخدام العنصر القابل للنقر والحصول على إشارة التموج مجانًا. إذا كنت بحاجة إلى تخصيص مَعلمة اللون / الحجم / الحدود لموجة الصدمة، يمكنك إنشاء عنصر RippleIndication يدويًا ونقله إلى عنصر clickable كمَعلمة indication. (I101cd، b/155375067)

  • تمّت إعادة صياغة واجهة برمجة التطبيقات Scaffold API: تم تغيير اسم بعض المَعلمات، وإضافة مَعلمات جديدة لتخصيص أفضل. تمت إضافة دالة جلب لطلب أحجام عنصر Floating Action Button و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).

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

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

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

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

  • تم تغيير اللون التلقائي لتطبيق Floating Action Button وExtended Floating Action Button إلى MaterialTheme.colors.secondary. (I3b9b9، b/154118816)

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

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

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

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

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

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

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

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

  • تمّت إعادة تسمية المَعلمات في العنصر القابل للتجميع "فاصل" (Ic4373)

  • الأطفال (Ia6d19)

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

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

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

  • تمّت إعادة صياغة واجهات برمجة تطبيقات FloatingActionButton لقبول دالات برمجية قابلة للتجميع بدلاً من الدوالّ الأساسية. اطّلِع على العيّنات المعدّلة للحصول على معلومات عن الاستخدام. (I00622)

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

  • أصبح تأثير التموج الآن مُعدِّلاً. في حين أنّ العنصر القابل للنقر لم يتم تحويله بعد، فإنّ الاستخدام المقترَح هو 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 منفصلة. تمّت إعادة تسمية بعض المَعلمات في Button أو إعادة ترتيبها. (I54b5a)

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

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

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

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

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

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

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

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

    تستخدِم LayoutCoordinates سمة IntPxSize لسمة size بدلاً من 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 وHorizontalScroller نهائيًا. استخدِم ScrollableColumn وScrollableRow للحصول على تجربة مدمجة مع سلوك العمود/الصف والمَعلمات، أو استخدِم 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)
  • تمّت إزالة فئة Shader المضمّنة التي كانت تُغلِّف فئة NativeShader المُتوقّعة وتمت إعادة تسمية NativeShader إلى Shader. لم تُضِف فئة Shader المضمّنة المُغلفة أي قيمة إلى سطح واجهة برمجة التطبيقات وكانت فئة مضمّنة، لذا استخدِم فئة NativeShader مباشرةً. (I25e4d)
  • ترث الآن النوافذ المنبثقة ومربّعات الحوار والقوائم مظهر MaterialTheme السياقي (Ia3665، b/156527485).
  • يمكن الآن الانتقال للأعلى أو للأسفل في قائمة Material DropdownMenu. (Ide699)
  • تمت إزالة مَعلمة اتجاه التنسيق من مجموعة القياس لدالة Layout()‎. ومع ذلك، يتوفّر اتجاه التنسيق داخل دالة الاستدعاء من خلال كائن نطاق القياس (Ic7d9d).
  • استخدِم AnimationSpec بدلاً من AnimationBuilder في واجهات برمجة التطبيقات ذات المستوى الأعلى لتوضيح مفهوم مواصفات الرسوم المتحركة الثابتة - تحسين لغة وصف برمجة التطبيقات الخاصة بالانتقالات من خلال إزالة شرط استخدام دالة lambda ل إنشاء مواصفات حركات مثل tween وspring بدلاً من ذلك، يتم استخدامparamمّات المُنشئ مباشرةً. -تحسين سهولة استخدام 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 لتصبح فئة مضمّنة. تمت إزالة methods لإنشاء الأشكال المصاحبة واستخدام دالة باني الدوال مع مَعلمة تلقائية لكي يتطابق نصف القطر على محور y مع مَعلمة نصف القطر الإلزامية على محور x.

    تم تعديل DrawScope.drawRoundRect لاستخدام مَعلمة Radius واحدة بدلاً من قيمتين منفصلتين للرقم العشري للقطر على طول محوري 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 الآن العمود بشكل تلقائي. يقدّم عنصر HorizontalScroller الآن صفًا تلقائيًا. (Ieca5d، b/157020670)

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

  • تم إلغاء إيقاف Modifier.semantics نهائيًا للسماح باستخدامات المكونات عالية المستوى. (I4cfdc)

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

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

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

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

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

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

  • تم إنشاء واجهة برمجة التطبيقات CanvasScope API التي تُغلِّف كائن canvas لعرض سطح واجهة برمجة تطبيقات رسومات تعريفية بدون حالة. يتم تضمين عمليات التحويل ضمن نطاق المستلِم الخاص بها، ويتم أيضًا تحديد نطاق معلومات الحجم لحدود الحشو المقابلة. ولا يتطلّب ذلك من المستخدِم الاحتفاظ بحالة الطلاء الخاصة به لضبط عمليات الرسم.

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

  • إضافة تخصيص لون المؤشر إلى TextField (I6e33f)

  • يمكن الآن أن تبقى قيمة TextFieldValue المستخدَمة مع TextField محفوظة عند إعادة إنشاء النشاط عند استخدامها على النحو التالي: var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() } (I5c3ce, b/155075724)

  • تمت إعادة تسمية LayoutModifier2 إلى LayoutModifier. (Id29f3)

  • تمت إزالة واجهة LayoutModifier المتوقّفة نهائيًا. (I2a9d6)

  • تم استبدال مَعلمة focusIdentifier في CoreTextField/TextField بمَعلمة 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)

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

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

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

  • [قابلة للتغيير]تم نقل عوامل تشغيل تفويض حالة العنصر إلى الإضافات لإتاحة تحسينات تفويض العنصر في Kotlin 1.4. على المتصلين إضافة عمليات الاستيراد لمواصلة استخدام by state { ... } أو by mutableStateOf(...). (I5312c)

  • تمت إضافة positionInParent وboundsInParent إلى LayoutCoordinates. (Icacdd، b/152735784)

  • تم إيقاف ColoredRect نهائيًا. استخدِم Box(Modifier.preferredSize(width, height).drawBackground(color)) بدلاً من ذلك. (I499fa، b/152753731)

  • تمت إعادة تسمية LayoutResult إلى MeasureResult. (Id8c68)

  • تمت إضافة LayoutModifier2، وهي واجهة برمجة تطبيقات جديدة لتحديد عناصر تعديل التنسيق، وتم إيقاف LayoutModifier نهائيًا (If32ac).

  • تم استبدال عامل التشغيل "المعدِّل الإضافي" بدوالّ إضافة المصنع (I225e4)

  • تم نقل العنصر القابل للسحب إلى المُعدِّل (Id9b16، b/151959544)

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

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

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

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

  • تمت إعادة تسمية LayoutFlexible إلى LayoutWeight. تمت إعادة تسمية المَعلمة tight إلى fill. (If4738)

  • تمت إزالة RepaintBoundary لصالح DrawLayerModifier (I00aa4)

  • تم تغيير DrawVector من دالة مؤلفة عادية إلى دالة تعرض مُعدِّل drawVector() الذي سيرسم الخطّ المتّجه كخلفية لتنسيق. (I7b8e0)

  • تم استبدال الدالة القابلة للتركيب "التعتيم" بالمُعدِّل drawOpacity. (I5fb62)

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

  • تم استبدال الدالة القابلة للتجميع DrawShadow بالمعدِّل drawShadow() . يتم الآن رسم الظلال كجزء من LayerModifier. (I0317a)

  • تمت إضافة LayerModifier، وهو مُعدِّل يسمح بإضافة RenderNode لتصميم. ويتيح ضبط القطع والشفافية والدوران والتكبير/التصغير والظلال. سيحلّ هذا الإجراء محلّ 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)

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

  • عنصر Wrap المركّب الذي تم إيقافه نهائيًا ويمكن استبداله إما باستخدام المُعدِّل LayoutAlign أو باستخدام العنصر القابل للتجميع Stack (Ib237f).

  • تلقّى WithConstraints مَعلمة LayoutDirection (I6d6f7)

  • تمّ نشر اتجاه التنسيق من عقدة التنسيق الرئيسية إلى العقد الفرعية. تمت إضافة مُعدِّل اتجاه التنسيق. (I3d955)

  • يتيح مكوّن "الحزمة" الاتجاه من اليمين إلى اليسار (Ic9e00).

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

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

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

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

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

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

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

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

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