إنشاء مادة
androidx.compose.material
androidx.compose.material.icons
(الاطّلاع على مستندات مرجع واجهة برمجة التطبيقات لجميع حِزم Compose)
| آخر الأخبار | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأوّلي |
|---|---|---|---|---|
| 22 أكتوبر 2025 | 1.9.4 | - | 1.10.0-beta01 | - |
البنية
Compose هي مجموعة من 7 أرقام تعريف لمجموعات Maven ضِمن androidx. تحتوي كل مجموعة على مجموعة فرعية مستهدَفة من الوظائف، ولكل منها مجموعة خاصة من ملاحظات الإصدار.
يوضّح هذا الجدول المجموعات ويتضمّن روابط لكل مجموعة من ملاحظات الإصدار.
| مجموعة | الوصف |
|---|---|
| compose.animation | إنشاء رسوم متحركة في تطبيقات Jetpack Compose لإثراء تجربة المستخدم |
| compose.compiler | تحويل دوال @Composable وتفعيل عمليات التحسين باستخدام مكوّن إضافي لمترجم Kotlin |
| compose.foundation | يمكنك كتابة تطبيقات Jetpack Compose باستخدام وحدات أساسية جاهزة للاستخدام وتوسيع نطاق الأساس لإنشاء أجزاء نظام التصميم الخاص بك. |
| compose.material | يمكنك إنشاء واجهات مستخدم Jetpack Compose باستخدام "مكوّنات Material Design" الجاهزة للاستخدام. هذه هي نقطة الدخول ذات المستوى الأعلى في Compose، وهي مصمَّمة لتوفير مكوّنات تتطابق مع تلك الموضّحة في www.material.io. |
| compose.material3 | يمكنك إنشاء واجهات مستخدم Jetpack Compose باستخدام "مكوّنات Material Design 3"، وهي التطوّر التالي في Material Design. يتضمّن الإصدار 3 من Material تصميمات ومكوّنات محدّثة وميزات تخصيص Material You، مثل الألوان الديناميكية، وهو مصمّم ليكون متوافقًا مع الأسلوب المرئي الجديد وواجهة مستخدم النظام في Android 12. |
| compose.runtime | الوحدات الأساسية لنموذج برمجة Compose وإدارة الحالة، ووقت التشغيل الأساسي الذي يستهدفه مكوّن Compose الإضافي للمترجم. |
| compose.ui | المكوّنات الأساسية لواجهة مستخدم Compose اللازمة للتفاعل مع الجهاز، بما في ذلك التنسيق والرسم والإدخال |
تحديد الاعتماديات
لإضافة اعتمادية على Compose، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:
رائع
dependencies { implementation "androidx.compose.material:material:1.9.4" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.9.4") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
لمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على إضافة اعتماديات البناء.
الملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.
يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.
الإصدار 1.10
الإصدار 1.10.0-beta01
22 أكتوبر 2025
تم طرح androidx.compose.material:material-*:1.10.0-beta01. يتضمّن الإصدار 1.10.0-beta01 هذه التعديلات.
الإصدار 1.10.0-alpha05
8 أكتوبر 2025
تم طرح androidx.compose.material:material-*:1.10.0-alpha05. يتضمّن الإصدار 1.10.0-alpha05 هذه التعديلات.
الإصدار 1.10.0-alpha04
24 سبتمبر 2025
تم طرح androidx.compose.material:material-*:1.10.0-alpha04. يتضمّن الإصدار 1.10.0-alpha04 هذه التعديلات.
الإصدار 1.10.0-alpha03
10 سبتمبر 2025
تم طرح androidx.compose.material:material-*:1.10.0-alpha03. يتضمّن الإصدار 1.10.0-alpha03 هذه التعديلات.
الإصدار 1.10.0-alpha02
27 أغسطس 2025
تم طرح androidx.compose.material:material-*:1.10.0-alpha02. يتضمّن الإصدار 1.10.0-alpha02 هذه التعديلات.
الإصدار 1.10.0-alpha01
13 أغسطس 2025
تم طرح androidx.compose.material:material-*:1.10.0-alpha01. يتضمّن الإصدار 1.10.0-alpha01 هذه التعديلات.
إصلاح الأخطاء
- نقل القيمة التلقائية
minSdkمن المستوى 21 إلى المستوى 23 من واجهة برمجة التطبيقات (Ibdfca، b/380448311، b/435705964، b/435705223)
الإصدار 1.9
الإصدار 1.9.4
22 أكتوبر 2025
تم طرح androidx.compose.material:material-*:1.9.4. يتضمّن الإصدار 1.9.4 هذه التعديلات.
الإصدار 1.9.3
8 أكتوبر 2025
تم طرح androidx.compose.material:material-*:1.9.3. يتضمّن الإصدار 1.9.3 هذه التعديلات.
الإصدار 1.9.2
24 سبتمبر 2025
تم طرح androidx.compose.material:material-*:1.9.2. يتضمّن الإصدار 1.9.2 هذه التعديلات.
الإصدار 1.9.1
10 سبتمبر 2025
تم طرح androidx.compose.material:material-*:1.9.1. يتضمّن الإصدار 1.9.1 هذه التعديلات.
الإصدار 1.9.0
13 أغسطس 2025
تم طرح androidx.compose.material:material-*:1.9.0. يتضمّن الإصدار 1.9.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.8.0
التغييرات في السلوك
- تتطلّب عمليات التحقّق من Lint التي يتم شحنها مع Compose الآن توفُّر الإصدار 8.2.2 من "مكوّن Android الإضافي في Gradle" كحد أدنى. إذا لم تتمكّن من ترقية AGP، يمكنك بدلاً من ذلك ترقية Lint بشكلٍ منفصل باستخدام
android.experimental.lint.version=8.8.2(أو إصدار أحدث) في ملف gradle.properties. لتشغيل عمليات التحقّق من أخطاء Compose البرمجية داخل بيئة التطوير المتكاملة، يجب استخدام Android Studio Ladybug أو إصدار أحدث.
تغييرات واجهة برمجة التطبيقات
- تتطلّب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام الإصدار 2.0.0 أو إصدار أحدث من KGP. (Idb6b5)
- لم تعُد واجهات برمجة التطبيقات الخاصة بمربّعات تزيين حقول النص تجريبية. (I7480f)
إصلاح الأخطاء
ExposedDropdownMenuمتوافق مع الإصدارات القديمة. (I133f7)
الإصدار 1.9.0-rc01
30 يوليو 2025
تم طرح androidx.compose.material:material-*:1.9.0-rc01. يتضمّن الإصدار 1.9.0-rc01 هذه التعديلات.
الإصدار 1.9.0-beta03
16 يوليو 2025
تم طرح androidx.compose.material:material-*:1.9.0-beta03. يتضمّن الإصدار 1.9.0-beta03 هذه التعديلات.
الإصدار 1.9.0-beta02
2 يوليو 2022
تم طرح androidx.compose.material:material-*:1.9.0-beta02. يتضمّن الإصدار 1.9.0-beta02 هذه التعديلات.
الإصدار 1.9.0-beta01
18 يونيو 2025
تم طرح androidx.compose.material:material-*:1.9.0-beta01. يتضمّن الإصدار 1.9.0-beta01 هذه التعديلات.
إصلاح الأخطاء
- تتضمّن الروابط التشعّبية في
Text(AnnotatedString)الآن تنسيق Material تلقائيًا. (I0e8ed، b/339843816)
الإصدار 1.9.0-alpha04
4 يونيو 2025
تم طرح androidx.compose.material:material-*:1.9.0-alpha04. يتضمّن الإصدار 1.9.0-alpha04 هذه التعديلات.
الإصدار 1.9.0-alpha03
20 مايو 2025
تم طرح androidx.compose.material:material-*:1.9.0-alpha03. يتضمّن الإصدار 1.9.0-alpha03 هذه التعديلات.
الإصدار 1.9.0-alpha02
7 مايو 2025
تم طرح androidx.compose.material:material-*:1.9.0-alpha02. يتضمّن الإصدار 1.9.0-alpha02 هذه التعديلات.
الإصدار 1.9.0-alpha01
23 أبريل 2025
تم طرح androidx.compose.material:material-*:1.9.0-alpha01. يتضمّن الإصدار 1.9.0-alpha01 هذه التعديلات.
التغييرات في السلوك
- تتطلّب عمليات التحقّق من Lint التي يتم شحنها مع Compose الآن توفُّر الإصدار 8.2.2 من "مكوّن Android الإضافي في Gradle" كحد أدنى. إذا لم تتمكّن من ترقية "مكوّن Android الإضافي في Gradle"، يمكنك بدلاً من ذلك ترقية Lint بشكلٍ منفصل باستخدام
android.experimental.lint.version=8.8.2(أو إصدار أحدث) فيgradle.properties. لتشغيل عمليات التحقّق من أخطاء Compose البرمجية داخل بيئة التطوير المتكاملة، يجب استخدام Android Studio Ladybug أو إصدار أحدث.
تغييرات واجهة برمجة التطبيقات
- تتطلّب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام الإصدار 2.0.0 أو إصدار أحدث من KGP. (Idb6b5)
- لم تعُد واجهات برمجة التطبيقات الخاصة بمربّعات تزيين حقول النص تجريبية (I7480f، b/269651160)
- إيقاف
runWithTimingDisabledنهائيًا واستخدامrunWithMeasurementDisabledبدلاً منه، لأنّه يصف السلوك بشكلٍ أوضح، أي أنّه يتم إيقاف جميع المقاييس مؤقتًا. بالإضافة إلى ذلك، يجب عرض الفئة الرئيسيةMicrobenchmarkScopeلأنّه لا يمكن إعادة تعريف الدالةrunWithMeasurementDisabledلفتح الوصول، لأنّها مضمّنة. (I9e23b، b/389149423، b/149979716)
إصلاح الأخطاء
ExposedDropdownMenuمتوافق مع الإصدارات القديمة. (I133f7)- تم إصلاح عُطل في مؤشّري التقدّم والتحميل في حال تم تمرير
Float.NaNكتقدّم. (I4fa96، b/352364576)
الإصدار 1.8
الإصدار 1.8.3
18 يونيو 2025
تم طرح androidx.compose.material:material-*:1.8.3. يتضمّن الإصدار 1.8.3 هذه التعديلات.
الإصدار 1.8.2
20 مايو 2025
تم طرح androidx.compose.material:material-*:1.8.2. يتضمّن الإصدار 1.8.2 هذه التعديلات.
الإصدار 1.8.1
7 مايو 2025
تم طرح androidx.compose.material:material-*:1.8.1. يتضمّن الإصدار 1.8.1 هذه التعديلات.
الإصدار 1.8.0
23 أبريل 2025
تم طرح androidx.compose.material:material-*:1.8.0. يتضمّن الإصدار 1.8.0 هذه التعديلات.
الإصدار 1.8.0-rc03
9 أبريل 2025
تم طرح androidx.compose.material:material-*:1.8.0-rc03. يتضمّن الإصدار 1.8.0-rc03 هذه التعديلات.
الإصدار 1.8.0-rc02
26 مارس 2025
تم طرح androidx.compose.material:material-*:1.8.0-rc02. يتضمّن الإصدار 1.8.0-rc02 هذه التعديلات.
الإصدار 1.8.0-rc01
12 مارس 2025
تم طرح androidx.compose.material:material-*:1.8.0-rc01. يتضمّن الإصدار 1.8.0-rc01 هذه التعديلات.
الإصدار 1.8.0-beta03
26 فبراير 2025
تم طرح androidx.compose.material:material-*:1.8.0-beta03. يتضمّن الإصدار 1.8.0-beta03 هذه التعديلات.
الإصدار 1.8.0-beta02
12 فبراير 2025
تم طرح androidx.compose.material:material-*:1.8.0-beta02. يتضمّن الإصدار 1.8.0-beta02 هذه التعديلات.
الإصدار 1.8.0-beta01
29 يناير 2025
تم طرح androidx.compose.material:material-*:1.8.0-beta01. يتضمّن الإصدار 1.8.0-beta01 هذه التعديلات.
الإصدار 1.8.0-alpha08
15 يناير 2025
تم طرح androidx.compose.material:material-*:1.8.0-alpha08. يتضمّن الإصدار 1.8.0-alpha08 هذه التعديلات.
إصلاح الأخطاء
- تضيف هذه السمة
displayCutoutإلى مجموعة الحواف الداخلية التي تأخذها مكوّنات Material في الاعتبار تلقائيًا، وذلك لتجنُّب تداخل المحتوى مع موضع القطع على الشاشة.- هذا تغيير في السلوك سيؤثّر في طريقة عمل المكوّنات التي تتوافق مع الحواف الداخلية حول فتحة شاشة العرض. ويشمل ذلك القيمة التلقائية للمَعلمة
WindowInsetsلمكوّنات Material 3 التي تراعي الحواف الداخلية، وقيمWindowInsetsالمقدَّمة في المكوّن. - عناصر تلقائية لكلّ من Material 2 وMaterial 3 إذا تسبّب هذا التغيير في سلوك غير مرغوب فيه، حدِّد المَعلمة
WindowInsetsيدويًا على أساس كل مكوّن على حدة. (I43ee9، b/362508045)
- هذا تغيير في السلوك سيؤثّر في طريقة عمل المكوّنات التي تتوافق مع الحواف الداخلية حول فتحة شاشة العرض. ويشمل ذلك القيمة التلقائية للمَعلمة
- يستخدم النشاط الذي يتم استخدامه كمضيف للعنصر القابل للإنشاء قيد الاختبار عند استخدام
ComposeContentTestRule.setContentالآن المظهرTheme.Material.Light.NoActionBar، وذلك لتجنُّب تداخلActionBarمع محتوى الاختبار عند استهداف الإصدار 35 من حزمة تطوير البرامج (SDK). لإيقاف هذا السلوك، يمكنك إزالة التبعية فيui-test-manifestوإضافة إدخال نشاط فيAndroidManifest.xmlلتطبيق الاختبار من أجلComponentActivityباستخدام السمة التي تختارها. (I7ae1b، b/383368165)
المساهمة الخارجية
- عرض
sheetGesturesEnabledفيModalBottomSheetLayout(I3f032، b/329543529)
الإصدار 1.8.0-alpha07
11 ديسمبر 2024
تم طرح androidx.compose.material:material-*:1.8.0-alpha07. يتضمّن الإصدار 1.8.0-alpha07 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة عدم اتّباع معدِّلات حجم الحقل النصي في بعض الأحيان. (I90d4c، b/356905963)
الإصدار 1.8.0-alpha06
13 نوفمبر 2024
تم طرح androidx.compose.material:material-*:1.8.0-alpha06. يتضمّن الإصدار 1.8.0-alpha06 هذه التعديلات.
الإصدار 1.8.0-alpha05
30 أكتوبر 2024
تم طرح androidx.compose.material:material-*:1.8.0-alpha05. يتضمّن الإصدار 1.8.0-alpha05 هذه التعديلات.
إصلاح الأخطاء
- تحسين سلوك
contentPaddingفي Scaffold لتجنُّب إعادة إنشاء محتوى النص الأساسي دائمًا عند تغييرcontentPadding(I8c8e2، b/373904168) - اجعل شريط التمرير Material Slider يغيّر قيمته عند الضغط على مفاتيح التحكّم. (I1c442)
الإصدار 1.8.0-alpha04
16 أكتوبر 2024
تم طرح androidx.compose.material:material-*:1.8.0-alpha04. يتضمّن الإصدار 1.8.0-alpha04 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- أزِل
readOnlyمنTextFields' لتثبيت الإصدار الأساسي الثابت. (I3aaba)
إصلاح الأخطاء
- تضيف هذه السمة إمكانية إنشاء تموّجات في العناصر الموسّعة على Android S+، مثل بطاقة تتوسّع عند النقر عليها. في السابق، لم تكن التموجات تملأ الحجم الجديد، ولكنها ستتوسع الآن لتناسب الحدود الجديدة. (If509a، b/183019123)
الإصدار 1.8.0-alpha02
18 سبتمبر 2024
تم طرح androidx.compose.material:material-*:1.8.0-alpha02. يتضمّن الإصدار 1.8.0-alpha02 هذه التعديلات.
الإصدار 1.8.0-alpha01
4 سبتمبر 2024
تم طرح androidx.compose.material:material-*:1.8.0-alpha01. يتضمّن الإصدار 1.8.0-alpha01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة أداة إنشاء
NavGraphBuilder.bottomSheetجديدة لإنشاء bottomSheet باستخدام وسيطات آمنة ((I28589 وI777db وb/351858980)) - تمت إضافة عمليات تحميل زائدة جديدة
TextFieldوOutlinedTextFieldتأخذTextFieldState(I3b74c)
الإصدار 1.7
الإصدار 1.7.8
12 فبراير 2025
تم طرح androidx.compose.material:material-*:1.7.8. يتضمّن الإصدار 1.7.8 هذه التعديلات.
الإصدار 1.7.7
29 يناير 2025
تم طرح androidx.compose.material:material-*:1.7.7. ما مِن تغييرات عن الإصدار 1.7.6.
الإصدار 1.7.6
11 ديسمبر 2024
تم طرح androidx.compose.material:material-*:1.7.6. يتضمّن الإصدار 1.7.6 هذه التعديلات.
الإصدار 1.7.5
30 أكتوبر 2024
تم طرح androidx.compose.material:material-*:1.7.5. يتضمّن الإصدار 1.7.5 هذه التعديلات.
الإصدار 1.7.4
16 أكتوبر 2024
تم طرح androidx.compose.material:material-*:1.7.4. يتضمّن الإصدار 1.7.4 هذه التعديلات.
الإصدار 1.7.2
18 سبتمبر 2024
تم طرح androidx.compose.material:material-*:1.7.2. يتضمّن الإصدار 1.7.2 هذه التعديلات.
الإصدار 1.7.1
10 سبتمبر 2024
- لم يتم إجراء أي تغييرات على عناصر Android. تمت إزالة
-desktopمن العناصر وإضافة-jvmStubsو-linuxx64Stubsمن العناصر. لا يُفترض استخدام أي من هذه الأهداف، بل هي عناصر نائبة للمساعدة في جهود Jetbrains Compose.
الإصدار 1.7.0
4 سبتمبر 2024
تم طرح androidx.compose.material:material-*:1.7.0. يتضمّن الإصدار 1.7.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.6.0
- تم نقل مكوّنات Material لاستخدام واجهات برمجة التطبيقات الجديدة الخاصة بالتموّج، ولم تعُد تستعلم عن
RippleTheme. - إنّ مكوّنات Material التي كانت تقبل سابقًا
MutableInteractionSourceوتستخدِم القيمة التلقائيةremember { MutableInteractionSource() }تقبل الآن قيمةMutableInteractionSourceقابلة للقيم الفارغة وتستخدِم القيمة التلقائية null بدلاً من ذلك. إذا لم تكن تستخدمMutableInteractionSource، يجب تمرير قيمة فارغة. يتيح ذلك لبعض المكوّنات إنشاء مثيل عند الحاجة فقط، ما يحسّن الأداء. يُنصح أيضًا بإجراء تغييرات مماثلة في مكوّناتك. - تمت ترقية
BottomDrawerوModalBottomSheetوBackdropScaffoldوBottomsheet العادي إلى واجهة برمجة تطبيقات ثابتة.
الإصدار 1.7.0-rc01
21 أغسطس 2024
تم طرح androidx.compose.material:material-*:1.7.0-rc01. يتضمّن الإصدار 1.7.0-rc01 هذه التعديلات.
الإصدار 1.7.0-beta07
7 أغسطس 2024
تم طرح androidx.compose.material:material-*:1.7.0-beta07. يتضمّن الإصدار 1.7.0-beta07 هذه التعديلات.
الإصدار 1.7.0-beta06
24 يوليو 2024
تم طرح androidx.compose.material:material-*:1.7.0-beta06. يتضمّن الإصدار 1.7.0-beta06 هذه التعديلات.
الإصدار 1.7.0-beta05
10 يوليو 2024
تم طرح androidx.compose.material:material-*:1.7.0-beta05. يتضمّن الإصدار 1.7.0-beta05 هذه التعديلات.
الإصدار 1.7.0-beta04
26 يونيو 2024
تم طرح androidx.compose.material:material-*:1.7.0-beta04. يتضمّن الإصدار 1.7.0-beta04 هذه التعديلات.
الإصدار 1.7.0-beta03
12 يونيو 2024
تم طرح androidx.compose.material:material-*:1.7.0-beta03. يتضمّن الإصدار 1.7.0-beta03 هذه التعديلات.
الإصدار 1.7.0-beta02
29 مايو 2024
تم طرح androidx.compose.material:material-*:1.7.0-beta02. يتضمّن الإصدار 1.7.0-beta02 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تعديل واجهة برمجة التطبيقات لتصميم الروابط: تم نقل
TextLinkStylesإلىTextStyleوإزالةTextDefaultsمن المواد (I5477b)
الإصدار 1.7.0-beta01
14 مايو 2024
تم طرح androidx.compose.material:material-*:1.7.0-beta01. يتضمّن الإصدار 1.7.0-beta01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم تعديل واجهة برمجة التطبيقات للحصول على روابط متوافقة مع تصميم Material في النص. على وجه التحديد، تمت إزالة الطرق من
TextDefaultsلإنشاءLinkAnnotationsذات سمات معيّنة وتحليل HTML باستخدام روابط ذات سمات معيّنة. بدلاً من ذلك، تمت إضافة فئةTextLinkStylesتتيح تصميم الروابط كمعلَمة في عنصر Text القابل للإنشاء. (I31b93)
الإصدار 1.7.0-alpha08
1 مايو 2024
تم طرح androidx.compose.material:material-*:1.7.0-alpha08. يتضمّن الإصدار 1.7.0-alpha08 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم إصلاح مشكلة عدم تطبيق
backgroundColorعلىTextFieldDecorationBoxوOutlinedTextFieldDecorationBox. تقبل مربّعات الزخرفة الآن المَعلمةshape. (I371c2، b/307694651) - تمت إزالة
RippleConfiguration#isEnabled، وأصبحLocalRippleConfigurationيقبل القيمة الخالية. لإيقاف تموّج، بدلاً من تقديمRippleConfigurationمعisEnabled = false، قدِّمnullإلىLocalRippleConfiguration. (I22725) - تتضمّن الروابط النصية خيارًا لتنسيق حالة الضغط بالإضافة إلى التنسيق العادي والتنسيق عند التمرير والتنسيق عند التركيز. تحتوي طرق
TextDefaultsعلى وسيطةpressedStyleلدعم ذلك. (Ic473f، b/139312671)
إصلاح الأخطاء
- تراعي الآن مساحة الحشو في أعلى التصنيف
OutlinedTextFieldحجم خط النظام. (Idc781)
الإصدار 1.7.0-alpha07
17 أبريل 2024
تم طرح androidx.compose.material:material-*:1.7.0-alpha07. يتضمّن الإصدار 1.7.0-alpha07 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة خيار نمط حالة الضغط إلى روابط النصوص، بالإضافة إلى النمط العادي ونمطَي التمرير والتركيز. (I5f864، b/139312671)
- تمت إضافة عنصر
TextDefaultsيحتوي على طرق لإنشاءLinkAnnotationوتحليل سلسلة ذات علامات HTML تطبّقMaterialThemeعلى الروابط. (I98532، b/139312671)
الإصدار 1.7.0-alpha06
3 أبريل 2024
تم طرح androidx.compose.material:material-*:1.7.0-alpha06. يتضمّن الإصدار 1.7.0-alpha06 هذه التعديلات.
الإشعار
- لم يعُد
androidx.compose.materialيتطلّب استخدام الإصدار نفسه من كل عنصر في مجموعة Maven هذه. يمكن للمستخدمين المزج بين إصدارات مكتبات Compose الأساسية (Ie5fba)
تغييرات واجهة برمجة التطبيقات
- تم نقل المزيد من الإعدادات التلقائية
ModalDrawerوBottomDrawerإلى العنصرDrawerDefaults. (Ib5b2e)
الإصدار 1.7.0-alpha05
20 مارس 2024
تم طرح androidx.compose.material:material-*:1.7.0-alpha05. يتضمّن الإصدار 1.7.0-alpha05 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إزالة العلامة
ScaffoldSubcomposeInMeasureFix. (I67363)
الإصدار 1.7.0-alpha04
6 مارس 2024
تم طرح androidx.compose.material:material-*:1.7.0-alpha04. يتضمّن الإصدار 1.7.0-alpha04 هذه التعديلات.
الميزات الجديدة
- تمت إضافة العنصر الجديد
androidx.compose.material:material-navigationالذي يتيح استخدام أوراق البيانات السفلية كوجهات عند استخدام Navigation Compose. يحلّ هذا الإصدار محل مكتبة Accompanist Navigation Material. (d65d57، b/180247978)
الإصدار 1.7.0-alpha03
21 فبراير 2024
تم طرح androidx.compose.material:material-*:1.7.0-alpha03. يتضمّن الإصدار 1.7.0-alpha03 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت ترقية
BottomDrawerمن إصدار تجريبي إلى إصدار ثابت. تعرض السمةBottomDrawerStateالآن مستوى التقدّم كدالة، ما يتيح الاستعلام عن مستوى التقدّم بين أهداف معيّنة. تسمح السمةBottomDrawerStateالآن بتخصيص مواصفات الحركة، ولم تعُد السمةconfirmStateChangeتعبير lambda لاحقًا. (I9c029، b/261423850) - تمت ترقية
BackdropScaffoldمن إصدار تجريبي إلى إصدار ثابت. أصبحت مواصفات الصورة المتحركة الآن مواصفاتtweenوفقًا للإرشادات. لم تعُد المَعلمةsnackbarHostالخاصة بالدالةBackdropScaffoldهي المَعلمة الأخيرة لتجنُّب حدوث التباس مع دوال lambda اللاحقة. تعرضBackdropScaffoldStateواجهة برمجة تطبيقاتprogress(from, to)للاستعلام عن مستوى التقدّم بين نقاط الارتكاز. (I73f48، b/261423218) - تمت ترقية أوراق البيانات السفلية العادية من تجريبية إلى ثابتة. تمت إزالة الدوال الإنشائية المتوقّفة نهائيًا. أصبحت مواصفات الصورة المتحركة الآن مواصفات وسيطة وفقًا للإرشادات. (I3c1a8، b/278692145، b/261409034)
- تمت ترقية أوراق البيانات السفلية المشروطة من تجريبية إلى ثابتة. تمت إزالة الدوال الإنشائية المتوقّفة نهائيًا. أصبحت مواصفات الصورة المتحركة الآن مواصفات
tweenوفقًا للإرشادات. (Ic53f4 وb/278692145 وb/266780235 وb/261409034)
إصلاح الأخطاء
- تم إصلاح مشكلة قد تؤدي إلى تعطُّل
BackdropScaffoldفي سيناريوهات معيّنة عند استخدامها معLookaheadScope. (I51396) - تمت إزالة التركيب الفرعي داخل
BottomSheetScaffoldلتحسين الأداء. تم إصلاح مشكلة تعطُّلBottomSheetScaffoldفي سيناريوهات معيّنة عند استخدامه معLookaheadScope. (I2f90c) - تمت إزالة التركيب الفرعي داخل
ModalBottomSheetLayout، ما أدّى إلى تحسين الأداء. (I7a025)
الإصدار 1.7.0-alpha02
7 فبراير 2024
تم طرح androidx.compose.material:material-*:1.7.0-alpha02. يتضمّن الإصدار 1.7.0-alpha02 هذه التعديلات.
الإصدار 1.7.0-alpha01
24 يناير 2024
تم طرح androidx.compose.material:material-*:1.7.0-alpha01. يتضمّن الإصدار 1.7.0-alpha01 هذه التعديلات.
التغييرات في السلوك
- تم نقل مكوّنات Material لاستخدام واجهات برمجة التطبيقات الجديدة الخاصة بالتموّج، ولم تعُد تستعلم عن
RippleTheme.
تغييرات واجهة برمجة التطبيقات
تم إيقاف
rememberRippleوRippleThemeنهائيًا من material-ripple، مع إضافة واجهات برمجة تطبيقات جديدة خاصة بالتموّج وRippleConfigurationإلى Material ومكتبات أخرى لنظام التصميم.إنّ مكوّنات Material التي كانت تقبل سابقًا
MutableInteractionSourceوتتذكر{ MutableInteractionSource() }تلقائيًا تقبل الآنMutableInteractionSourceقابلاً للقيم الخالية وتضبط القيمة التلقائية على القيمة الخالية بدلاً من ذلك. إذا لم تكن تستخدمMutableInteractionSource، يجب تمرير قيمة فارغة. يتيح ذلك لبعض المكوّنات إنشاء مثيل بشكل غير مباشر عند الحاجة فقط، ما يحسّن الأداء. يُنصح أيضًا بإجراء تغييرات مماثلة في مكوّناتك.
الإصدار 1.6
الإصدار 1.6.8
12 يونيو 2024
تم طرح androidx.compose.material:material-*:1.6.8. يتضمّن الإصدار 1.6.8 هذه التعديلات.
الإصدار 1.6.7
1 مايو 2024
تم طرح androidx.compose.material:material-*:1.6.7. يتضمّن الإصدار 1.6.7 هذه التعديلات.
الإصدار 1.6.6
17 أبريل 2024
تم طرح androidx.compose.material:material-*:1.6.6. لم يتم إجراء أي تغييرات منذ الإصدار الأخير.
الإصدار 1.6.5
3 أبريل 2024
تم طرح androidx.compose.material:material-*:1.6.5. يتضمّن الإصدار 1.6.5 هذه التعديلات.
الإصدار 1.6.4
20 مارس 2024
تم طرح androidx.compose.material:material-*:1.6.4. يتضمّن الإصدار 1.6.4 هذه التعديلات.
الإصدار 1.6.3
6 مارس 2024
تم طرح androidx.compose.material:material-*:1.6.3. يتضمّن الإصدار 1.6.3 هذه التعديلات.
إصلاح الأخطاء
- إصلاح مشكلة تراجع في
ExposedDropdownMenuلجعلها قابلة للتركيز مرة أخرى (c0e0ed، b/323694447)
الإصدار 1.6.2
21 فبراير 2024
تم طرح androidx.compose.material:material-*:1.6.2. يتضمّن الإصدار 1.6.2 هذه التعديلات.
الإصدار 1.6.1
7 فبراير 2024
تم طرح androidx.compose.material:material-*:1.6.1. يتضمّن الإصدار 1.6.1 هذه التعديلات.
الإصدار 1.6.0
24 يناير 2024
تم طرح androidx.compose.material:material-*:1.6.0. يتضمّن الإصدار 1.6.0 هذه التعديلات.
الإصدار 1.6.0-rc01
10 يناير 2024
تم طرح androidx.compose.material:material-*:1.6.0-rc01. يتضمّن الإصدار 1.6.0-rc01 هذه التعديلات.
الإصدار 1.6.0-beta03
13 كانون الأول (ديسمبر) 2023
تم طرح androidx.compose.material:material-*:1.6.0-beta03. يتضمّن الإصدار 1.6.0-beta03 هذه التعديلات.
الإصدار 1.6.0-beta02
29 نوفمبر 2023
تم طرح androidx.compose.material:material-*:1.6.0-beta02. يتضمّن الإصدار 1.6.0-beta02 هذه التعديلات.
الإصدار 1.6.0-beta01
15 تشرين الثاني (نوفمبر) 2023
تم طرح androidx.compose.material:material-*:1.6.0-beta01. يتضمّن الإصدار 1.6.0-beta01 هذه التعديلات.
الإصدار 1.6.0-alpha08
18 أكتوبر 2023
تم طرح androidx.compose.material:material-*:1.6.0-alpha08. يتضمّن الإصدار 1.6.0-alpha08 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- إيقاف الدالة
materialIconنهائيًا واستخدام الدالة التي تتضمّن معلَمةautoMirrorبدلاً منها (Ia338d)
إصلاح الأخطاء - زيادة ارتفاع عنصر شريط التنقّل تلقائيًا عند عرض محتوى كبير (0c4ecc، b/272336962)
الإصدار 1.6.0-alpha07
4 أكتوبر 2023
تم طرح androidx.compose.material:material-*:1.6.0-alpha07. يتضمّن الإصدار 1.6.0-alpha07 هذه التعديلات.
- تحديثات التبعيات
الإصدار 1.6.0-alpha06
20 سبتمبر 2023
تم طرح androidx.compose.material:material-*:1.6.0-alpha06. يتضمّن الإصدار 1.6.0-alpha06 هذه التعديلات.
تغيير في السلوك قد يؤدي إلى أعطال
- تمت إزالة الوظائف ذات الصلة بلوحة التنقّل من
BottomSheetScaffold. يمكنك تضمينBottomSheetScaffoldفي عنصر Drawer قابل للإنشاء لتحقيق الوظيفة السابقة. يمكنك الاطّلاع علىBottomSheetScaffoldWithDrawerSampleمثلاً. (I1dcc8)
تغييرات واجهة برمجة التطبيقات
- تمت إضافة علامة مؤقتة للتحكّم في ما إذا كان يجب أن تقيس أداة Scaffold عناصرها الثانوية أثناء القياس أو أثناء التنسيق. سيتم قياس هذا المقياس تلقائيًا. إذا كنت تواجه مشاكل في السلوك الجديد، يُرجى إبلاغنا بها. (If6e3b)
الإصدار 1.6.0-alpha05
6 سبتمبر 2023
تم طرح androidx.compose.material:material-*:1.6.0-alpha05. يتضمّن الإصدار 1.6.0-alpha05 هذه التعديلات.
الميزات الجديدة
- تمت إضافة إمكانية عرض الرموز تلقائيًا بشكل معكوس عند عرضها في تخطيطات من اليمين إلى اليسار. توفّر الرموز في الوحدتَين material-icons-core وmaterial-icons-extended الآن مجموعات رموز إضافية تتيح ميزة الانعكاس التلقائي عندما يسمح الرمز بذلك. يتم وضع البادئة
Icons.AutoMirrored.Filled...وما إلى ذلك للمجموعات الجديدة، وتحتوي على رموز سيتم عكسها تلقائيًا في التصاميم من اليمين إلى اليسار. اطّلِع على قائمة رموز Material للاطّلاع على قائمة الرموز التي يمكن (ويجب) عكسها تلقائيًا.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة إمكانية عرض الرموز تلقائيًا بشكل معكوس عند عرضها في تخطيطات من اليمين إلى اليسار. توفّر الرموز في الوحدتَين material-icons-core وmaterial-icons-extended الآن مجموعات رموز إضافية تتيح ميزة الانعكاس التلقائي عندما يسمح الرمز بذلك. يتم وضع البادئة
Icons.AutoMirrored.Filled...وما إلى ذلك للمجموعات الجديدة، وتحتوي على رموز سيتم عكسها تلقائيًا في التصاميم من اليمين إلى اليسار. اطّلِع على قائمة رموز Material للاطّلاع على قائمة الرموز التي يمكن (ويجب) عكسها تلقائيًا. تم الآن وضع علامة على خصائص الرموز التي تم توفيرها سابقًا على أنّها متوقّفة نهائيًا، ويتم تقديم اقتراح باستبدالها بكتلة أخرى للمساعدة في عملية النقل. في حال عدم توفّر أي معالجة خاصة لعكس الرموز على اتجاه الكتابة من اليمين إلى اليسار، ننصحك بنقل البيانات إلى مجموعة الرموز الجديدة. على سبيل المثال، يجب إعادة تصميم الرمزIcons.Filled.ArrowBackليصبحIcons.AutoMirrored.Filled.ArrowBack. (I4b511)
الإصدار 1.6.0-alpha04
23 أغسطس 2023
تم طرح androidx.compose.material:material-*:1.6.0-alpha04. يتضمّن الإصدار 1.6.0-alpha04 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح المشكلة التي كانت تتسبب في محاولة بعض المكوّنات التي تستخدم
Subcomposition(مثلBottomSheetScaffold) داخل Scaffold داخلLookaheadScopeفي قراءة حجمها في وقت مبكر جدًا. (If2c5d) - تم إصلاح عملية احتساب
DropdownMenuفيoffset، بحيث تعتمد إزاحات x فقط على اتجاه التنسيق المحلي، ولن يتم عكس إزاحات y عندما تكون القائمة بالقرب من أسفل الشاشة. (Iccc74، b/294103942) - تم تحسين الأجزاء الداخلية لتنسيق
BottomSheetScaffoldوتم حلّ مشكلة محتملة فيBottomSheetScaffoldداخلLookaheadLayout. (Ic0afa)
الإصدار 1.6.0-alpha03
9 أغسطس 2023
تم طرح androidx.compose.material:material-*:1.6.0-alpha03. يتضمّن الإصدار 1.6.0-alpha03 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تتضمّن مكوّنات Material2 الآن واجهة برمجة تطبيقات منفصلة لتمرير
windowInsetsمن أجل إتاحة وظيفة العرض من الحافة إلى الحافة في Android. على عكس مكوّنات Material3، لا تتوافق مكوّنات Material2 مع الحواف الداخلية تلقائيًا، ويجب تمرير القيمة يدويًا. يُرجى الرجوع إلى النماذج ذات الصلة للحصول على إرشادات. (I655e8)
الإصدار 1.6.0-alpha02
26 يوليو 2023
تم طرح androidx.compose.material:material-*:1.6.0-alpha02. يتضمّن الإصدار 1.6.0-alpha02 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- نحن بصدد نقل التبعية في الكثافة إلى مستوى المكوّن. ينطبق ذلك على المكوّنات التالية:
SwipeToDismissوالمكوّنات المستندة إلى جداول البيانات. يُرجى استخدام التحميل الزائد الجديد المتوفّر حيث تكون الكثافة مَعلمة. (I1846e) - تعليقات توضيحية إضافية لتحديد المدخلات المسموح بها للعناصر القابلة للإنشاء (I51109)
- تم تعديل ملفات واجهة برمجة التطبيقات لإضافة تعليقات توضيحية حول إيقاف التوافق (I8e87a، b/287516207)
- تمت إضافة محاذاة "البدء" الجديدة إلى
FabPosition(Ib7aea، b/170592777) - تم إيقاف استخدام
TextFieldColorsWithIconsفي Material 2 نهائيًا واستخدامTextFieldColorsبدلاً منه. عند إلغاءleadingIconColorأوtrailingIconColor، عليك أيضًا إلغاء التحميل الزائد باستخدامinteractionSource. (Id57ed، b/199377790)
الإصدار 1.6.0-alpha01
21 حزيران (يونيو) 2023
تم طرح androidx.compose.material:material-*:1.6.0-alpha01. يتضمّن الإصدار 1.6.0-alpha01 هذه التعديلات.
التغييرات في السلوك
- أصبح
includeFontPaddingالآنfalseتلقائيًا في الكتابة باستخدام Material 2. تم أيضًا تغيير نمط ارتفاع السطر التلقائي إلىTrim.NoneوAlignment.Center، وتمت إضافةlineHeightصريح (بالوحدات المستقلة عن الكثافة) إلىTextStyleفيTypography. راجِع مستندات واجهة برمجة التطبيقات إذا أردت تخصيص هذه القيم، واطّلِع على مشاركة المدونة للحصول على شرح مفصّل لهذه التغييرات. (Icabc3 وI3f801 وI04c03)
تغييرات واجهة برمجة التطبيقات
- تم إيقاف واجهات برمجة التطبيقات
Swipeableالخاصة بالمواد نهائيًا. يُرجى الرجوع إلى واجهات برمجة التطبيقات في Foundation التي تم تحسينها لحالات الاستخدام البسيطة والمعقّدة.AnchoredDraggable(I732e0)
إصلاح الأخطاء
- تعرض الآن كل من
BottomSheetStateوModalBottomSheetStateوBottomDrawerStateسمة تقدّم تشير إلى مستوى التقدّم بين نقطة الارتكاز الحالية (المستقرة) وأقرب نقطة ارتكاز في اتجاه التمرير السريع. (I1b317، b/271169225، b/276375124، b/276776071، b/270066861)
الإصدار 1.5
الإصدار 1.5.4
18 أكتوبر 2023
تم طرح androidx.compose.material:material-*:1.5.4. يتضمّن الإصدار 1.5.4 هذه التعديلات.
الإصدار 1.5.3
4 أكتوبر 2023
تم طرح androidx.compose.material:material-*:1.5.3. لا يتضمّن هذا الإصدار أي تغييرات
الإصدار 1.5.2
27 سبتمبر 2023
تم طرح androidx.compose.material:material-*:1.5.2. يتضمّن الإصدار 1.5.2 هذه التعديلات.
الإصدار 1.5.1
6 سبتمبر 2023
تم إصدار androidx.compose.material:material-*:1.5.1 بدون أي تغييرات. يتضمّن الإصدار 1.5.1 هذه التعديلات.
الإصدار 1.5.0
9 أغسطس 2023
تم طرح androidx.compose.material:material-*:1.5.0. يتضمّن الإصدار 1.5.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.4.0
تغييرات واجهة برمجة التطبيقات
- تم دمج التغييرات في واجهات برمجة التطبيقات Swipeable1 في
BottomSheetScaffold. تمت إعادة تسمية المَعلمةconfirmStateChangeالخاصة بـBottomSheetStateلتصبحconfirmValueChange. يتم الآن عرضprogressكقيمة عائمة.animateToوsnapToهما سمتان داخلية. يُرجى استخدامexpand()وcollapse()بدلاً منها. تمت إزالةdirectionوoverflow. تم استبدالoffsetبـrequireOffset(). I323b4 - وضع علامة على الدالة
snapToفي Drawer للإشارة إلى أنّها ليست واجهة برمجة تطبيقات تجريبية (Ib9c18، b/261425368) - تمت إضافة مَعلمة لون المسار لمؤشرات التقدم الدائرية، ومَعلمة غطاء نهاية الخط لكلّ من مؤشرات التقدم الدائرية والخطية. (Ie668c، b/216325962، b/222964817)
- تمت إعادة تسمية
confirmStateChangeفيModalBottomSheetStateوModalBottomSheetState.SaverوrememberModalBottomSheetStateإلىconfirmValueChange. (Ib48d1) - أضِف
Modifier.minimumInteractiveComponentSize. يمكن استخدامها لحجز مساحة لا تقل عن 48 وحدة بكسل مستقل الكثافة (dp) لتوضيح التفاعلات باللمس إذا كان قياس العنصر أصغر. (I33f58، b/258495559) - تم دمج التغييرات في واجهات برمجة التطبيقات التي يمكن التمرير سريعًا فيها في
ModalBottomSheetLayout. لم تعُد الدالة animateTo فيModalBottomSheetStateتقبل المَعلمةanimationSpec، وأصبحت قيمة الإزاحة المعروضة تقبل القيم الخالية. استخدِمrequireOffsetلطلب التعويض. (Ia2e79) - إضافة تعليق توضيحي
@JvmDefaultWithCompatibility(I8f206) - تم دمج التغييرات في واجهات برمجة التطبيقات التي يمكن التمرير السريع فيها في
animateToمنModalDrawer. DrawerState، وتم استبدالها بطريقتَي الفتح والإغلاق، وأصبح الإزاحة الآن تقبل القيمة الخالية. استخدِمrequireOffsetلطلب التعويض. (I3de9e) - تم تعديل الأدراج وأوراق البيانات لتأخير الضغطات بشكل صحيح في حال إمكانية تحوّل الإيماءات إلى أحداث تمرير.
- تمت إضافة المَعلمة
minLinesإلى النص في Material وMaterial3، وTextFieldوOutlinedTextField، ما يتيح ضبط الحد الأدنى لارتفاع المكوّن من حيث عدد الأسطر (I4af1d)
إصلاح الأخطاء
- تم إصلاح مشكلة عدم استهلاك
pullRefreshللسرعة، ما يؤدي إلى ظهور التمرير السريع. تم أيضًا تغيير توقيع واجهة برمجة التطبيقات للدالة lambdaonReleaseفيModifier.pullRefreshلعرض قيمة Float للسرعة المستهلكة (I7db65، b/266874741) - تعرض الآن كل من
BottomSheetStateوModalBottomSheetStateوBottomDrawerStateسمة تقدّم تشير إلى مستوى التقدّم بين نقطة الارتكاز الحالية (المستقرة) وأقرب نقطة ارتكاز في اتجاه التمرير السريع. (I1b317، b/271169225، b/276375124، b/276776071، b/270066861) - تم إصلاح مشكلة عدم ظهور إجراء الإغلاق
AlertDialogأسفل إجراء التأكيد عندما يتم ترتيب الإجراءات فوق بعضها البعض لتناسب عرض مربّع الحوار. يعمل هذا الإصلاح على مواءمة التنفيذ مع مواصفات Material Design. (I029de، b/235454277) - لن تشارك
BottomSheetScaffoldفي التمرير المتداخل بعد الآن عندما يتم ضبطgesturesEnabledعلى "خطأ". (I634f3، b/215403277) - تم إصلاح الخطأ الذي كان يؤدي إلى تعطُّل
BottomSheetScaffoldعند تقديم محتوى فارغ للفتحات. (Ib24a5، b/235588730) - إصلاح المشكلة التي تسبّبت في اعتراض النقرات/أحداث المؤشر
PullRefreshIndicator. (2494256، b/271777421) - تم إصلاح مشكلة كانت تؤدي إلى تعطُّل
ModalBottomSheetLayoutفي حالة استخدام غير شائعة عند تغيير اتجاه الشاشة. تعمل الآن الرسوم المتحركة للتنسيق (مثلModifier.animateContentSize) في محتوى الورقة أو عليها بسلاسة. (I2f981، b/266780234)
الإصدار 1.5.0-rc01
26 يوليو 2023
تم طرح androidx.compose.material:material-*:1.5.0-rc01. يتضمّن الإصدار 1.5.0-rc01 هذه التعديلات.
الإصدار 1.5.0-beta03
28 حزيران (يونيو) 2023
تم طرح androidx.compose.material:material-*:1.5.0-beta03. يتضمّن الإصدار 1.5.0-beta03 هذه التعديلات.
إصلاح الأخطاء
- تعرض الآن كل من
BottomSheetStateوModalBottomSheetStateوBottomDrawerStateسمة تقدّم تشير إلى مستوى التقدّم بين نقطة الارتكاز الحالية (المستقرة) وأقرب نقطة ارتكاز في اتجاه التمرير السريع. (I1b317، b/271169225، b/276375124، b/276776071، b/270066861)
الإصدار 1.5.0-beta02
7 يونيو 2023
تم طرح androidx.compose.material:material-*:1.5.0-beta02. يتضمّن الإصدار 1.5.0-beta02 هذه التعديلات.
الإصدار 1.5.0-beta01
24 مايو 2023
تم طرح androidx.compose.material:material-*:1.5.0-beta01. يتضمّن الإصدار 1.5.0-beta01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- لم يعُد بإمكانك ضبط قيمة فارغة لإزاحة
DrawerStateوBottomDrawerState. وبدلاً من ذلك، تعرضFloat.NaNللإشارة إلى عدم توفّر الإزاحة. (Ie9855) - تمت إضافة خيار لتمرير
ScrollStateعند إنشاءDropdownMenuأوExposedDropdownMenuللتحكّم في حالة التمرير العمودي لعناصر القائمة المعروضة. (Idb009، b/185304441) - إضافة إمكانية تفعيل/إيقاف إيماءة
ModalBottomSheetLayoutليتمكّن المستخدم من ضبطها لورقة أكثر تميزًا في أسفل الشاشة (I40af0) - تمت إضافة مَعلمة لون إلى
BasicTextللسماح بتحريك لون النص أو ضبطه بكفاءة. (Iffd88، b/246961787) - إعادة تسمية السمة "الدلالات"
isContainerإلىisTraversalGroup(I121f6)
إصلاح الأخطاء
- تم إصلاح مشكلة عدم ظهور إجراء الإغلاق
AlertDialogأسفل إجراء التأكيد عندما يتم ترتيب الإجراءات فوق بعضها البعض لتناسب عرض مربّع الحوار. يعمل هذا الإصلاح على مواءمة التنفيذ مع مواصفات "التصميم المتعدد الأبعاد". (I029de، b/235454277)
الإصدار 1.5.0-alpha04
10 مايو 2023
تم طرح androidx.compose.material:material-*:1.5.0-alpha04. يتضمّن الإصدار 1.5.0-alpha04 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- نحن بصدد نقل التبعية في الكثافة إلى مستوى المكوّن. ينطبق ذلك على المكوّنات التالية:
BottomDrawerوModalBottomSheetLayoutوBottomSheetScaffoldوSwitchوModalDrawer. يُرجى استخدام التحميل الزائد الجديد المتوفّر حيث تكون الكثافة مَعلمة. (I8fbd8)
الإصدار 1.5.0-alpha03
19 أبريل 2023
تم طرح androidx.compose.material:material-*:1.5.0-alpha03. يتضمّن الإصدار 1.5.0-alpha03 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تعديل الأجزاء الداخلية من
BottomDrawerلاستخدام واجهات برمجة التطبيقات الجديدةSwipeableV2لهذا السبب، لن يحتويBottomDrawerStateالآن إلا على واجهات برمجة تطبيقات محدّدة على مستوى الفئة، ولن يرث طرقًا أو سمات منSwipeableState. نستخدم التركيب معSwipeableV2Stateداخلي. أصبحت الإزاحة الآن سمة نقطة عائمة تقبل القيم الخالية، وسيظل بالإمكان الوصول إلى القيمة الحالية وقيمة هدف التمرير السريع من خلال سمتَي currentValue وtargetValue. ستظلّ الطرق السابقة على مستوى الفئة، مثل الفتح/التوسيع/الإغلاق والسمات مثلisOpen/isClosed، متاحة. (Iad40c، b/178529942، b/220676296)
إصلاح الأخطاء
- تم تعديل الأجزاء الداخلية لمكوّن "مفتاح التبديل". سيعرض مفتاح التبديل الآن معاينة لأقرب حالة (الحالة المستهدَفة) عند السحب. (Id90d4)
- تم تحسين محتوى الأوراق المتحرّك (مثل
Modifier.animateContentSizeفي محتوى الأوراق) فيBottomSheetScaffoldوأصبح يعمل بسلاسة. (Ia913c، b/270518202، b/254446195) - لن تشارك
BottomSheetScaffoldفي التمرير المتداخل بعد الآن عندما تكون قيمةgesturesEnabledهيfalse. (I634f3، b/215403277)
الإصدار 1.5.0-alpha02
5 أبريل 2023
تم طرح androidx.compose.material:material-*:1.5.0-alpha02. يتضمّن الإصدار 1.5.0-alpha02 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح الخطأ الذي كان يؤدي إلى تعطُّل
BottomSheetScaffoldعند تقديم محتوى فارغ للفتحات. (Ib24a5، b/235588730) - إصلاح المشكلة التي تتسبّب في اعتراض
PullRefreshIndicatorللنقرات / أحداث المؤشر (2494256، b/271777421)
الإصدار 1.5.0-alpha01
22 مارس 2023
تم طرح androidx.compose.material:material-*:1.5.0-alpha01. يتضمّن الإصدار 1.5.0-alpha01 هذه التعديلات.
إصلاح الأخطاء
- إضافة نموذج لإعادة تدفّق chipgroup تعديل الحشو الأفقي بين الشرائح الفرعية في نموذج مجموعة الشرائح ذات السطر الواحد ليتوافق مع المواصفات (I3b155)
- تم إصلاح مشكلة كانت تؤدي إلى تعطُّل
ModalBottomSheetLayoutفي حالة استخدام غير شائعة عند تغيير اتجاه الشاشة. تعمل الآن الرسوم المتحركة للتنسيق (مثلModifier.animateContentSize) في محتوى الورقة أو عليها بسلاسة. (I2f981، b/266780234)
الإصدار 1.4
الإصدار 1.4.3
3 مايو 2023
تم إصدار androidx.compose.material:material-*:1.4.3 بدون أي تغييرات (زيادة رقم الإصدار فقط).
الإصدار 1.4.2
19 أبريل 2023
تم طرح androidx.compose.material:material-*:1.4.2. يتضمّن الإصدار 1.4.2 هذه التعديلات.
الإصدار 1.4.1
5 أبريل 2023
تم طرح androidx.compose.material:material-*:1.4.1. يتضمّن الإصدار 1.4.1 هذه التعديلات.
الإصدار 1.4.0
22 مارس 2023
تم طرح androidx.compose.material:material-*:1.4.0. يتضمّن الإصدار 1.4.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.3.0
تغييرات واجهة برمجة التطبيقات
- أضِف
Modifier.minimumInteractiveComponentSize. يمكن استخدامها لحجز مساحة لا يقلّ حجمها عن 48 بكسل مستقل الكثافة (dp) لتوضيح التفاعلات باللمس إذا كان قياس العنصر أصغر. (I33f58، b/258495559) - تم دمج التغييرات في واجهات برمجة التطبيقات التي يمكن التمرير سريعًا فيها في
ModalDrawer. تم استبدالanimateToفيDrawerStateبطريقتَي الفتح والإغلاق، وأصبح الإزاحة قابلة للتصغير. استخدِمrequireOffsetلطلب التعويض. (I3de9e) - تمت إضافة المَعلمة
minLinesإلى النص في Material وMaterial3، وTextFieldوOutlinedTextField، ما يتيح ضبط الحد الأدنى لارتفاع المكوّن من حيث عدد الأسطر (I4af1d) - تمت إضافة المَعلمة
minLinesإلىBasicTextوBasicTextField. تتيح هذه السمة ضبط الحد الأدنى لارتفاع العناصر القابلة للإنشاء هذه من حيث عدد الأسطر (I24294 وb/122476634).
الإصدار 1.4.0-rc01
8 مارس 2023
تم إصدار androidx.compose.material:material-*:1.4.0-rc01 بدون أي تغييرات. يتضمّن الإصدار 1.4.0-rc01 هذه التعديلات.
الإصدار 1.4.0-beta02
22 فبراير 2023
تم طرح androidx.compose.material:material-*:1.4.0-beta02. يتضمّن الإصدار 1.4.0-beta02 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم دمج التغييرات في واجهات برمجة التطبيقات التي يمكن التمرير سريعًا فيها في
BottomSheetScaffold. تمت إعادة تسمية المَعلمةconfirmStateChangeالخاصة بـBottomSheetStateلتصبحconfirmValueChange. يتم الآن عرضprogressكقيمة عائمة.animateToوsnapToهما سمتان داخلية. يُرجى استخدامexpand()وcollapse()بدلاً منها. تمت إزالةdirectionوoverflow. تم استبدالoffsetبـrequireOffset(). (I323b4)
إصلاح الأخطاء
- إزالة الأدوار الدلالية من المساحات القابلة للنقر والاختيار، وتعديل المكوّنات التي كانت تستخدمها لضبط الأدوار باستخدام modifier.semantics (Ibb4ba)
- تعديل بسيط على رموز Material الممتدة التي تتضمّن الرموز المعبّأة
desktop_macوdirectionsوkitchen(I65f5e)
الإصدار 1.4.0-beta01
8 شباط (فبراير) 2023
تم طرح androidx.compose.material:material-*:1.4.0-beta01. يتضمّن الإصدار 1.4.0-beta01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم إصلاح مشكلة عدم استهلاك
pullRefreshللسرعة، ما يؤدي إلى ظهور التمرير السريع. تم أيضًا تغيير توقيع واجهة برمجة التطبيقات للدالة lambdaonReleaseفيModifier.pullRefreshلعرض قيمة Float للسرعة المستهلكة (I7db65، b/266874741) - تمت استعادة دالة جلب السمة
LocalMinimuTouchTargetEnforcementووضع علامة عليها على أنّها متوقّفة نهائيًا وإعادة التوجيه إلىLocalMinimumInteractiveComponentEnforcement. (I60dd5)
الإصدار 1.4.0-alpha05
25 كانون الثاني (يناير) 2023
تم طرح androidx.compose.material:material-*:1.4.0-alpha05. يتضمّن الإصدار 1.4.0-alpha05 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح المشكلة المتمثّلة في احتساب حالة
ModalBottomSheetLayout's HalfExpandedبشكلٍ غير صحيح وظهور الورقة على أنّها عائمة. (I8c615، b/265610459) - تم إصلاح خطأ في
ModalBottomSheetLayoutكان يؤدي إلى تعطُّل الورقة عند الانتقال من الحالة المخفية إلى الحالة المرئية في بعض الحالات. (Ia9265، b/265444789)
الإصدار 1.4.0-alpha04
11 يناير 2023
تم طرح androidx.compose.material:material-*:1.4.0-alpha04. يتضمّن الإصدار 1.4.0-alpha04 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة السمة الدلالية
IsContainerعلى "المنصات". سيتم استخدام هذه السمة في تغيير لاحق يحدّد ترتيب الانتقال استنادًا إلى المعنى الدلالي للعناصر، مثل المساحات. (I63379) - وضع علامة على الدالة
snapToفي Drawer للإشارة إلى أنّها ليست واجهة برمجة تطبيقات تجريبية (Ib9c18، b/261425368) - تمت إضافة مَعلمة لون المسار لمؤشرات التقدم الدائرية، ومَعلمة غطاء نهاية الخط لكلّ من مؤشرات التقدم الدائرية والخطية. (Ie668c، b/216325962، b/222964817)
- تمت إعادة تسمية
confirmStateChangeفيModalBottomSheetStateوModalBottomSheetState.SaverوrememberModalBottomSheetStateإلىconfirmValueChange. (Ib48d1) - المزيد من إمكانية قبول القيمة الخالية لأنواع الإرجاع للدوال المتوقفة نهائيًا والمخفية (Ibf7b0)
- أضِف
Modifier.minimumInteractiveComponentSize. يمكن استخدامها لحجز مساحة لا تقل عن 48 وحدة بكسل مستقل الكثافة (dp) لتوضيح التفاعلات باللمس إذا كان قياس العنصر أصغر. (I33f58، b/258495559) - تم دمج التغييرات في واجهات برمجة التطبيقات التي يمكن التمرير سريعًا فيها في
ModalBottomSheetLayout. لم يعُدanimateToالخاص بـModalBottomSheetStateيقبل المَعلمةanimationSpec، وأصبحت قيمةoffsetالمعروضة تقبل القيم الخالية. استخدِمrequireOffsetلطلبoffset. (Ia2e79)
إصلاح الأخطاء
- يبلغ الحد الأقصى لعرض ورقة
ModalBottomSheetLayoutالآن 640 وحدة بكسل مستقلة عن الكثافة. (I71a4f، b/234927577) - تم إصلاح مشكلة عدم تعديل
rememberPullRefreshStateلـrefreshThresholdوrefreshingOffsetبمرور الوقت. (Ifed10، b/263159832) - تم الآن ربط مستوى التقدّم في مؤشرات التقدّم بالنطاق المتوقّع بشكل صحيح. (I8a7eb، b/262262727)
- عندما لم يتلقَّ
ModalBottomSheetStateأي نقاط ربط بعد، سيعدّلcurrentValueبدون رسم متحرك عند طلبsnapToأوanimateToبدلاً من عرض استثناء. (I2c91b) - تم إصلاح الحالة المفعَّلة في تنفيذ Material 2
FilterChip. (Id326a، b/261329817) - تم إصلاح الخطأ الذي كان يؤدي إلى تعطُّل
ModalBottomSheetLayoutإذا كانHalfExpandedعند التدوير من الوضع العمودي إلى الوضع الأفقي. يُرجى التأكّد من إدخالinitialValueالصحيح، مثلاً من خلال التحقّق من الإعدادات. (Ie8df7، b/182882364) - تم إصلاح المشكلة التي كانت تؤدي إلى تعطُّل
ModalBottomSheetLayoutإذا كان محتوى ورقة البيانات فارغًا. تسمحModalBottomSheetLayoutالآن بمحتوى جدول بيانات فارغ. إذا كان محتوى الورقة فارغًا، ستتضمّن الحالة "مخفية" فقط. (Ic2288، b/200980998، b/216693030)
مشكلة معروفة
- عند التحديث من
androidx.compose.foundation:1.4.0-alpha03إلىandroidx.compose.foundation:1.4.0-alpha04، قد يظهر لك الخطأjava.lang.NoSuchFieldError. هنا تم الإبلاغ عن المشكلة في الأصل. تم إرسال إصلاح لهذه المشكلة، وسيتوفّر في تحديث Compose التالي. كحلّ بديل، يمكنك تحديث مكتبتَيandroidx.compose.materialوandroidx.compose.material3إلى أحدث إصدار(1.1.0-alpha04) أو الرجوع إلى الإصدار 1.4.0-alpha03 منandroidx.compose.foundation.
الإصدار 1.4.0-alpha03
7 كانون الأول (ديسمبر) 2022
تم طرح androidx.compose.material:material-*:1.4.0-alpha03. يتضمّن الإصدار 1.4.0-alpha03 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- إضافة تعليق توضيحي
@JvmDefaultWithCompatibility(I8f206) - تم دمج التغييرات في واجهات برمجة التطبيقات
SwipeableفيModalDrawer. تم استبدالanimateToالخاص بـ "DrawerState" بالطريقتَينopenوclose، وأصبح الإزاحة قابلة للقيم الخالية. استخدِمrequireOffsetلطلب التعويض. (I3de9e) - تمت إضافة Modifier API للاستعلام عن معلومات التمرير الخاصة بالعناصر الرئيسية. (I2ba9d، b/203141462)
- يُستخدَم في
Clickableلتأخير تفاعلات الضغط بشكل صحيح، عندما يمكن أن تصبح الإيماءات أحداث تمرير. - تم إصلاح المشكلة المتمثلة في عدم تأخير
Clickablesبشكلٍ صحيح عند استخدامه داخلScrollable ViewGroup. - تم تعديل الأدراج وأوراق البيانات لتأخير الضغطات بشكل صحيح في حال إمكانية تحوّل الإيماءات إلى أحداث تمرير.
إصلاح الأخطاء
- تم إصلاح مشكلة تعذُّر إيقاف
PullRefreshIndicatorبعد استدعاءonRefresh، إذا لم يتم تغيير حالة إعادة التحميل إلى "صحيح". (Ie2416، b/248274004)
تحديثات الاعتماديات
- تعتمد واجهة مستخدم Compose وCompose Material الآن على الإصدار 2.5.1 من Lifecycle. (I05ab0، b/258038814)
الإصدار 1.4.0-alpha02
9 نوفمبر 2022
تم طرح androidx.compose.material:material-*:1.4.0-alpha02. يتضمّن الإصدار 1.4.0-alpha02 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تقبل الآن
awaitFirstDownوwaitForUpOrCancellationPointerEventPassلتوفير مرونة أكبر. (I7579a، b/212091796) - تمت إضافة المَعلمة
minLinesإلى النص في Material وMaterial3، وTextFieldوOutlinedTextField، ما يتيح ضبط الحد الأدنى لارتفاع المكوّن من حيث عدد الأسطر (I4af1d) - تمت إضافة المَعلمة
minLinesإلىBasicTexوBasicTextField. تتيح هذه السمة ضبط الحد الأدنى لارتفاع العناصر القابلة للإنشاء هذه من حيث عدد الأسطر (I24294، b/122476634).
الإصدار 1.4.0-alpha01
24 أكتوبر 2022
تم طرح androidx.compose.material:material-*:1.4.0-alpha01. يتضمّن الإصدار 1.4.0-alpha01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة طريقة جديدة،
awaitEachGesture()، لأدوات رصد الإيماءات. تعمل هذه الطريقة بشكل مشابه للطريقةforEachGesture()، ولكنّ حلقة الإيماءات تعمل بالكامل ضمنAwaitPointerEventScope، لذا لا يمكن فقدان الأحداث بين التكرارات. - تم إيقاف
forEachGesture()نهائيًا واستبداله بـawaitEachGesture()لأنّه يسمح بفقدان الأحداث بين الإيماءات. (Iffc3f، b/251260206)
الإصدار 1.3
الإصدار 1.3.1
9 نوفمبر 2022
تم طرح androidx.compose.material:material-*:1.3.1. يتضمّن الإصدار 1.3.1 هذه التعديلات.
الإصدار 1.3.0
24 أكتوبر 2022
تم طرح androidx.compose.material:material-*:1.3.0. يتضمّن الإصدار 1.3.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.2.0
تغيير في السلوك يؤدي إلى حدوث خطأ
- تم تقليل الحد الأقصى للارتفاع المسموح به في مربّعات الحوار والنوافذ المنبثقة إلى 8 وحدات بكسل مستقلة الكثافة.
تغييرات واجهة برمجة التطبيقات
- إضافة مكوّن "السحب لإعادة التحميل" إلى Compose (I29168)
- تغيير اسم المَعلمة من "القيم" إلى "القيمة" في RangeSlider (I3b79a)
الإصدار 1.3.0-rc01
5 أكتوبر 2022
تم طرح androidx.compose.material:material-*:1.3.0-rc01. يتضمّن الإصدار 1.3.0-rc01 هذه التعديلات.
الإصدار 1.3.0-beta03
21 سبتمبر 2022
تم طرح androidx.compose.material:material-*:1.3.0-beta03. يتضمّن الإصدار 1.3.0-beta03 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- إضافة مكوّن "سحب لإعادة التحميل" إلى Compose (I29168)
الإصدار 1.3.0-beta02
7 أيلول (سبتمبر) 2022
تم طرح androidx.compose.material:material-*:1.3.0-beta02. يتضمّن الإصدار 1.3.0-beta02 هذه التعديلات.
لم يتم إجراء أي تغييرات منذ الإصدار 1.3.0-beta01
الإصدار 1.3.0-beta01
24 أغسطس 2022
تم طرح androidx.compose.material:material-*:1.3.0-beta01. يتضمّن الإصدار 1.3.0-beta01 هذه التعديلات.
تغيير في السلوك يؤدي إلى حدوث خطأ
تم تقليل الحد الأقصى للارتفاع المسموح به في مربّعات الحوار والنوافذ المنبثقة إلى 8 وحدات بكسل مستقلة الكثافة.
تم خفض الحد الأقصى للارتفاع المسموح به في مربّعات الحوار والنوافذ المنبثقة في Compose من 30dp إلى 8dp. يؤثّر هذا التغيير في مربّعات الحوار المخصّصة والنوافذ المنبثقة لكلّ من Material وUI. تم إجراء هذا التغيير للحدّ من خطأ في إمكانية الوصول على إصدارات Android الأقدم من الإصدار S، ولضمان قدرة خدمات تسهيل الاستخدام داخل هذه النوافذ على التفاعل مع المحتوى داخل مربّع الحوار أو النافذة المنبثقة.
لن يؤثّر هذا التغيير فيك إلا إذا كنت بصدد إنشاء تنفيذ مخصّص لمربّع حوار أو نافذة منبثقة مع ضبط مستوى الارتفاع على أكثر من 8 وحدات بكسل مستقلة الكثافة. ننصحك بخفض مستوى ارتفاع مربّع الحوار أو النافذة المنبثقة. إذا كنت بحاجة إلى إيقاف هذا السلوك الجديد، يمكنك إنشاء مربّع حوار أو نافذة منبثقة خاصة بك مع ضبط مستوى الارتفاع المطلوب. لا ننصح بذلك، لأنّ ذلك قد يؤثّر سلبًا في إمكانية الوصول، ويقع على المطوّر مسؤولية ضمان إمكانية التفاعل مع الجزء السفلي من مربّع الحوار أو النافذة المنبثقة وأن يكون قابلاً للقراءة من خلال خدمات تسهيل الاستخدام.
الإصدار 1.3.0-alpha03
10 أغسطس 2022
تم طرح androidx.compose.material:material-*:1.3.0-alpha03. يتضمّن الإصدار 1.3.0-alpha03 هذه التعديلات.
الإصدار 1.3.0-alpha02
27 يوليو 2022
تم طرح androidx.compose.material:material-*:1.3.0-alpha02. يتضمّن الإصدار 1.3.0-alpha02 هذه التعديلات.
المساهمة الخارجية
- حلّ مشكلة
AnimatedVisibilityفيFloatingActionButtonفي Scaffold (I3a0ae، b/224005027)
الإصدار 1.3.0-alpha01
29 يونيو 2022
تم طرح androidx.compose.material:material-*:1.3.0-alpha01. يتضمّن الإصدار 1.3.0-alpha01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تغيير اسم المَعلمة من "القيم" إلى "القيمة" في
RangeSlider(I3b79a)
إصلاح الأخطاء
- تعديل عيّنة الشارة لتقديم وصف أكثر فائدة للمحتوى (I10b9d)
الإصدار 1.2
الإصدار 1.2.1
10 أغسطس 2022
تم طرح androidx.compose.material:material-*:1.2.1. يتضمّن الإصدار 1.2.1 هذه التعديلات.
الإصدار 1.2.0
27 يوليو 2022
تم طرح androidx.compose.material:material-*:1.2.0. يتضمّن الإصدار 1.2.0 هذه التعديلات.
الإصدار 1.2.0-rc03
29 يونيو 2022
تم طرح androidx.compose.material:material-*:1.2.0-rc03. يتضمّن الإصدار 1.2.0-rc03 هذه التعديلات.
- لم يتم إجراء أي تغييرات منذ الإصدار 1.2.0-rc02.
الإصدار 1.2.0-rc02
22 يونيو 2022
تم طرح androidx.compose.material:material-*:1.2.0-rc02. يتضمّن الإصدار 1.2.0-rc02 هذه التعديلات.
الإصدار 1.2.0-rc01
15 يونيو 2022
تم طرح androidx.compose.material:material-*:1.2.0-rc01. يتضمّن الإصدار 1.2.0-rc01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- يتم الآن إنشاء الواجهات في مكتبات Compose باستخدام طرق الواجهة التلقائية في الإصدار 8 من حزمة تطوير البرامج (JDK) (I5bcf1).
إصلاح الأخطاء
- تعديل الشارة باستخدام علامة تبويب الرمز الرئيسي لتثبيت الشارة على التصنيف بدلاً من الرمز (I90993)
الإصدار 1.2.0-beta03
1 يونيو 2022
تم طرح androidx.compose.material:material-*:1.2.0-beta03. يتضمّن الإصدار 1.2.0-beta03 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح الخطأ الذي كان يتسبّب في ظهور
BottomSheetScaffoldفوق ظل شريط التطبيق العلوي. تراعيBottomSheetScaffoldالآن أيضًا حالة ورقة البيانات عند وضع أشرطة المعلومات: في الحالة المصغّرة، يتم وضع أشرطة المعلومات فوق ورقة البيانات وزر الإجراء العائم، وفي الحالة الموسّعة، يتم ربط أشرطة المعلومات بأسفل ورقة البيانات. (Ia80b5، b/187771422)
الإصدار 1.2.0-beta02
18 مايو 2022
تم طرح androidx.compose.material:material-*:1.2.0-beta02. يتضمّن الإصدار 1.2.0-beta02 هذه التعديلات.
الإصدار 1.2.0-beta01
11 مايو 2022
تم طرح androidx.compose.material:material-*:1.2.0-beta01. يتضمّن الإصدار 1.2.0-beta01 هذه التعديلات.
الميزات الجديدة
- هذا هو الإصدار التجريبي الأول من الإصدار 1.2.
تغييرات واجهة برمجة التطبيقات
- تمت إعادة تسمية الدالة القابلة للإنشاء
TextFieldDefaults.BorderStrokeالتي ترسم ضربة حدودية فيOutlinedTextFieldإلىTextFieldDefaults.BorderBox. (I5f295)
الإصدار 1.2.0-alpha08
20 أبريل 2022
تم طرح androidx.compose.material:material-*:1.2.0-alpha08. يتضمّن الإصدار 1.2.0-alpha08 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم إيقاف ميزة الاستهلاك الجزئي (النزول أو الموضع) نهائيًا في
PointerInputChange. يمكنك استخدامconsume()لاستهلاك التغيير بالكامل. يمكنك استخدامisConsumedلتحديد ما إذا كان مستخدم آخر قد استهلك التغيير من قبل أم لا. - تنشئ الدالة
PointerInputChange::copy()الآن نسخة سطحية دائمًا. وهذا يعني أنّه سيتم استهلاك نُسخPointerInputChangeبعد استهلاك إحدى النُسخ. إذا أردت إنشاءPointerInputChangeغير مرتبط، استخدِم الدالة الإنشائية بدلاً من ذلك. (Ie6be4، b/225669674)
الإصدار 1.2.0-alpha07
6 أبريل 2022
تم طرح androidx.compose.material:material-*:1.2.0-alpha07. يتضمّن الإصدار 1.2.0-alpha07 هذه التعديلات.
الإصدار 1.2.0-alpha06
23 مارس 2022
تم طرح androidx.compose.material:material-*:1.2.0-alpha06. يتضمّن الإصدار 1.2.0-alpha06 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تعديلات على واجهة برمجة التطبيقات Card API القابلة للنقر لتتضمّن التغييرات في Surface API (I56bcb)
- تعديلات على واجهة برمجة التطبيقات Surface في Material 2 تضيف وظائف إضافية محمّلة بشكل زائد لمساحات العرض القابلة للتحديد والتبديل. (Ifcca5)
الإصدار 1.2.0-alpha05
9 مارس 2022
تم طرح androidx.compose.material:material-*:1.2.0-alpha05. يتضمّن الإصدار 1.2.0-alpha05 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- أصبح الإصداران
LazyVerticalGridوLazyHorizontalGridثابتَين الآن. (I307c0) - تم نقل
LazyVerticalGrid/LazyHorizontalGridوجميع واجهات برمجة التطبيقات ذات الصلة إلى الحزمة الفرعية .grid. يُرجى تعديل عمليات الاستيراد من androidx.compose.foundation.lazy إلى androidx.compose.foundation.lazy.grid. (I2d446، b/219942574) - تمت إعادة التغيير السابق الذي كان يعتمد فقط على View في
WindowInsetsControllerCompat، وأصبح مطلوبًا مرة أخرى توفُّر Window، وهو مطلوب لإدارة بعض علامات Window. تم إيقافViewCompat.getWindowInsetsControllerنهائيًا واستبداله بـWindowCompat.getInsetsControllerللتأكّد من استخدام Window الصحيح (على سبيل المثال، إذا كان View في مربّع حوار). (I660ae، b/219572936) - تم الآن إيقاف ميزة "النص:"
includeFontPaddingتلقائيًا. تم حلّ مشاكل الاقتصاص الناتجة عنincludeFontPadding=false، ولن يحدث أي اقتصاص للنصوص البرمجية الطويلة. (I31c84، b/171394808) - تمت إضافة واجهة برمجة تطبيقات جديدة
LazyVerticalGridلتحديد أحجام المحاور المتقاطعة (I17723)
الإصدار 1.2.0-alpha04
23 فبراير 2022
تم طرح androidx.compose.material:material-*:1.2.0-alpha04. يتضمّن الإصدار 1.2.0-alpha04 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
Add support for filter chips(I39a6e، b/192585545)- تمت إضافة
TextFieldDecorationBoxوOutlinedTextFieldDecorationBox. سيساعدك استخدامها معBasicTextFieldفي إنشاء حقل نص مخصّص استنادًا إلى حقول نص Material Design، ولكن مع المزيد من خيارات التخصيص. - تم توفير طريقة لضبط المسافات العمودية والأفقية في الحقول النصية. (I8c9f1 وb/203764564 وb/191543915 وb/189971673 وb/183136600 وb/179882597 وb/168003617)
تمت إضافة
ComposableTargetوComposableTargetMarkerوComposableOpenTargetالتي تتيح إعداد تقارير في وقت الترجمة عن الحالات التي يتم فيها استدعاء دالة قابلة للإنشاء تستهدف أداة تطبيق لم يتم تصميمها لاستخدامها.في معظم الحالات، يمكن استنتاج التعليقات التوضيحية من خلال المكوّن الإضافي لمترجم Compose، لذا من النادر استخدام هذه التعليقات التوضيحية مباشرةً . تشمل الحالات التي لا يمكن استنتاجها إنشاء واستخدام أداة تطبيق مخصّصة، أو دوال قابلة للإنشاء مجرّدة (مثل طرق الواجهة)، أو حقول أو متغيرات عامة تكون تعبيرات لامدا قابلة للإنشاء (يتم استنتاج المتغيرات والمعلَمات المحلية)، أو عند استخدام
ComposeNodeأو دوال قابلة للإنشاء ذات صلة.بالنسبة إلى أدوات التطبيق المخصّصة، يجب إضافة التعليق التوضيحي
CompoableTargetإلى الدوال القابلة للإنشاء التي تستدعيComposeNodeأوReusableComposeNode، وإلى أي أنواع مَعلمات 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 هذه التعديلات.
إصلاح الأخطاء
- نموذج مجموعة الشرائح المضافة (I97080، b/192585545)
الإصدار 1.2.0-alpha02
26 يناير 2022
تم طرح androidx.compose.material:material-*:1.2.0-alpha02. يتضمّن الإصدار 1.2.0-alpha02 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة
NonRestartableComposableإلى الطرق التي تم تحميلها بشكل زائد من الطرق الحالية بدون منطق معقّد. يقلّل ذلك من عمليات التحقّق من التخزين المؤقت التي ينشئها المترجم البرمجي (equals) لجميع المَعلمات التي تتكرّر في الدالة الداخلية التي يتم استدعاؤها. (I90490) - إضافة دعم لشريحة الإجراء (I07100، b/192585545)
الإصدار 1.2.0-alpha01
12 يناير 2022
تم طرح androidx.compose.material:material-*:1.2.0-alpha01. يتضمّن الإصدار 1.2.0-alpha01 هذه التعديلات.
تحديثات الاعتماديات
- يعتمد الآن على Kotlin
1.6.10.
المساهمة الخارجية
- أصبح لدى "
ModalBottomSheetState" الآن علمisSkipHalfExpanded. يمكن ضبطها من خلال طريقة وضع التصميم أو تعديلها لاحقًا من خلال ضبط السمةisSkipHalfExpandedالخاصة بـModalBottomSheetStateعلىtrue. يؤدي تعديل قيمةisSkipHalfExpandedإلى إعادة إنشاء الورقة. (I18b86، b/186669820)
الإصدار 1.1
الإصدار 1.1.1
23 فبراير 2022
تم طرح androidx.compose.material:material-*:1.1.1. يتضمّن الإصدار 1.1.1 هذه التعديلات.
إصلاح الأخطاء
- حلّ المشكلة في
NullPointerExceptionعلىandroidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(aosp/1947059 وb/206677462) - تم إصلاح عُطل ناتج عن محتوى الحافظة أثناء القراءة منها على جهاز Android. (I06020، b/197769306)
- إصلاح مشكلة عرض النصوص من اليمين إلى اليسار في
LazyVerticalGrid(aosp/1931080 وb/207510535)
الإصدار 1.1.0
9 فبراير 2022
تم طرح androidx.compose.material:material-*:1.1.0. يتضمّن الإصدار 1.1.0 هذه التعديلات.
التغييرات المهمة منذ الإصدار 1.0.0
- إتاحة تأثير التمرير السريع في Android 12 بشكل ثابت
- تحسينات على حجم عناصر اللمس المستهدَفة
- يُرجى العِلم أنّه في ما يتعلّق بالإصدار 1.0 من Compose، ستوسّع مكوّنات Material مساحة التنسيق لتلبية إرشادات تسهيل الاستخدام في Material بشأن حجم مساحة اللمس. على سبيل المثال، سيتم توسيع مساحة اللمس الخاصة بالزر إلى حدّ أدنى يبلغ 48x48dp، حتى إذا ضبطت حجم الزر على قيمة أصغر. يتوافق ذلك مع سلوك "مكوّنات Material Design" نفسه، ما يوفّر سلوكًا متسقًا في حال استخدام كلّ من "طرق العرض" وCompose. يضمن هذا التغيير أيضًا استيفاء الحد الأدنى من متطلبات إمكانية الوصول إلى مساحة اللمس عند إنشاء واجهة المستخدم باستخدام مكوّنات Compose Material.
- إصدار ثابت من شريط التنقّل
- ترقية عدد من واجهات برمجة التطبيقات التجريبية السابقة إلى إصدار ثابت
- التوافق مع الإصدارات الأحدث من Kotlin
الإصدار 1.1.0-rc03
26 يناير 2022
تم طرح androidx.compose.material:material-*:1.1.0-rc03. يتضمّن الإصدار 1.1.0-rc03 هذه التعديلات.
التغييرات في السلوك
يُرجى العِلم أنّه في ما يتعلّق بالإصدار 1.0 من Compose، ستوسّع مكوّنات Material مساحة التنسيق لتلبية حجم إرشادات تسهيل الاستخدام لمساحة اللمس في Material. على سبيل المثال، سيتم توسيع مساحة اللمس الخاصة بالزر إلى حدّ أدنى يبلغ 48x48dp، حتى إذا ضبطت حجم الزر على قيمة أصغر. يتوافق ذلك مع سلوك "مكوّنات Material Design" نفسه، ما يوفّر سلوكًا متسقًا في حال استخدام كلّ من "طرق العرض" وCompose. يضمن هذا التغيير أيضًا استيفاء الحد الأدنى من متطلبات إمكانية الوصول إلى مساحة اللمس عند إنشاء واجهة المستخدم باستخدام مكوّنات Compose Material.
إصلاح الأخطاء
- تمت إضافة بعض المعلومات الأفضل لتصحيح الأخطاء في "أداة فحص التصميم" عند فحص أدوات تعديل الحد الأدنى لهدف اللمس. (aosp/1955036)
الإصدار 1.1.0-rc01
15 كانون الأول (ديسمبر) 2021
تم طرح androidx.compose.material:material-*:1.1.0-rc01. يتضمّن الإصدار 1.1.0-rc01 هذه التعديلات.
إصلاح الأخطاء
- إصلاح نصف قطر الزاوية الذي يتم تطبيقه على
Checkboxes (I38b03، b/175198975، b/202309440)
الإصدار 1.1.0-beta04
1 كانون الأول (ديسمبر) 2021
تم طرح androidx.compose.material:material-*:1.1.0-beta04. يتضمّن الإصدار 1.1.0-beta04 هذه التعديلات.
الميزات الجديدة
- تم تعديلها لتكون متوافقة مع Kotlin
1.6.0
الإصدار 1.1.0-beta03
17 نوفمبر 2021
تم طرح androidx.compose.material:material-*:1.1.0-beta03. يتضمّن الإصدار 1.1.0-beta03 هذه التعديلات.
الإصدار 1.1.0-beta02
3 نوفمبر 2021
تم طرح androidx.compose.material:material-*:1.1.0-beta02. يتضمّن الإصدار 1.1.0-beta02 هذه التعديلات.
إصلاح الأخطاء
- لن يتم الآن تأخير التموجات والمؤشرات الأخرى إلا إذا كانت داخل حاوية Modifier.scrollable()، بدلاً من تأخيرها دائمًا عند وقوع حدث down. (Ibefe0، b/203141462)
الإصدار 1.1.0-beta01
27 أكتوبر 2021
تم طرح androidx.compose.material:material-*:1.1.0-beta01. يتضمّن الإصدار 1.1.0-beta01 هذه التعديلات.
الميزات الجديدة
- تتيح الآن تأثيرات التموجات حالات التمرير والتركيز، لذا سيؤدي التمرير أو التركيز على أحد المكوّنات، مثل الزر، إلى عرض التراكب الصحيح للحالة.
الإصدار 1.1.0-alpha06
13 أكتوبر 2021
تم طرح androidx.compose.material:material-*:1.1.0-alpha06. يتضمّن الإصدار 1.1.0-alpha06 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة حمل زائد بدون عنصر فرعي إلى Layout، مع تحسين الكفاءة (Ib0d9a)
- تنفيذ
ExposedDropdownMenuاستنادًا إلىExposedDropdownMenuBoxمع تضمينTextFieldوDropdownMenu(If60b2) - تمت إضافة
dismissOnOutsideClickإلىPopupProperties، ما أدى إلى استبدالdismissOnClickOutsideالذي تم إيقافه نهائيًا. يتلقّى الموقع الجديد موضع النقرة وحدود العنصر الثابت، ما يتيح تحكّمًا أفضل في ما إذا كان يجب استدعاء onDismissRequest أم لا. على سبيل المثال، يمكن أن يكون ذلك مفيدًا لمنع إغلاق المرساة عند النقر عليها.- تمت إضافة
updateAndroidWindowManagerFlagsإلىPopupProperties، ما يتيح التحكّم على مستوى منخفض في العلامات التي يمرّرها العنصر المنبثق إلى WindowManager في Android. ستكون مَعلمة دالة lambda هي العلامات المحسوبة من قيم PopupProperties التي تؤدي إلى علامات WindowManager، مثل focusable. ستكون نتيجة الدالة lambda هي العلامات النهائية التي سيتم تمريرها إلى WindowManager في Android. سيؤدي استدعاء updateAndroidWindowManagerFlags تلقائيًا إلى ترك العلامات المحسوبة من المَعلمات بدون تغيير. يجب استخدام واجهة برمجة التطبيقات هذه بحذر، وفقط في الحالات التي يتطلّب فيها النافذة المنبثقة سلوكًا محدّدًا جدًا. (I6e9f9)
- تمت إضافة
الإصدار 1.1.0-alpha05
29 سبتمبر 2021
تم طرح androidx.compose.material:material-*:1.1.0-alpha05. يتضمّن الإصدار 1.1.0-alpha05 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تضيف هذه السمة الحدّ الأدنى لحجم مساحة اللمس لمكوّنات Material التي لا تتضمّن مساحة لمس يمكن الوصول إليها. بما أنّ ذلك يضيف مساحة إضافية حول المكوّنات للتأكّد من أنّ لديها مساحة لمس كبيرة بما يكفي، قد يؤدي ذلك إلى تغيير واجهات المستخدم الحالية التي تفترض أنّ حجم هذه المكوّنات هو حجمها المرئي، ولا يأخذ في الاعتبار حجم مساحة اللمس. يمكنك استخدام
LocalMinimumTouchTargetEnforcementcomposition local التجريبي لإيقاف هذا السلوك في جميع أنحاء التدرّج الهرمي، ولكنّ هذا الإجراء يهدف إلى توفير حلّ مؤقت فقط أثناء تعديل واجهات المستخدم الحالية لتتضمّن الحد الأدنى الجديد للحجم. (I9b966، b/149691127، b/171509422) - تمت إضافة واجهة TextFieldColorsWithIcons التجريبية التي توسّع نطاق TextFieldColors لتوفير InteractionSource إلى leadingColor وtrailingColor. يتيح ذلك تعديل مظهر TextField وفقًا لحالة التركيز. (I66923، b/198402662)
الإصدار 1.1.0-alpha04
15 سبتمبر 2021
تم طرح androidx.compose.material:material-*:1.1.0-alpha04. يتضمّن الإصدار 1.1.0-alpha04 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم إيقاف
performGestureوGestureScopeنهائيًا، وتم استبدالهما بـperformTouchInputوTouchInjectionScope. (Ia5f3f، b/190493367) - تمت إضافة
touchBoundsInRootإلىSemanticsNodeالتي تتضمّن الحدّ الأدنى لحجم مساحة اللمس، وذلك ليتأكّد المطوّرون من أنّ مساحات اللمس تستوفي الحدّ الأدنى من متطلبات تسهيل الاستخدام. (I2e14b، b/197751214)
إصلاح الأخطاء
- تسمح هذه السمة بتوسيع حدود مساحة اللمس المستهدفة إلى ما بعد منطقة القص لأغراض الحد الأدنى لمساحة اللمس المستهدفة. (I43e10، b/171509422)
- تم تعديل العنصر القابل للإنشاء
Dividerليتوافق معDp.Hairlineفي ما يتعلق بمعلمة السُمك، وذلك لإتاحة رسم فواصل أحادية البكسل بغض النظر عن كثافة الشاشة. (I16ffb، b/196840810)
الإصدار 1.1.0-alpha03
1 سبتمبر 2021
تم طرح androidx.compose.material:material-*:1.1.0-alpha03. يتضمّن الإصدار 1.1.0-alpha03 هذه التعديلات.
الميزات الجديدة
- تم تعديل الإصدار
1.1.0-alpha03من Compose ليعتمد على الإصدار1.5.30من Kotlin. (I74545)
تغييرات واجهة برمجة التطبيقات
- تمت إضافة طريقة اختبار للحصول على الحدود المقتصة. (I6b28e)
- تمت إضافة الحد الأدنى لحجم مساحة اللمس إلى ViewConfiguration لاستخدامه في الدلالات وإدخال المؤشر لضمان إمكانية الوصول. (Ie861c)
الإصدار 1.1.0-alpha02
18 أغسطس 2021
تم طرح androidx.compose.material:material-*:1.1.0-alpha02. يتضمّن الإصدار 1.1.0-alpha02 هذه التعديلات.
المساهمة الخارجية
- إصلاح سلوك SwipeableState في حال كان إزاحة التمرير السريع ضمن خطأ تقريب للمرساة (I03d39، b/191993377)
الإصدار 1.1.0-alpha01
4 أغسطس 2021
تم طرح androidx.compose.material:material-*:1.1.0-alpha01. يتضمّن الإصدار 1.1.0-alpha01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم تعديل الطريقة
DrawScope#drawImageالتي تستهلك مستطيلات المصدر والوجهة لاستهلاك مَعلمة FilterQuality اختيارية. ويفيد ذلك في إنشاء صور فن البكسل التي يُراد أن تكون منقطة عند تكبيرها. تم تعديل BitmapPainter وImage composable ليستخدما أيضًا مَعلمة FilterQuality اختيارية (Ie4fb0، b/180311607) - تمت إعادة تسمية BadgeBox إلى BadgedBox، وتم تغيير المَعلمات لقبول الدالة البرمجية القابلة للإنشاء Badge. تمت إضافة مكوّن Badge الذي يمثّل محتوى الشارة المعتاد في BadgedBox. (I639c6)
- تمت إضافة مكوِّن NavigationRail، راجِع المستندات والنماذج للحصول على معلومات حول الاستخدام (I8de77)
إصلاح الأخطاء
- تمت إضافة عيّنة NavigationRail محاذية للأسفل وعرض توضيحي لتطبيق Catalog. (I3cffc)
- تتّبع مربّعات الحوار الآن سلوك تحديد الحجم الخاص بالمنصّة. اضبط usePlatformDefaultWidth على false لتجاوز هذا السلوك. (Iffaed، b/192682388)
- تمت إضافة العرض التوضيحي لشريط التنقّل إلى تطبيق الكتالوج. (I04960)
- تمت إضافة عرض توضيحي للشارة إلى تطبيق الكتالوج. (If285d)
الإصدار 1.0
الإصدار 1.0.5
3 نوفمبر 2021
تم طرح androidx.compose.material:material-*:1.0.5. يتضمّن الإصدار 1.0.5 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة تعطُّل تتبُّع مثيلات derivedStateOf. (aosp/1792247)
الإصدار 1.0.4
13 أكتوبر 2021
تم طرح androidx.compose.material:material-*:1.0.4. يتضمّن الإصدار 1.0.4 هذه التعديلات.
تحديثات الاعتماديات
- تم تعديلها لتعتمد على Kotlin
1.5.31
الإصدار 1.0.3
29 سبتمبر 2021
تم طرح androidx.compose.material:material-*:1.0.3. يتضمّن الإصدار 1.0.3 هذه التعديلات.
تحديثات الاعتماديات
- تم تعديلها لتعتمد على Kotlin
1.5.30
الإصدار 1.0.2
1 سبتمبر 2021
تم طرح androidx.compose.material:material-*:1.0.2. يتضمّن الإصدار 1.0.2 هذه التعديلات.
تم تعديلها لتتوافق مع إصدار Compose 1.0.2. لا يزال الإصدار 1.0.2 من Compose متوافقًا مع الإصدار 1.5.21 من Kotlin.
الإصدار 1.0.1
4 أغسطس 2021
تم طرح androidx.compose.material:material-*:1.0.1. يتضمّن الإصدار 1.0.1 هذه التعديلات.
تحديثات الاعتماديات
- تم تعديلها لتعتمد على الإصدار
1.5.21من Kotlin.
الإصدار 1.0.0
28 يوليو 2021
تم طرح androidx.compose.material:material-*:1.0.0. يتضمّن الإصدار 1.0.0 هذه التعديلات.
الميزات الرئيسية في الإصدار 1.0.0
هذا هو أول إصدار ثابت من Compose. يُرجى الاطّلاع على مدوّنة إصدار Compose الرسمية لمزيد من التفاصيل.
المشاكل المعروفة
إذا كنت تستخدم الإصدار 4 من Android Studio Bumblebee Canary أو الإصدار
7.1.0-alpha04/7.1.0-alpha05من "مكوّن Android الإضافي في Gradle"، قد يحدث العطل التالي:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"لحلّ هذه المشكلة، عليك زيادة minSdkVersion مؤقتًا إلى 24 أو أكثر في ملف
build.gradle. سيتم حلّ هذه المشكلة في الإصدار التالي من "استوديو Android Bumblebee" والمكوّن الإضافي لنظام Gradle المتوافق مع Android7.1. (b/194289155)
الإصدار 1.0.0-rc02
14 يوليو 2021
تم طرح androidx.compose.material:material-*:1.0.0-rc02. يتضمّن الإصدار 1.0.0-rc02 هذه التعديلات.
إصلاح الأخطاء
- تتّبع مربّعات الحوار الآن سلوك تحديد الحجم الخاص بالمنصّة. اضبط
usePlatformDefaultWidthعلى "خطأ" لتجاوز هذا السلوك. (Iffaed، b/192682388)
الإصدار 1.0.0-rc01
1 تموز (يوليو) 2021
تم طرح androidx.compose.material:material-*:1.0.0-rc01. يتضمّن الإصدار 1.0.0-rc01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة المكوّن
BadgeBox، يمكنك الاطّلاع على المستندات والأمثلة للحصول على معلومات حول الاستخدام (I5e284) - تمت إعادة تسمية
useDefaultMaxWidthفيPopupPropertiesإلىusePlatformDefaultWidth. (I05710) - يمكن الآن استخدام عرض الشاشة بالكامل في مربّعات الحوار. (I83929، b/190810877)
- تمّت إضافة تنفيذ شريط تمرير النطاق التجريبي (I2f4b3)
إصلاح الأخطاء
- للتوافق مع مواصفات Material Design، توقّف OutlinedTextField الذي يتضمّن إدخالاً غير صالح عن استخدام لون الخطأ للتسمية عندما يتم استخدام التسمية كعنصر نائب. يكون هذا الخيار صحيحًا عندما لا يكون هناك نص إدخال في حقل النص ولا يكون حقل النص في وضع التركيز. بعد إجراء هذا التغيير، تغيّر أيضًا معنى المَعلمة
error:Booleanفي الدالةTextFieldColors.labelColor(): ستعرض الآن القيمةfalseحتى عندما تكون القيمة المُدخَلة غير صالحة إذا كان يتم استخدام التصنيف كعنصر نائب. (I45f78)
الإصدار 1.0.0-beta09
16 حزيران (يونيو) 2021
تم طرح androidx.compose.material:material-*:1.0.0-beta09. يتضمّن الإصدار 1.0.0-beta09 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة المَعلمة Shape إلى OutlinedTextField لتتمكّن من تخصيص شكل الحدود (I8f39e، b/181322957)
- تم تغيير TextOverflow إلى فئة مضمّنة. (I433af)
إصلاح الأخطاء
- سيختفي غطاء الشاشة في BottomDrawer وBackdropScaffold وModalBottomSheetLayout، ثم سيتم تمرير Color.Unspecified (I2d899 وb/182063309).
قواعد الملفات الشخصية المُضافة
يضيف هذا الإصدار قواعد الملف الشخصي إلى وحدات الإنشاء التالية (I14ed6):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
ما هي قواعد الملف الشخصي؟
يتم تحديد قواعد الملف الشخصي لمكتبة في ملف نصي
baseline-prof.txtيقع في الدليلsrc/mainأو دليل مكافئ. يحدّد الملف قاعدة واحدة لكل سطر، حيث تكون القاعدة في هذه الحالة عبارة عن نمط للمطابقة مع الطرق أو الفئات في المكتبة. بنية هذه القواعد هي مجموعة فرعية من تنسيق ملف ART الشخصي القابل للقراءة الذي يتم استخدامه عند استخدامadb shell profman --dump-classes-and-methods .... تتّخذ هذه القواعد أحد الشكلَين التاليَين لاستهداف الطرق أو الفئات.ستتّبع قاعدة الطريقة النمط التالي:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>وستتّبع قاعدة الفئة النمط التالي:
<CLASS_DESCRIPTOR>هنا،
<FLAGS>هو واحد أو أكثر من الأحرفHوSوPللإشارة إلى ما إذا كان يجب تصنيف هذه الطريقة على أنّها "مهمة" أو "بدء التشغيل" أو "بعد بدء التشغيل".<CLASS_DESCRIPTOR>هو واصف للفئة التي تنتمي إليها الطريقة المستهدَفة. على سبيل المثال، سيكون للفئةandroidx.compose.runtime.SlotTableواصفLandroidx/compose/runtime/SlotTable;.
<METHOD_SIGNATURE>هي توقيع الطريقة، وتشمل الاسم وأنواع المَعلمات وأنواع القيم التي تعرضها الطريقة. على سبيل المثال، يتضمّن الإجراءfun isPlaced(): BooleanفيLayoutNodeالتوقيعisPlaced()Z.يمكن أن تحتوي هذه الأنماط على أحرف بدل (
**و*و?) لكي تشمل قاعدة واحدة طرقًا أو فئات متعددة.
ما هي وظيفة القواعد؟
تشير الطريقة التي تحمل العلامة
Hإلى أنّ هذه الطريقة هي طريقة "نشطة"، ويجب تجميعها مسبقًا.تشير الطريقة التي تتضمّن العلامة
Sإلى أنّها طريقة يتم استدعاؤها عند بدء التشغيل، ويجب تجميعها مسبقًا لتجنُّب تكلفة التجميع وتفسير الطريقة عند بدء التشغيل.تشير العلامة
Pإلى أنّ الطريقة هي طريقة يتم استدعاؤها بعد بدء التشغيل.يشير أحد الصفوف المتوفّر في هذا الملف إلى أنّه يتم استخدامه أثناء بدء التشغيل ويجب تخصيصه مسبقًا في الذاكرة المؤقتة لتجنُّب تكلفة تحميل الصف.
آلية العمل
- يمكن للمكتبات تحديد هذه القواعد التي سيتم تضمينها في عناصر AAR. عند إنشاء حزمة APK تتضمّن هذه العناصر، يتم دمج هذه القواعد معًا واستخدام القواعد المدمجة لإنشاء ملف ثنائي مضغوط خاص بحزمة APK في ART. يمكن أن يستفيد ART بعد ذلك من هذا الملف عند تثبيت حزمة APK على الأجهزة من أجل تجميع مجموعة فرعية معيّنة من التطبيق مسبقًا لتحسين أداء التطبيق، وخاصةً عند تشغيله للمرة الأولى. يُرجى العِلم أنّ هذا الإجراء لن يؤثر في التطبيقات التي يمكن تصحيح أخطائها.
الإصدار 1.0.0-beta08
2 حزيران (يونيو) 2021
تم طرح androidx.compose.material:material-*:1.0.0-beta08. يتضمّن الإصدار 1.0.0-beta08 هذه التعديلات.
الميزات الجديدة
تغيير في واجهة برمجة التطبيقات يؤدي إلى حدوث خلل في السلوك
- تغيير في السلوك: تستهلك البطاقة الآن النقرات، ما يجعل النقرات المُضافة من خلال
Card(Modifier.clickable)غير فعّالة. يُرجى استخدام الإصدار التجريبي الجديد من البطاقة الذي يقبل onClick. (Ia8744، b/183775620)- تمت إضافة دالة تحميل زائدة جديدة للبطاقة تتعامل مع النقرات بالإضافة إلى وظائف أخرى قابلة للنقر: الإشارة، ومصدر التفاعل، والتفعيل/الإيقاف. لم يكن من الممكن استخدام بطاقة عادية غير قابلة للنقر مع
Modifier.clickableلأنّ البطاقة لن تقصّ مؤشر التموج في هذه الحالات.
- تمت إضافة دالة تحميل زائدة جديدة للبطاقة تتعامل مع النقرات بالإضافة إلى وظائف أخرى قابلة للنقر: الإشارة، ومصدر التفاعل، والتفعيل/الإيقاف. لم يكن من الممكن استخدام بطاقة عادية غير قابلة للنقر مع
- BEHAVIOUR-BREAKING: تستهلك مساحة العرض الآن النقرات، ما يجعل النقرات المُضافة من خلال
Surface(Modifier.clickable)غير فعّالة. يُرجى استخدام الإصدار التجريبي الجديد من مساحة العرض الذي يقبل onClick. (I73e6c، b/183775620)- تمت إضافة دالة تحميل زائد جديدة لـ Surface تتعامل مع النقرات بالإضافة إلى الوظائف الأخرى القابلة للنقر: الإشارة وinteractionSource والتفعيل/الإيقاف. لم يكن من الممكن استخدام Surface عادي غير قابل للنقر مع
Modifier.clickableلأنّ Surface لن يقتطع مؤشر التموج في هذه الحالات.
- تمت إضافة دالة تحميل زائد جديدة لـ Surface تتعامل مع النقرات بالإضافة إلى الوظائف الأخرى القابلة للنقر: الإشارة وinteractionSource والتفعيل/الإيقاف. لم يكن من الممكن استخدام Surface عادي غير قابل للنقر مع
تغييرات واجهة برمجة التطبيقات
- تم تحويل
FabPositionإلى فئة مضمّنة من التعداد لدعم التوسّع المحتمل في المستقبل (I030fb) - تمت إعادة تصميم استخدامات التعداد لتضمين الفئات المضمّنة لتجنُّب المشاكل المتعلّقة بعبارات when الشاملة عند إضافة قيم تعداد جديدة. (I2b5eb)
- إضافة مهلة نقرة إلى العناصر القابلة للنقر أو التبديل لمنع ظهور تأثير التموّج أثناء التمرير أو السحب (Ia2704، b/168524931)
- لم تعُد خصائص ContentDescription وText الدلالية قيمًا فردية، بل أصبحت قوائم. يتيح ذلك دمجها كما هي بدلاً من ربطها. قدّمنا أيضًا واجهات برمجة تطبيقات أفضل للاختبار من أجل الاستفادة من هذه التغييرات (Ica6bf وb/184825850).
- تم إيقاف
Modifier.focusModifier()نهائيًا واستبداله بـModifier.focusTarget()(I6c860) - تم استبدال التعداد
FocusStateبواجهةFocusState(Iccc1a، b/187055290) - تمت إزالة
LocalRippleNativeRenderingبعد أن أصبح تنفيذ التموج المستند إلى العرض ثابتًا (I7fab3، b/188569367)
إصلاح الأخطاء
- تم تغيير
Modifier.onGloballyPositioned()للإبلاغ عن إحداثيات أداة التعديل هذه في سلسلة أدوات التعديل، وليس إحداثيات التصميم بعد تطبيق جميع أدوات التعديل. وهذا يعني أنّ ترتيب المعدِّلات يؤثّر الآن في الإحداثيات التي سيتم تسجيلها. (Ieb67d، b/177926591) - تمت إضافة ملف README إلى قائمة Compose Material الحالية. (If9191)
الإصدار 1.0.0-beta07
18 أيار (مايو) 2021
تم طرح androidx.compose.material:material-*:1.0.0-beta07. يتضمّن الإصدار 1.0.0-beta07 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- لم تعُد بحاجة إلى استخدام طرق الإضافة لتوفير إمكانية الوصول إلى المسار في Navigation Compose. (I22beb، b/172823546)
الإصدار 1.0.0-beta06
5 أيار (مايو) 2021
تم طرح androidx.compose.material:material-*:1.0.0-beta06. يتضمّن الإصدار 1.0.0-beta06 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم نقل Ripple لاستخدام
RippleDrawableداخليًا على أجهزة Android. وهذا يعني أنّ تأثيرات التموّج ستحدث على RenderThread، وبالتالي ستكون سلسة حتى عندما يكون سلسلة UI مثقلة، مثلاً عند التنقّل بين الشاشات. لا يؤدي ذلك إلى تغيير مساحة واجهة برمجة التطبيقات الخاصة بتأثير التموج، ولكن قد تحدث تغييرات في السلوك نتيجةً لهذا التغيير. للمساعدة في عملية نقل البيانات، تمت إضافةLocalRippleNativeRendering. أدخِل القيمةfalseإلى CompositionLocal هذه للرجوع إلى عملية التنفيذ السابقة لتأثير التموّج داخل CompositionLocalProvider. هذه الواجهة مؤقتة وستتم إزالتها في المستقبل، لذا إذا واجهت مشاكل تستدعي استخدامها، يُرجى الإبلاغ عن خطأ. (I902f8 وb/168777351 وb/183019123) - تمت إضافة واجهات برمجة تطبيقات تسهيل الاستخدام CollectionInfo وCollectionItemInfo التي تتيح وضع علامة على المجموعة وعناصرها لخدمات تسهيل الاستخدام (Id54ef، b/180479017)
- تمت إضافة واجهة برمجة تطبيقات تسهيل الاستخدام
errorالتي تتيح وضع علامة على عقدة تحتوي على إدخال غير صالح (I12997، b/180584804، b/182142737)
إصلاح الأخطاء
- تم تعديل عملية تنفيذ هوامش كتالوج Compose Material من: https://github.com/google/accompanist/pull/365. (I25dc3)
- لم يعُد بإمكان العناصر الفرعية في الصف والعمود التي تتضمّن الوزن(fill = false) أن تجعل العنصر الأصل يملأ المساحة الرئيسية المتاحة بالكامل. (Ied94d، b/186012444، b/184355105)
الإصدار 1.0.0-beta05
21 أبريل 2021
تم طرح androidx.compose.material:material-*:1.0.0-beta05. يتضمّن الإصدار 1.0.0-beta05 هذه التعديلات.
إصلاح الأخطاء
- تمت إضافة صور مربّعات المكوّنات وأداة اختيار التصميم وعناوين URL أكثر تحديدًا للقوائم إلى "كتالوج Compose Material" الحالي. (I9b58e)
الإصدار 1.0.0-beta04
7 نيسان (أبريل) 2021
تم طرح androidx.compose.material:material-*:1.0.0-beta04. يتضمّن الإصدار 1.0.0-beta04 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تغيير في واجهة برمجة التطبيقات: لم تعُد الحالة
DrawerStateتتضمّن SwipeableState التجريبية.- تغيير في واجهة برمجة التطبيقات: تم الآن وضع علامة "تجريبي" على
BottomDrawerState، وذلك ليتوافق مع مكوّن BottomDrawer التجريبي الحالي (I81114، b/181656094)
- تغيير في واجهة برمجة التطبيقات: تم الآن وضع علامة "تجريبي" على
- أعِد تسمية
hideSoftwareKeyboardوshowSoftwareKeyboardعلىSoftwareKeyboardControllerإلىhide()وshow()على التوالي.- توفير واجهة CompositionLocal الكاملة لـ LocalSoftwareKeyboardController، ما يسمح بضبطها (مفيد بشكل خاص في الاختبارات) (I579a6)
- تمت إضافة واجهة برمجة التطبيقات LiveRegion التي تسهّل استخدام التطبيق. إذا تم وضع علامة على العقدة كمنطقة مباشرة، ستُرسل خدمات تسهيل الاستخدام تلقائيًا إشعارًا إلى المستخدم بشأن التغييرات التي تم إجراؤها عليها (Idcf6f، b/172590946).
إصلاح الأخطاء
- تمت إضافة تنفيذ كتالوج Compose Material إلى الوحدة الحالية. لا تتوفّر حاليًا: صور مربّعات المكوّنات، وأداة اختيار المظهر (سيتمّ إضافتها في التغييرات اللاحقة). (Ie7a94)
الإصدار 1.0.0-beta03
24 مارس 2021
تم طرح androidx.compose.material:material-*:1.0.0-beta03. يتضمّن الإصدار 1.0.0-beta03 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم إيقاف
DefaultMonotonicFrameClockنهائيًا. سيؤدي الآن استدعاء الدالتَينwithFrameNanosأوRecomposer.runRecomposeAndApplyChangesبدونMonotonicFrameClockإلى عرض الخطأIllegalStateException. (I4eb0d) - تمت إضافة واجهة برمجة تطبيقات جديدة
LeadingIconTabتتيح عرض رمز ونص مضمّن في علامة تبويب. (I23267)
المساهمة الخارجية
- يتم الآن تضمين محتوى فتحة الدرج في [by Jossi Wolf]
BottomDrawer. لا يعرضBottomDrawerالخطأIllegalStateExceptionعندما يكون ارتفاع العنصر الرئيسي غير محدود. سيتم الآن فتح اللوحة السفلية في حالة موسّعة إذا كانت أصغر من% 50 من العنصر الرئيسي. تم تعديل المستندات حولBottomDrawerStateوModalBottomSheetLayoutState. تعرضBottomDrawerState#isOpenالآن القيمة "صحيح" إذا كانت في حالة مفتوحة أو موسّعة. (I87241)
الإصدار 1.0.0-beta02
10 مارس 2021
تم طرح androidx.compose.material:material-*:1.0.0-beta02. يتضمّن الإصدار 1.0.0-beta02 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة واجهة برمجة تطبيقات جديدة
LocalSoftwareKeyboardControllerمحلية للتأليف بدلاً من واجهةSoftwareKeyboardControllerالسابقة في TextField. (I5951e، b/168778053)
إصلاح الأخطاء
- فرض قيود على الاستخدام العام لواجهات برمجة التطبيقات التجريبية (I6aa29، b/174531520)
- تم تغيير المحاذاة الأفقية التلقائية لكل من TopAppBar وBottomAppBar إلى "البداية"، بما يتوافق مع الصف (Ib2dc7)
- تمت إضافة وحدة جديدة وواجهة مستخدم عنصر نائب لكتالوج Compose Material، وهي مضمّنة حاليًا في عروض توضيحية لاختبارات التكامل الحالية. (Idfcb3)
androidx.compose.ui:uiلم يعُد يعتمد على AppCompat أو Fragment. إذا كنت تستخدم ComposeView في تطبيقك، وكنت تستخدم Fragment و/أو AppCompat، تأكَّد من استخدام AppCompat 1.3+ أو Fragment 1.3+، فهذه الإصدارات مطلوبة لضبط مالكي مراحل النشاط والحالة المحفوظة اللازمين لـ ComposeView بشكل صحيح. (I1d6fa، b/161814404)
الإصدار 1.0.0-beta01
24 شباط (فبراير) 2021
تم طرح androidx.compose.material:material-*:1.0.0-beta01. يتضمّن الإصدار 1.0.0-beta01 هذه التعديلات.
هذا هو الإصدار الأول من Compose 1.0.0 Beta.
تغييرات واجهة برمجة التطبيقات
- تمت إعادة تسمية مُعدِّلات الحجم. تمت إعادة تسمية Modifier.width/height/size إلى requiredWidth/requiredHeight/requiredSize. تمت إعادة تسمية Modifier.preferredWidth/preferredHeight/preferredSize إلى width/height/size. (I5b414)
- أصبحت imageResource وvectorResource الآن دالتين إضافيتين في ImageBitmap وImageVector على التوالي، وتم حذف دوال load{Image,Vector,Font}Resource. (I89130)
- لم تعُد المعدّلات الخاصة بتحديد الحجم حسب الخصائص التجريبية. (I15744)
- إزالة تأكيدات dp (I798d2)
- تمت إزالة معاودة الاتصال SoftwareKeyboardController من جميع حقول النص، وسيتم استبدالها بواجهة برمجة تطبيقات جديدة قريبًا. (Iae869، b/168778053)
- أصبحت الآن تعبيرات lambda الخاصة بإجراءات Switch وCheckbox وRadioButton تقبل القيم الخالية. تم تعديل أمثلة مربّع الاختيار في الصف القابل للنقر لاستخدام هذه الميزة. (If601b، b/171819073)
- تم استبدال "
InteractionState" بـ "[Mutable]InteractionSource"- تكون الواجهات مسؤولة عن إصدار أحداث التفاعل وجمعها.
- بدلاً من تمرير
interactionState = remember { InteractionState() }إلى مكوّنات مثلButtonوModifier.clickable()، استخدِمinteractionSource = remember { MutableInteractionSource() }. - بدلاً من:
Interaction.Pressed in interactionState، يجب استخدام دوال الإضافة في InteractionSource، مثل InteractionSource.collectIsPressedAsState(). - بالنسبة إلى حالات الاستخدام المعقّدة، يمكنك استخدام InteractionSource.interactions لمراقبة سلسلة التفاعلات. اطّلِع على مستندات InteractionSource وأمثلتها للحصول على مزيد من المعلومات.
- (I85965، b/152525426، b/171913923، b/171710801، b/174852378)
- إضافة واجهة AccessibilityMananger وLocalAccessibilityMananger في CompositionLocals (I53520)
- تمت إزالة طرق LayoutCoordinates المتوقّفة نهائيًا، واستخدام الدالة بدلاً من السمة لكل من positionInParent وboundsInParent (I580ed وb/169874631 وb/175142755)
- يتيح شريط التمرير الآن حالة التفعيل/الإيقاف (I6d56b، b/179793072)
- تم إنشاء TextInputSession جديد لجلسات الإدخال من مكوّنات النص ذات المستوى المنخفض، مثل CoreTextField. (I8817f، b/177662148)
- تمت إزالة AnimationEndReason.Interrupted. سيتم طرح CancellationException إذا تمت مقاطعة الحركة. (I2cbbc، b/179695417)
- تمت إزالة
@ExperimentalRippleApiوتغييرRippleAlphaليصبح فئة تتضمّن سمات بدلاً من واجهة. (I6df7c) - تمت إضافة واجهة TextFieldColors لتمثيل الألوان المختلفة المستخدَمة في TextField وOutlinedTextField في حالات مختلفة. للاطّلاع على التنفيذ التلقائي، راجِع TextFieldDefaults.textFieldColors وTextFieldDefaults.outlinedTextFieldColors.
- تمت إعادة تسمية المَعلمة isErrorValue داخل TextField وOutlinedTextField إلى isError. (I831f9، b/171305338، b/168004067)
- إضافة معدِّل selectionGroup الذي يتيح وضع علامة على مجموعة من علامات التبويب أو أزرار الاختيار لأغراض تسهيل الاستخدام (Ie5c29)
إضافة LazyListState.animateScrollToItem
تؤدي هذه الطريقة إلى التمرير بسلاسة إلى عنصر معيّن في القائمة. (I4bfd7)
تمت إعادة تسمية "
ScrollableState.smoothScrollBy()" إلى "animateScrollBy()" تمت إعادة تسمية "LazyListState.snapToItemIndex()" إلى "scrollToItem()" تمت إعادة تسمية "ScrollState.smoothScrollTo()" إلى "animateScrollTo()" (I35ded)يتم الآن التحقّق من صحة أي عناصر قابلة للإنشاء تم وضع العلامة
@ReadOnlyComposableعليها في وقت الترجمة البرمجية لضمان أنّها لا تجري سوى عمليات استدعاء لعناصر أخرى تحمل العلامة@ReadOnlyComposables(I58961).تمت إزالة واجهة برمجة التطبيقات TargetAnimation. (If47d1، b/177457083)
يتم الآن تمثيل موضع التمرير في Modifier.verticalScroll()/horizontalScroll() باستخدام أعداد صحيحة (I81298)
تم تغيير حِزم طريقتَي smoothScrollBy وscrollBy إلى
androidx.compose.foundation.gestures.*(I3f7c1، b/175294473)تمت إعادة تسمية FlingConfig إلى FlingBehavior، وتتيح الآن تخصيص الصورة المتحركة الخاصة بالتعليق بدلاً من عمليات التلاشي المحدّدة مسبقًا. (I02b86، b/175294473)
تمت إعادة تسمية مُعدِّلات الحجم. تمت إعادة تسمية Modifier.width/height/size إلى requiredWidth/requiredHeight/requiredSize. تمت إعادة تسمية Modifier.preferredWidth/preferredHeight/preferredSize إلى width/height/size. (I5b414)
تمت إعادة تسمية defaultMinSizeConstraints إلى defaultMinSize. (I4eaae)
تم نقل الاتجاه إلى حزمة الأساس. تم نقل VelocirtTracker من ui.gesture إلى ui.input.pointer. (Iff4a8، b/175294473)
أصبحت drawerState.open() وdrawerState.close() الآن دوال معلّقة. استخدِم rememberCoroutineScope() للحصول على نطاق التكوين من أجل استدعائها (I16f60 وb/175294473).
تمت إعادة تسمية Providers إلى CompositionLocalProvider
- لم يعُد منشئ Composition يقبل مَعلمة مفتاح، وتم إيقافه نهائيًا.
- تم تحويل currentCompositeKeyHash إلى سمة قابلة للإنشاء على المستوى الأعلى بدلاً من دالة قابلة للإنشاء على المستوى الأعلى.
- تم نقل CompositionData وCompositionGroup إلى مساحة الاسم androidx.compose.runtime.tooling
- تم تحويل ComposableLambda إلى واجهة بدلاً من فئة ملموسة، ولم يعُد يتضمّن مَعلمات أنواع.
- تم تحويل ComposableLambdaN إلى واجهة بدلاً من فئة مجرّدة، ولم يعُد يتضمّن مَعلمات النوع.
- تم نقل الدالة snapshotFlow إلى مساحة الاسم androidx.compose.runtime
- لم تعُد طريقة الدمج في SnapshotMutationPolicy تجريبية
- تمت إزالة الدالة
@TestOnlyclearRoots ذات المستوى الأعلى. لم يعُد ذلك ضروريًا. - تمت إزالة الدالتَين keySourceInfoOf وresetSourceInfo. لم تعُد ضرورية.
- تمت إزالة Composer.collectKeySourceInformation. لم يعُد ذلك ضروريًا.
- تمت إزالة الطرق isJoinedKey وjoinedKeyLeft وjoinedKeyRight. لم تعُد ضرورية.
- تم نقل العديد من واجهات برمجة التطبيقات ذات المستوى الأعلى وإعادة تنظيمها في ملفات مختلفة. بسبب دلالات فئة الملف في Kotlin، سيؤدي ذلك إلى إيقاف التوافق الثنائي ولكن ليس التوافق مع المصدر، لذا لن يسبّب مشكلة لمعظم المستخدمين.
- (I99b7d، b/177245490)
تمت إعادة تصميم Modifier.scrollable. يستخدم الآن واجهة Scrollable بدلاً من فئة ScrollableController (I4f5a5 وb/174485541 وb/175294473)
تقبل Modifier.draggable الآن DraggableState بدلاً من تعبير لامدا بسيط. يمكنك إنشاء حالة من خلال
rememberDraggableState { delta -> }للحصول على السلوك نفسه كما كان من قبل (Ica70f، b/175294473)أصبحت الدالتان ZoomableController.smoothScaleBy وZoomableController.stopAnimation دالتين معلّقتين. (I7f970، b/177457083)
تم حذف بعض واجهات برمجة التطبيقات التي تم إيقافها نهائيًا سابقًا (Ice5da وb/178633932)
أجرينا التغييرات التالية على Material API:
- تمت إضافة المَعلمة contentPadding إلى Top/BottomAppBar للسماح بتخصيص المساحة المتروكة التلقائية.
- تمت إعادة ترتيب المَعلمات في BackdropScaffold لتتوافق مع إرشادات واجهة برمجة التطبيقات بشأن المَعلمات المطلوبة التي تسبق المَعلمات الاختيارية.
- تم نقل المَعلمة
iconفي BottomNavigationItem لتصبح بعدselectedوonClick. - تمت إعادة تسمية المَعلمة
alwaysShowLabelsفي BottomNavigationItem إلىalwaysShowLabel. - تمت إعادة تسمية مَعلمات
bodyContentفي بعض المكوّنات إلىcontentفقط. - تمت إعادة ترتيب المَعلمات في
ButtonDefaults.buttonColors(). يُرجى العِلم أنّه بما أنّ نوع المَعلمات لم يتغيّر، لن يتسبّب ذلك في حدوث خطأ في الرمز. يُرجى التأكّد من استخدام مَعلمات مُسمّاة أو تعديل الترتيب يدويًا، وإلا لن يعمل الرمز بالطريقة نفسها كما كان في السابق. - تمت إضافة المَعلمة
secondaryVariantإلىdarkColors(). يكون هذا اللون عادةً هو نفسهsecondaryفي المظهر الداكن، ولكن تتم إضافته لتحقيق التناسق والمزيد من التخصيص. - تمت إزالة ElevationDefaults وanimateElevation() من مساحة واجهة برمجة التطبيقات العامة لأنّهما لم يكونا مستخدَمَين أو مفيدَين بشكل شائع.
- تمت إعادة تسمية
onValueChangeEndفيSliderإلىonValueChangeFinishedوتم السماح بقيمة فارغة. - تمت إعادة تسمية المَعلمة
textفيSnackbarإلىcontentلضمان الاتساق. - تمت إضافة المَعلمة
contentPaddingإلىDropdownMenuItemللسماح بتخصيص المساحة المتروكة التلقائية، وتمّت إضافةcontentكإضافة علىRowScope. - تمت إعادة تسمية
ModalDrawerLayoutإلىModalDrawer. - تمت إعادة تسمية
BottomDrawerLayoutإلىBottomDrawer. - (I1cc66)
تقبل السمة BasicTextField الآن Brush بدلاً من Color لتوفير خيارات تخصيص أفضل (I83a36)
أصبحت imageResource وvectorResource الآن دالتين إضافيتين في ImageBitmap وImageVector على التوالي، وتم حذف دوال load{Image,Vector,Font}Resource. (I89130)
تم تغيير Indication#createIndication() إلى Indication#rememberUpdatedIndication(InteractionState) وإزالة مَعلمة InteractionState من IndicationInstance#drawIndication(). يجب أن يكون IndicationInstance مسؤولاً فقط عن رسم المؤثرات البصرية، وليس عن تشغيل الرسوم المتحركة أو كتابة الحالة استجابةً لتغييرات InteractionState. يجب أن تحدث هذه الصور المتحركة وعمليات الكتابة في الحالة ضمن
rememberUpdatedIndication()بدلاً من ذلك. تم أيضًا تغيير المَعلمةindicationفيModifier.indicationلتصبح مَعلمة مطلوبة. (Ic1764، b/152525426)
إصلاح الأخطاء
- تمت إضافة واجهة برمجة تطبيقات جديدة محلية باسم LocalSoftwareKeyboardController لتحل محل واجهة SoftwareKeyboardController السابقة في TextField. (I658b6، b/168778053)
الإصدار 1.0.0-alpha12
10 شباط (فبراير) 2021
تم طرح androidx.compose.material:material-*:1.0.0-alpha12. يتضمّن الإصدار 1.0.0-alpha12 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- يتطلّب Modifier.pointerInput الآن مفاتيح remember للإشارة إلى الوقت الذي يجب فيه إعادة تشغيل روتين pointer input detection المشترك لإنشاء تبعيات جديدة. (I849cd)
- تم وضع علامة @ExperimentalMaterialApi على BottomDrawerLayout وListItem (Id766e)
- تمت إضافة PaddingValues.Absolute ويمكن استخدامها في واجهات برمجة التطبيقات التي تقبل PaddingValues. (Ia5f30)
- تم إيقاف onImeActionPerformed نهائيًا. استخدِم KeyboardActions بدلاً من ذلك (If0bbd، b/179071523)
- من أجل مطابقة أفضل لاتفاقيات التسمية مع ImageBitmap وImageVector، تم تغيير اسم ImagePainter إلى BitmapPainter ليكون موازيًا لـ VectorPainter. (Iba381، b/174565889)
- أصبحت الدالتان Animatable.snapTo وAnimatable.stop دوال تعليق (If4288)
- تم نقل ComponentActivity.setContent إلى androidx.activity.compose.setContent في الحزمة androidx.activity:activity-compose. (Icf416)
- تمت إزالة طريقتَي تفكيك البنية وcopy() من عدة فئات كانتا تُستخدمان فيها نادرًا. (I26702، b/178659281)
- جعل halfExpand() وexpand() في ModalBottomSheetState داخليًا (Ic914e)
- تم تغيير Indication#createInstance ليصبح @Composable، وتم تغيير LocalIndication ليحتوي على Indication، وليس () -> Indication. (I5eeea، b/157150564)
- تم نقل AlertDialog وDropdownMenu ليكون متاحًا على Android فقط في الوقت الحالي. تمت إضافة المَعلمة PopupProperties إلى DropdownMenu لإجراء المزيد من الإعدادات للنافذة المنبثقة الأساسية. (I9c443)
- تم إيقاف loadFontResource نهائيًا. يجب استخدام fontResource بدلاً من ذلك. تم إيقاف imageResource وloadImageResource وvectorResource وloadVectorResource نهائيًا. استخدِم painterResource بدلاً من ذلك. (I6b809)
- تمت إزالة المَعلمتَين
toggleوtoggleModifierمن DropdownMenu، وتمت إعادة تسميةdropdownModifierوdropdownOffsetوdropdownContentإلىmodifierوoffsetوcontentعلى التوالي. تعمل السمة DropdownMenu الآن بشكل متّسق معPopup، حيث يتم استخدام التنسيق الرئيسي لتحديد موضع القائمة. في معظم الحالات، يمكنك نقلtoggleليكون عنصرًا شقيقًا للعنصرDropdownMenuوتضمين كليهما في العنصرBox. يمكنك الاطّلاع على النموذج المعدَّل في المستندات للحصول على مزيد من المعلومات حول استخدام واجهة برمجة التطبيقات هذه. (I884fb) - تمت إعادة تسمية toIntPx() إلى roundToPx(). (I9b7e4، b/173502290)
- تمت إعادة تسمية IntBounds إلى IntRect، وتم تحسين واجهة برمجة التطبيقات. (I1f6ff)
- تمت إضافة إجراءات دلالية للتوسيع والتصغير. إضافة expand وhalfExpand في ModalBottomSheetState (Ib5064)
- تم إيقاف Modifier.dragGestureFilter نهائيًا. يمكنك استخدام
Modifier.pointerInput { detectDragGestures (...)}كبديل. بدلاً من ذلك، استخدِم Modifier.draggable لعمليات السحب على محور واحد (I0ba93، b/175294473). - تمت إعادة تسمية Ambients لتتطابق مع إعادة تسمية Ambient -> CompositionLocal. كانت أسماء Ambients في السابق AmbientFoo، وأصبحت أسماء CompositionLocals الآن LocalFoo. (I2d55d)
- تم نقل التحديد إلى الأساس. (I7892b)
- على غرار الطريقة التي أزلنا بها سابقًا الدالة البرمجية القابلة للإنشاء
state { 0 }ونشجّع الآن على استخدام دوال مثلremember { mutableStateOf(0) }، سنزيل الدالة البرمجية القابلة للإنشاءsavedInstanceState { 0 }. يجب استخدامrememberSaveable { mutableStateOf(0) }بدلاً من ذلك، وسيتم الحفظ والاستعادة تلقائيًا إذا كان يمكن تخزين النوع المستخدَم داخل MutableState في الحزمة. إذا كنت قد مرّرت سابقًا عنصر حفظ مخصّصًا، عليك الآن استخدام تحميل زائد جديد للدالة rememberSaveable يحتوي على المَعلمةstateSaver. سيكون الاستخدام على النحو التالي:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }(Ib4c26، b/177338004) - تمت إضافة ProgressBarRangeInfo.Indeterminate لوضع علامة على أشرطة التقدم غير المحددة لتسهيل الاستخدام (I6fe05)
تم إيقاف @ComposableContract نهائيًا واستبداله بثلاث تعليقات توضيحية أكثر تحديدًا.
- أصبح
@ComposableContract(restartable = false)@NonRestartableComposable - أصبح
@ComposableContract(readonly = true)@ReadOnlyComposable - أصبح
@ComposableContract(preventCapture = true)@DisallowComposableCalls - تمت إزالة
@ComposableContract(tracked = true). - (I60a9d)
- أصبح
تم إيقاف الأداتَين
emptyContent()و(@Composable () -> Unit).orEmpty()نهائيًا لأنّهما لم يعودا يحقّقان أي تأثير إيجابي في الأداء أو أي قيمة (I0484d).تمت إعادة تسمية rememberSavedInstanceState() إلى rememberSaveable() ونقلها إلى حزمة androidx.compose.runtime.saveable. (I1366e، b/177338004)
تم نقل Saver وlistSaver() وmapSaver() وautoSaver من androidx.compose.runtime.savedinstancestate إلى androidx.compose.runtime.saveable (I77fe6)
تمت إعادة تسمية المَعلمات في RounderCornerShape وCutCornerShape وCornerBasedShape من يسار/يمين إلى بداية/نهاية من أجل إتاحة ميزة الانعكاس التلقائي للشكل في اتجاه الكتابة من اليمين إلى اليسار. تم تقديم AbsoluteRounderCornerShape وAbsoluteCutCornerShape للحالات التي لا يُراد فيها إجراء انعكاس تلقائي. (I61040، b/152756983)
تم تغيير المَعلمتَين
textوiconفي Changed Tab، والمَعلمةlabelفي BottomNavigationItem لتصبح قابلة للقيم الخالية، وذلك لتوضيح سلوك المكوّن بشكل أفضل عند توفير هذه المَعلمات أو عدم توفيرها، لأنّ ذلك يؤثر في حجم المكوّن وتنسيقه. إذا كنت تستخدم حاليًاemptyContent()لتمثيل عدم توفّر نص أو رمز أو تصنيف، عليك استخدامnullبدلاً من ذلك. (I57ed4)تمت إعادة تسمية المَعلمة contentColorFor إلى backgroundColor (I5bb67)
تم إيقاف TabDefaults نهائيًا واستبداله بـ TabRowDefaults. (I0f189)
تم تقديم واجهة برمجة التطبيقات ColorMatrix المستخدَمة لتعديل قيم الأحمر والأخضر والأزرق للمحتوى المصدر تمت إعادة تصميم واجهة برمجة التطبيقات ColorFilter لتصبح واجهة وتتطابق مع تنفيذ PathEffect. (Ica1e8)
تم إيقاف AnimatedValue/Float نهائيًا. يُرجى استخدام Animatable بدلاً من ذلك. (I71345، b/177457083)
إضافة واجهة برمجة التطبيقات SemanticsProperties.PaneTitle (I20d5a)
تمت إضافة مَعلمات مفعَّلة إلى Tab وBottomNavigationItem لمنع النقر عليهما. تم تغيير BottomNavigationItem إلى RowScope.BottomNavigationItem للتعبير بشكل أفضل عن متطلبات التنسيق في واجهة برمجة التطبيقات. (Id683d)
تم إيقاف tapGestureFilter وdoubleTapGestureFilter وlongPressGestureFilter وpressIndicaitonGestureFilter نهائيًا. استخدِم Modifier.clickable أو Modifier.pointerInput مع الدالة detectTapGestures بدلاً من ذلك. (I6baf9، b/175294473)
إضافة المَعلمة layoutDirection إلى createOutline في Shape يتيح ذلك إنشاء أشكال تراعي اتجاه التنسيق. (I57c20، b/152756983)
تمت إزالة
Recomposer.current(). [Abstract]ComposeView now default to lazily created, window-scoped Recomposers driven by the ViewTreeLifecycleOwner for the window. يتم إيقاف إعادة التركيب مؤقتًا، كما يتم إيقاف مؤشرات الصورة المتحركة المستندة إلى withFrameNanos مؤقتًا أثناء إيقاف Lifecycle المضيف. (I38e11)
إصلاح الأخطاء
- سيتم الآن تغيير حجم الرمز ليناسب حجمه، مع مراعاة معدّلات تغيير الحجم المطبّقة عليه. على سبيل المثال، سيتم الآن رسم
Icon(.., modifier = Modifier.size(50.dp)في مساحة 50x50dp. (Ib2ba9، b/178796190)
الإصدار 1.0.0-alpha11
28 يناير 2021
تم طرح androidx.compose.material:material-*:1.0.0-alpha11. يتضمّن الإصدار 1.0.0-alpha11 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت ترقية بعض واجهات برمجة تطبيقات Material لتصبح غير
@Experimental(I5d20e) - تمت إضافة مَعلمة وصف المحتوى إلى "الصورة" و"الرمز". يُستخدَم لتوفير وصف للخدمات المخصّصة لتسهيل الاستخدام (I2ac4c)
- تغيير واجهات مَعلمات Material ذات الحالة إلى دوال @Composable تعرض
State<T>تضيف هذه السمةAnimatable.asState()لتسهيل تحويل عنصر Animatable إلى State. تغيير animateElevation أيضًا ليكون إضافة تعليق على Animatable (If613c) - لم يعُد Snackbar وSnackbarHost وSnackbarHostState
@ExperimentalMaterialAPI(Id1fb5) - تغيير Typography وShapes وTabPosition لكي لا تكون فئات بيانات بعد الآن تضيف هذه الميزة وظيفة النسخ إلى "الكتابة" و"الأشكال" لاستبدال العناصر التي تم إنشاؤها. (I40037)
- تم حذف بعض واجهات برمجة تطبيقات Material التي تم إيقافها نهائيًا سابقًا (Ifaa25)
إصلاح الأخطاء
- تم إيقاف onCommit وonDispose وonActive نهائيًا لصالح واجهتَي برمجة التطبيقات SideEffect وDisposableEffect (If760e)
- تم إيقاف عملية النقل المستندة إلى TransitionDefinition نهائيًا (I0ac57)
- أصبحت الحالة الأولية في updateTransition متاحة الآن (Ifd51d)
- تمت إعادة تصميم WithConstraints ليصبح BoxWithConstraints ونقله إلى foundation.layout. (I9420b، b/173387208)
إيقاف نهائيًا الدالة scrollBy غير المعلقة، وإزالة الدالة scrollTo غير المعلقة
ننصحك الآن باستخدام دوال تعليق للتحكّم في التمرير وانتظار اكتماله. سنوقف نهائيًا و/أو نزيل إصدارات هذه الدوال التي لا تتضمّن تعليقًا مؤقتًا كجزء من عملية الانتقال هذه. (Ie9ced)
إيقاف نهائي للدالة smoothScrollBy غير المعلقة ننصحك الآن باستخدام الدوال المعلقة للتحكّم في التمرير والانتظار إلى أن ينتهي. سنوقف نهائيًا إصدارات هذه الدوال التي لا تتضمّن تعليقًا مؤقتًا كجزء من عملية الانتقال هذه. (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)تم إصلاح خطأ كان يجعل من غير الممكن ضبط عرض حقل النص الخاص بتصميم Material Design على أقل من 280 وحدة بكسل مستقلة الكثافة (I78373).
تمت إزالة المَعلمة canDrag من Modifier.draggable (Ic4bec، b/175294473)
أزِل displaySize لأنّه يجب تجنُّبه. من الأفضل عادةً استخدام حجم onRoot() أو حجم النافذة على الأقل. (I62db4)
يمكن أن يحتوي Surface الآن على عناصر ثانوية متعددة للتنسيق. (I66a92، b/144488459)
تم الآن إيقاف invalidate وcompositionReference() نهائيًا واستبدالهما بـ currentRecomposeScope وrememberCompositionReference على التوالي. (I583a8)
تغيير PopupPositionProvider لاستخدام إحداثيات نسبية إلى النافذة، وليس إحداثيات عامة إعادة تسمية parentGlobalBounds إلى anchorBounds، وتغيير windowGlobalBounds إلى
windowSize: IntSize(I2994a)سيتم استبدال "المدة" و"وقت التشغيل" بـ "ملّي ثانية طويلة"، وتزيل هذه الخطوة التبعية لإدخال المؤشر في تلك الفئات. (Ia33b2، b/175142755، b/177420019)
تمت إزالة AnimatedFloat.fling الذي يقبل FlingConfig. يُرجى استخدام suspend Animatable.animateDecay بدلاً من ذلك. (I4659b، b/177457083)
يمكن الآن إنشاء عناصر قابلة للنقر والتبديل والاختيار خارج التركيب (I0a130 وb/172938345 وb/175294473)
تم تغيير التسهيل إلى واجهة وظيفية (Ib14e5)
تم إيقاف ScrollableColumn/Row نهائيًا. يكون استخدام ScrollableColumn أقل كفاءة مقارنةً بـ LazyColumn عندما يكون لديك محتوى كبير قابل للتمرير، لأنّه باستخدام LazyColumn يمكننا فقط إنشاء/قياس/رسم العناصر المرئية. لمنع المستخدمين من اتّباع طريقة غير فعّالة، قرّرنا إيقاف ScrollableColumn وScrollableRow نهائيًا وتشجيع استخدام LazyColumn وLazyRow بدلاً منهما. سيظل بإمكان المستخدمين اختيار عدم استخدام السلوك الكسول واستخدام المعدِّلات مباشرةً على النحو التالي: Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b، b/170468083)
طريقة المصنع
items(count: Int)الجديدة لنطاق LazyColumn/LazyRow/LazyVerticalGrid أصبحتitems(items: List)وitemsIndexed(items: List)الآن دالتَين إضافيتَين، لذا عليك استيرادهما يدويًا عند استخدامهما. عمليات تحميل زائدة جديدة للإضافات في المصفوفات:items(items: Array)وitemsIndexed(Array)(I803fc، b/175562574)تمت إزالة طرق monotonicFrameAnimationClockOf التجريبية (Ib753f وb/170708374)
تم إيقاف طرق الإحداثيات العامة نهائيًا واستبدالها بطرق إحداثيات جديدة مستندة إلى النوافذ. (Iee284)
تمت إضافة Modifier.toolingGraphicsLayer التي تضيف معدِّلاً لطبقة الرسومات عند تفعيل وضع الفحص. (I315df)
تم الآن وضع علامة "تجريبي" على FocusRequester.createRefs لأنّه قد يتغيّر. (I2d898، b/177000821)
تمت إعادة تسمية SemanticsPropertyReceiver.hidden إلى invisibleToUser وتم وضع علامة @ExperimentalComposeUiApi عليه. تمت إعادة تسمية AccessibilityRangeInfo إلى ProgressBarRangeInfo. تمت إعادة تسمية stateDescriptionRange إلى progressBarRangeInfo. تمت إعادة تسمية AccessibilityScrollState إلى ScrollAxisRange، وhorizontalAccessibilityScrollState إلى horizontalScrollAxisRange، وverticalAccessibilityScrollState إلى verticalScrollAxisRange. (Id3148)
استخدام TestCoroutineDispatcher في الاختبار (I532b6)
تم تعديل واجهة برمجة التطبيقات للرسومات المتجهة لتتيح تحليل التلوين المطبَّق على جذر الرسومات المتجهة. (Id9d53، b/177210509)
الإصدار 1.0.0-alpha10
13 كانون الثاني (يناير) 2021
تم طرح androidx.compose.material:material-*:1.0.0-alpha10. يتضمّن الإصدار 1.0.0-alpha10 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم تعديل Velocity لتضمين أجزاء مكوّنة وعمليات رياضية. (Ib0447)
- تمت إعادة تسمية
@ExperimentalTestingإلى@ExperimentalTestApiلتكون متوافقة مع التعليقات التوضيحية المشابهة لواجهات برمجة التطبيقات التجريبية (Ia4502 وb/171464963). - تمت إعادة تسمية Position إلى DpOffset وإزالة getDistance() (Ib2dfd)
- تمت إعادة تسمية Color.useOrElse() إلى Color.takeOrElse() (Ifdcf5)
- إضافة زر تبديل إلى ملف foundation Strings.kt (I4a5b7 وb/172366489)
- تم إيقاف FlowRow وFlowColumn نهائيًا. يُرجى استخدام تخطيط مخصّص بدلاً من ذلك. (I09027)
- تم إيقاف Modifier.focus() وModifier.focusRequester() نهائيًا. استخدِم Modifier.focusModifier() وModifier.focusReference() بدلاً من ذلك. (I75a48، b/175160751، b/175160532، b/175077829)
- نقلت nativeClass إلى وحدة ui وجعلتها داخلية. تم تعديل استخدامات nativeClass في عمليات تنفيذ equals لاستخدام "is MyClass" بدلاً من ذلك. (I4f734)
إصلاح الأخطاء
- تمت إضافة إمكانية استخدام حقول النص غير المفعّلة وحقول النص للقراءة فقط (I35279، b/171040474، b/166478534)
- تم الآن استبدال
animate()بـanimateAsState()، التي تعرضState<T>بدلاً منT. يسمح ذلك بتحسين الأداء، إذ يمكن تضييق نطاق الإبطال إلى المكان الذي تتم فيه قراءة قيمة الحالة. (Ib179e) - إضافة واجهة برمجة التطبيقات الخاصة بدور Semantics وإضافة الدور كمعلَمة إلى SemanticsModifier القابل للنقر والاختيار والتبديل تم تغيير Modifier.progressSemantics ليتمكّن شريط التمرير أيضًا من استخدامه. (I216cd)
الإصدار 1.0.0-alpha09
16 كانون الأول (ديسمبر) 2020
تم طرح androidx.compose.material:material-*:1.0.0-alpha09. يتضمّن الإصدار 1.0.0-alpha09 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة واجهة برمجة تطبيقات لتشغيل الرسوم المتحركة الخاصة بالاستقرار والسحب يدويًا في Modifier.swipeable (Iaa17a، b/162408885)
- تمت إعادة تسمية كائنات *Constants، مثل ButtonConstants، لتنتهي بـ Defaults بدلاً من ذلك، مثل ButtonDefaults. تتم أيضًا إزالة البادئات غير الضرورية
defaultمن الخصائص في هذه العناصر الجديدة. (Ibb915، b/159982740) تتيح Compose دوال جلب الخصائص التي يمكنها إنشاء استدعاءات قابلة للإنشاء. لن يتم إيقاف هذه الميزة، ولكن سيتم تغيير بنية تعريف أداة جلب الخصائص على أنّها @Composable.
كانت البنية التي تم إيقافها نهائيًا لإجراء ذلك تتم من خلال إضافة تعليق توضيحي إلى السمة نفسها:
@Composable val someProperty: Int get() = ...تتمثل الصيغة الصحيحة الآن لإجراء ذلك في إضافة تعليق توضيحي إلى دالة جلب قيمة السمة:
val someProperty: Int @Composable get() = ...ستعمل كلتا طريقتَي الكتابة لبعض الوقت، ولكن طريقة الكتابة القديمة المتوقّفة نهائيًا ستصبح في النهاية خطأ في التجميع. (Id9197)
تمت إضافة مكتبة
androidx.compose.material:material-rippleتحتوي على واجهات برمجة تطبيقات التموج للسماح بإنشاء مكونات تفاعلية بدون الحاجة إلى بقية مكتبة Material. تم إيقاف rememberRippleIndication نهائيًا واستبداله بـ rememberRipple. (Ibdf11)
إصلاح الأخطاء
- تعرض دوال Lambda في معدّلات الإزاحة الآن IntOffset بدلاً من Float. (Ic9ee5 وb/174137212 وb/174146755)
تمت إعادة تصميم ShaderBrush لإنشاء مثيل تظليل بشكل غير مباشر عند توفّر معلومات تحديد الحجم لبيئة الرسم. ويكون ذلك مفيدًا لتحديد تدرّجات لونية تشغل حدود الرسم الكاملة لعنصر قابل للإنشاء في وقت الإنشاء، بدون الحاجة إلى تنفيذ عمليات مخصّصة في DrawModifier.
تم إيقاف واجهات برمجة التطبيقات الخاصة بإنشاء دالة التدرّج اللوني واستبدالها بطُرق المصنع في عنصر Gradient. (I511fc، b/173066799)
تم إيقاف Modifier.focusObserver نهائيًا. استخدِم Modifier.onFocusChanged أو Modifier.onFocusEvent بدلاً من ذلك (I30f17 وb/168511863 وb/168511484).
إيقاف LazyColumnFor وLazyRowFor وLazyColumnForIndexed وLazyRowForIndexed نهائيًا استخدام LazyColumn وLazyRow بدلاً من ذلك (I5b48c)
نقلنا Dp.VectorConverter وPosition.VectorConverter وما إلى ذلك إلى animation-core، وأوقفنا VectorConveters القديمة نهائيًا (If0c4b)
أصبحت Autofill API الآن واجهة برمجة تطبيقات تجريبية وتتطلّب الموافقة على استخدامها (I0a1ec)
إضافة عبارات تفكيك لإنشاء مثيلات FocusRequester (I35d84 وb/174817008)
تمت إعادة تسمية accessibilityLabel إلى contentDescription. تمت إعادة تسمية accessibilityValue إلى stateDescription. (I250f2)
دالة infiniteRepeatable جديدة لإنشاء InfiniteRepeatableSpec (I668e5)
تم تغيير سلوك تحديد موضع DropdownMenus قليلاً وفقًا لمواصفات Material. (I34c72، b/168594123)
تمت إضافة إمكانية استخدام InteractionState مع حقول النص. (I61d91)
تمّت إضافة Modifier.clearAndSetSemantics لمحو دلالات العناصر الفرعية وتحديد دلالات جديدة. (I277ca)
تم نقل ContentDrawScope إلى وحدة ui-graphics ليكون مع DrawScope. (Iee043، b/173832789)
الإصدار 1.0.0-alpha08
2 ديسمبر 2020
تم إصدار androidx.compose.material:material:1.0.0-alpha08 وandroidx.compose.material:material-icons-core:1.0.0-alpha08 وandroidx.compose.material:material-icons-extended:1.0.0-alpha08. يتضمّن الإصدار 1.0.0-alpha08 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تضبط السمة MaterialTheme الآن الألوان الصحيحة لمقابض التحديد وخلفية التحديد. يمكن للتطبيقات التي لا تستخدم Material أن تستخدم AmbientTextSelectionColors يدويًا لتخصيص الألوان المستخدَمة في التحديد. (I1e6f4، b/139320372، b/139320907)
- تمت إضافة فحص lint لأسماء مَعلمات lambda القابلة للإنشاء وموضعها، وذلك للتحقّق من التوافق مع إرشادات Compose.
تم أيضًا نقل بعض واجهات برمجة التطبيقات التي تستخدم
childrenكاسم لدالة lambda اللاحقة إلىcontent، وذلك وفقًا لفحص lint والإرشادات. (Iec48e) - تمت إعادة تسمية VectorAsset إلى ImageVector تم نقل VectorAsset وإعادة تسميته إلى Builder ليكون فئة داخلية من ImageVector وفقًا لإرشادات مجلس واجهات برمجة التطبيقات. تمت إضافة نوع الاسم المستعار VectorAssetBuilder للربط بـ ImageVector.Builder من أجل التوافق. (Icfdc8)
- تمت إعادة تسمية ImageAsset والطُرق ذات الصلة إلى ImageBitmap. (Ia2d99)
- نقل خصائص دلالات الأساس إلى واجهة المستخدم (I6f05c)
- تم إيقاف
fun RippleIndication()نهائيًا واستبدالها بـrememberRippleIndication()لتحقيق التوافق مع واجهات برمجة التطبيقات الأخرى. (Id8e2c) - تمت إضافة مَعلمة singeLine إلى BasicTextField وTextField وOutlinedTextField. اضبط هذه المَعلمة على "صحيح" لجعل الحقل النصي سطرًا واحدًا يمكن تمريره أفقيًا. (I57004، b/168187755)
إصلاح الأخطاء
- إضافة إجراء "رفض" الترميز الدلالي (I2b706)
- تم نقل واجهات برمجة التطبيقات DrawModifier من حزمة androidx.compose.ui إلى حزمة androidx.compose.ui.draw. تم إنشاء ملف DrawModifierDeprecated.kt لتضمين أسماء الأنواع المستعارة وطُرق المساعدة لتسهيل عملية نقل البيانات من واجهات برمجة التطبيقات المتوقفة نهائيًا إلى واجهات برمجة التطبيقات الحالية. (Id6044، b/173834241)
- تمت إعادة تسمية Modifier.drawLayer إلى Modifier.graphicsLayer وتم أيضًا تعديل الفئات ذات الصلة إلى GraphicsLayer وفقًا للملاحظات الواردة بشأن واجهة برمجة التطبيقات. (I0bd29، b/173834241)
- تمت إزالة
<T>من تعريف SubcomposeLayout. يمكنك استخدامها بدون تحديد نوع الآن. (Ib60c8) - تمت إضافة واجهات برمجة التطبيقات Modifier.scale/rotate
كأدوات مساعدة في drawLayer.
- تمت إعادة تسمية "
Modifier.drawOpacity" إلى "Modifier.alpha" - تمت إعادة تسمية
Modifier.drawShadowإلىModifier.shadow(I264ca، b/173208140)
- تمت إعادة تسمية "
- تمت إعادة تسمية مَعلمة المحاذاة الخاصة بـ Box إلى contentAlignment. (I2c957)
- تمت إعادة تسمية معدِّلات offsetPx إلى offset. تتلقّى الآن مَعلمات lambda بدلاً من State. (Ic3021، b/173594846)
- تم تقديم واجهات برمجة التطبيقات SweepGradientShader وSweepGradientBrush. (Ia22c1)
- تمت إضافة عملية تدقيق lint لمعلَمات Modifier في الدوال القابلة للإنشاء. يفحص هذا التدقيق البرمجي التسمية ونوع الإرجاع والقيمة التلقائية وترتيب المَعلمات للتأكّد من توافقها مع إرشادات Compose. (If493b)
- تعديل على واجهة برمجة التطبيقات TextFieldValue
- تم ضبط TextFieldValue.composition على القراءة فقط
- تم طرح استثناء تمت إزالته لنطاق التحديد غير الصالح (I4a675، b/172239032)
- تمت إضافة
Modifier.drawLayer()تحميل زائد جديد. تتلقّى هذه الدالة كتلة lambda في GraphicsLayerScope جديدة تحدّد فيها مَعلمات الطبقة بطريقة تتيح تخطّي إعادة التركيب وإعادة التنسيق عند حدوث تغيير في الحالة. أصبحت السمة DrawLayerModifier داخلية الآن استعدادًا لنقل منطقها إلى طريقةplaceable.placeWithLayer()في LayoutModifier (I15e9f، b/173030831) - تم إيقاف Ambients القديمة التي تحمل الاسم
Ambientكلاحقة، واستبدالها بخصائص جديدة تبدأ بـ Ambient، وذلك وفقًا لإرشادات Ambients الأخرى وواجهة برمجة تطبيقات Compose. (I33440) - تمت إضافة عملية فحص lint للتأكّد من أنّ أدوات إنشاء Modifier تستخدم
androidx.compose.ui.composed {}داخليًا، بدلاً من وضع العلامة@Composableعليها. (I3c4bc) - تمت إعادة تسمية وسيطة الدلالات mergeAllDescendants إلى mergeDescendants. (Ib6250)
- أصبح التحكّم في الوقت في الاختبارات (TestAnimationClock واستخداماته) تجريبيًا الآن (I6ef86، b/171378521)
- إزالة وحدة ui-test القديمة ورموزها (I3a7cb)
- تمت إعادة تسمية TextUnit.Inherit إلى TextUnit.Unspecified للحفاظ على التناسق مع الوحدات الأخرى. (Ifce19)
- تم تعديل واجهة "المحاذاة" وإتاحتها للاستخدام. (I46a07، b/172311734)
- تمت إعادة تسمية المعرّف إلى layoutId في LayoutIdParentData. تمت إعادة تسمية Measurable.id إلى Measurable.layoutId. (Iadbcb، b/172449643)
الإصدار 1.0.0-alpha07
11 نوفمبر 2020
تم إصدار androidx.compose.material:material:1.0.0-alpha07 وandroidx.compose.material:material-icons-core:1.0.0-alpha07 وandroidx.compose.material:material-icons-extended:1.0.0-alpha07. يتضمّن الإصدار 1.0.0-alpha07 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم إيقاف ميزة "التركيز" نهائيًا واستبدالها بميزة AmbientContentAlpha. AmbientContentAlpha هي تجريد أبسط يمثّل قيمة ألفا المفضّلة للمحتوى لجزء من التسلسل الهرمي، على غرار طريقة تمثيل AmbientContentColor للون المفضّل للمحتوى. يستهلك كلّ من النص والرمز القيمة الحالية من AmbientContentAlpha تلقائيًا، ويمكنك إجراء ما يلي يدويًا:
color.copy(alpha = AmbientContentAlpha.current)للحصول على التأثير نفسه في مكوّناتك. بدلاً من استخدام ProvideEmphasis، يمكنك تقديم قيمة مباشرةً من خلال AmbientContentAlpha، واستخدام المستويات التلقائية الجديدة في ContentAlpha لاستبدال EmphasisLevels القديمة. (Idf03e، b/159017896) - إضافة androidx.compose.material.AmbientContentColor لاستبدال androidx.compose.foundation.AmbientContentColor (I84f7b، b/172067770)
- تضيف هذه السمة androidx.compose.material.Text لاستبدال androidx.compose.foundation.Text كمكوّن نصي عالي المستوى وقابل للتخصيص. بالنسبة إلى مكوّن نص أساسي لا يستخدم اللون أو نمط النص من المظهر، استخدِم BasicText. (Ie6ae0)
- تمت إضافة maxLines إلى حقول النص (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 كلون تلوين محتمل، ما سيؤدي إلى رسم العنصر أو أداة الرسم المقدَّمة بدون ColorFilter. في السابق، كانت محاولات تجاهل التلوين باستخدام Color.Unspecified تؤدي إلى تلوين العنصر بلون شفّاف، ما يؤدي إلى عدم عرض أي شيء على الإطلاق. (I049e2، b/171624632)
- تمت إعادة تسمية relativePaddingFrom إلى paddingFrom. تمت إضافة المعدِّل paddingFromBaseline لتسهيل تحديد المسافات من حدود التنسيق إلى خطوط الأساس للنص. (I0440a، b/170633813)
- تمت إعادة تسمية LaunchedTask إلى LaunchedEffect لضمان التناسق مع واجهتَي برمجة التطبيقات SideEffect وDisposableEffect. لا يُسمح باستخدام LaunchedEffect بدون معلَمات موضوع لتشجيع أفضل الممارسات. (Ifd3d4)
- تم نقل MeasureResult خارج MeasureScope. (Ibf96d، b/171184002)
- تم نقل العديد من الرموز ذات الصلة بالتصميم من androidx.compose.ui إلى androidx.compose.layout.ui. (I0fa98، b/170475424)
الإصدار 1.0.0-alpha06
28 أكتوبر 2020
تم إصدار androidx.compose.material:material:1.0.0-alpha06 وandroidx.compose.material:material-icons-core:1.0.0-alpha06 وandroidx.compose.material:material-icons-extended:1.0.0-alpha06. يتضمّن الإصدار 1.0.0-alpha06 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم نقل androidx.compose.foundation.Icon إلى androidx.compose.material.Icon. يمكنك أيضًا استخدام مكوّن الصورة / Modifier.paint() مع Painter إذا كنت لا تريد استخدام مكتبة Material. (I9f622)
- تضيف هذه السمة FloatingActionButtonElevation لتمثيل مستوى الارتفاع الذي تستخدمه أزرار FAB في حالات مختلفة. راجِع FloatingActionButtonConstants.defaultElevation() للاطّلاع على التنفيذ التلقائي (I2d4f5).
- تضيف هذه السمة واجهة SwitchColors لتمثيل الألوان التي يستخدمها مفتاح التبديل في حالات مختلفة. راجِع SwitchConstants.defaultColors لتخصيص هذه الألوان. (I93805)
- تضيف هذه السمة واجهتَي ButtonElevation وButtonColors لتمثيل الارتفاع والألوان المستخدَمة في الأزرار في حالات مختلفة. اطّلِع على الدوال التلقائية في ButtonConstants لتخصيص هذه المَعلمات. (Ic5b7b)
- تضيف هذه السمة واجهة RadioButtonColors لتمثيل الألوان التي يستخدمها RadioButton في حالات مختلفة. راجِع RadioButtonConstants.defaultColors() لتخصيص الألوان المستخدَمة في الحالات المختلفة. (I74130)
- تضيف هذه السمة واجهة CheckboxColors لتمثيل الألوان التي يستخدمها مربّع الاختيار في حالات مختلفة. راجِع CheckboxConstants.defaultColors() لتخصيص الألوان المستخدَمة في الحالات المختلفة. (I7dbdb)
إصلاح الأخطاء
- لم تعُد مكوّنات Material تحدّد الارتفاع على أنّه zIndex. وهذا يعني أنّه ضمن العنصر الرئيسي نفسه، لن يتم تلقائيًا رسم العنصر الفرعي الذي يحتوي على حجم ظل أكبر فوق العنصر الفرعي الذي يحتوي على حجم ظل أصغر. إذا كنت لا تزال بحاجة إلى هذا السلوك، يُرجى ضبط Modifier.zIndex() يدويًا عند الحاجة (I70417، b/170623932).
- إيقاف VectorPainter نهائيًا واستخدام rememberVectorPainter بدلاً منه لتوضيح أنّ واجهة برمجة التطبيقات القابلة للإنشاء تستخدم داخليًا الدالة remember للاحتفاظ بالبيانات على مستوى عمليات الإنشاء. (Ifda43)
- تفعيل عمليات الانتقال في ComposeTestRule وإزالة خيار تفعيل المؤشر الوامض من ComposeTestRule (If0de3)
- تمت إضافة خيار لوحة المفاتيح ذات السطر الواحد إلى CoreTextField (I72e6d)
- تمت إعادة تسمية واجهة برمجة التطبيقات Radius إلى CornerRadius للتعبير بشكل أفضل عن طريقة استخدامها في جميع أنحاء Compose. تم تعديل المستندات للإشارة إلى أنّه يتم حصر قيم نصف قطر الزوايا السالبة عند الصفر. (I130c7، b/168762961)
- إعادة تصميم DrawScope وContentDrawScope ليصبحا واجهتَين بدلاً من فئتَين مجرّدتَين
- تم إنشاء تنفيذ CanvasDrawScope لـ DrawScope
- إعادة تصميم عمليات تنفيذ DrawScope لاستخدام CanvasScope بدلاً من ذلك
- تم إنشاء DrawContext لتضمين التبعيات في DrawScope
- إزالة الطرق المتوقّفة نهائيًا في DrawScope (I56f5e)
- تم تحويل المربع إلى دالة مضمّنة. (Ibce0c، b/155056091)
الإصدار 1.0.0-alpha05
14 أكتوبر 2020
تم إصدار androidx.compose.material:material:1.0.0-alpha05 وandroidx.compose.material:material-icons-core:1.0.0-alpha05 وandroidx.compose.material:material-icons-extended:1.0.0-alpha05. يتضمّن الإصدار 1.0.0-alpha05 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تكتسب النوافذ المنبثقة ومربّعات الحوار الآن قيمة FLAG_SECURE من النافذة الرئيسية. تمت أيضًا إضافة خيار لضبط هذا الإعداد بشكل صريح (I64966 وb/143778148 وb/143778149)
- يحتوي Modifier.swipeable الآن على حدود 56.dp للحالات تلقائيًا (Iab825، b/168610267)
- تم وضع العلامة @Stable على جميع حالات Scaffold. تم نقل drawerGesturesEnabled في ScaffoldState إلى Scaffold نفسه. (I36645، b/168297016)
- تزيل هذه القاعدة النوع القابل للتصغير من مَعلمات lambda في Scaffold، ويمكنك استخدام emptyContent() لتمثيل عدم توفّر محتوى لمَعلمة معيّنة. (I2b318، b/157633857، b/158551084)
إيقاف واجهتَي برمجة التطبيقات contentColor() وcurrentTextStyle() نهائيًا واستبدالهما بالبيئتين AmbientContentColor وAmbientTextStyle على التوالي يمكنك الوصول إلى القيمة الحالية باستخدام
.currentفي السمة المحيطة، كما هو الحال مع أي سمة محيطة أخرى. تم إجراء هذا التغيير للحفاظ على الاتساق وتجنُّب توفّر طرق متعددة لإنجاز المهمة نفسها. بالإضافة إلى ذلك، يعيد تسمية بعض السمات المحيطة لتوضيح الغرض منها بشكل أفضل على النحو التالي:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
تضيف هذه السمة AmbientElevationOverlay، ما يتيح تخصيص أو إيقاف التراكب التلقائي للارتفاع الذي يتم تطبيقه على "الأسطح" في المظهر الداكن. (I5b74d)
إصلاح الأخطاء
- في إطار توحيد قيم الحراسة للفئات المضمّنة، تمت إعادة تسمية Color.Unset إلى Color.Unspecified لضمان التوافق مع الفئات المضمّنة الأخرى (I97611، b/169797763)
- تم تقديم TextOverflow.None. عندما تكون قيمة overflow هي None، لن يتعامل عنصر Text مع المحتوى الزائد بعد الآن، وسيُبلغ LayoutNode عن حجمه الفعلي. (I175c9، b/158830170)
- تمت إعادة تسمية launchInComposition إلى LaunchedTask لتتوافق مع إرشادات واجهة برمجة التطبيقات Compose (I99a8e)
- تمت إعادة تسمية OnPositionedModifier إلى OnGloballyPositionedModifier وإعادة تسمية onPositioned() إلى onGloballyPositioned(). (I587e8، b/169083903)
الإصدار 1.0.0-alpha04
1 تشرين الأول (أكتوبر) 2020
تم إصدار androidx.compose.material:material:1.0.0-alpha04 وandroidx.compose.material:material-icons-core:1.0.0-alpha04 وandroidx.compose.material:material-icons-extended:1.0.0-alpha04. يتضمّن الإصدار 1.0.0-alpha04 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تعرض هذه السمة مَعلمات InteractionState في مكوّنات Material ذات الحالة، وذلك للسماح برفع الحالة وقراءتها والتحكّم فيها. (Iaca5f وb/168025711 وb/167164434)
- تغيير المَعلمات
*colorفي RadioButton وTriStateCheckbox للسماح بتخصيص الألوان المستخدَمة في كل حالة بشكل كامل، بالإضافة إلى تغيير طريقة تحرّك الألوان بين الحالات إذا أردت ذلك راجِع دوال الألوان الجديدة animateDefault* في CheckboxConstants وRadioButtonConstants للحصول على مزيد من المعلومات. (I1c532) - تمت إعادة تسمية rememberBackdropState إلى rememberBackdropScaffoldState وتمت إضافة مَعلمة إضافية لساعة الحركة. تمت إعادة تسمية المَعلمة backdropScaffoldState في BackdropScaffold إلى scaffoldState فقط. تمت إعادة تسمية BackdropConstants إلى BackdropScaffoldConstants. (Ib644d)
- تمت إضافة مكوّن BottomSheetScaffold تجريبي. (Ie02f0، b/148996320)
- تمت إضافة مكوّن ModalBottomSheetLayout تجريبي. (Ic209e، b/148996320)
- تمت إعادة تسمية ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation إلى defaultElevation، وأصبحت تعرض الآن قيمة Dp بدلاً من AnimatedValue. (I5f3ed)
إصلاح الأخطاء
- تم تعديل العديد من واجهات برمجة تطبيقات الرسومات
- تم تعديل واجهات برمجة التطبيقات الخاصة بتحويل الحجم والتدوير لتستهلك مَعلمة إزاحة واحدة لتمثيل إحداثيات نقطة الارتكاز بدلاً من مَعلمات عائمة منفصلة لإحداثيات س/ص في DrawScope وDrawTransform
- تمت إزالة الطريقتَين Rect.expandToInclude وRect.join
- عدّلنا مستندات "نصف القطر" لتشير إلى الشكل البيضوي بالإضافة إلى الشكل الإهليلجي
- تمت إضافة مستندات للإشارة إلى أنّه يجب عدم استدعاء الدالة الإنشائية العامة لفئة Radius المضمّنة مباشرةً، بل يجب إنشاء عناصر Radius من خلال دوالها الإنشائية.
- تمت إزالة واجهات برمجة تطبيقات RoundRect للاستعلام عن topRight وbottomRight وbottomCenter وما إلى ذلك.
- إيقاف Rect.shift نهائيًا واستخدام Rect.translate بدلاً منه
- إزالة واجهتَي برمجة التطبيقات RoundRect.grow وRect.shrink
- تمت إعادة تسمية RoundRect.outerRect إلى Rect.boundingRect
- تمت إزالة طرق RoundRect.middleRect/tallMiddleRect/wideMiddleRect وRect.isStadium
- تمت إعادة تسمية RoundRect.longestSide إلى RoundRect.maxDimension
- تمت إعادة تسمية RoundRect.shortestSide إلى RoundRect.minDimension
- تم تغيير RoundRect.center ليكون سمة بدلاً من دالة
- تم تعديل الدالة الإنشائية RoundRect لتستهلك خصائص Radius بدلاً من المَعلمات الفردية لقيم نصف القطر x/y
- تمت إزالة واجهات برمجة التطبيقات الخاصة بالحجم التي تفترض أنّها مستطيل بنقطة أصل عند 0,0
- تمت إضافة واجهة برمجة تطبيقات لتدمير البيانات إلى Radius
- نقلنا العديد من دوال إضافة RoundRect إلى خصائص بدلاً من ذلك
- (I8f5c7، b/168762961)
- تم إيقاف foundation.Box نهائيًا. يُرجى استخدام foundation.layout.Box بدلاً من ذلك. (Ie5950، b/167680279)
- تمت إعادة تسمية الحزمة لتصبح Box. سيتم إيقاف Box القديم نهائيًا واستخدام Box الجديد في compose.foundation.layout. سيتيح المربع الجديد ترتيب العناصر الفرعية فوق بعضها البعض عندما يتضمّن عدة عناصر فرعية، وهذا يختلف عن المربع السابق الذي كان يتصرف بشكل مشابه للعمود. (I94893، b/167680279)
- تم إيقاف مَعلمات تزيين المربّعات نهائيًا. إذا كنت تريد إضافة زخارف أو مساحة متروكة إلى المربّع، استخدِم المعدِّلات بدلاً من ذلك (Modifier.background وModifier.border وModifier.padding) (Ibae92 وb/167680279).
- تم تعديل العديد من واجهات برمجة تطبيقات الرسومات
- تم تعديل واجهات برمجة التطبيقات DrawScope لتتضمّن طرق تحويل ذات نطاق محدّد للإشارة إلى أنّ عملية التحويل يتم تطبيقها فقط ضمن دالة الرجوع ويتم إزالتها بعد استدعاء دالة الرجوع
- تم تعديل مستندات clipPath للإشارة إلى Path بدلاً من المستطيل الدائري
- تم إصلاح المسافة في مستندات المَعلمة right في clipPath
- تمت إعادة تسمية DrawScope.drawCanvas إلى drawIntoCanvas وإزالة مَعلمة الحجم
- تمت إعادة تسمية المَعلمتَين dx/dy في طريقة inset إلى horizontal وvertical
- تمت إضافة تحميل زائد للداخل يوفّر قيمة الداخل نفسها لجميع الحدود الأربعة
- تمت إزالة المستندات المتعلقة بطريقة الإدراج التي تشير إلى أنّه سيتم تطبيق الإدراج على جميع الجوانب الأربعة
- تعديل المستندات الخاصة بفئة Rect
- تم تعديل التعليقات على مَعلمات Rect لتتوافق مع نمط kdoc
- إزالة Rect.join وRect.expandToInclude
- تم إنشاء تحميل زائد للدالة Rect.translate(offset) وتم إيقاف الدالة Rect.shift نهائيًا
- (If086a، b/167737376)
- منعنا عمليات الاستيراد الثابتة لمحتويات نطاقات التنسيق (مثل alignWithSiblings في RowScope). يجب استخدام النطاق البديل الواضح بدلاً من ذلك:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }. (I216be، b/166760797)
الإصدار 1.0.0-alpha03
16 سبتمبر 2020
تم إصدار androidx.compose.material:material:1.0.0-alpha03 وandroidx.compose.material:material-icons-core:1.0.0-alpha03 وandroidx.compose.material:material-icons-extended:1.0.0-alpha03. يتضمّن الإصدار 1.0.0-alpha03 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إعادة تسمية المَعلمة
onSelectالخاصة بـBottomNavigationItemإلىonClick(I91925، b/161809324) - تضيف هذه السمة المَعلمة InteractionState إلى BottomNavigationItem وTab، ما يتيح إمكانية نقل هذه الحالة وتعديل طريقة ظهور المكوّن في الحالات المختلفة. (Ia3e9e، b/168025711)
- تزيل هذه السمة المَعلمتَين
disabledBackgroundColorوdisabledContentColorمن الأزرار. عليك بدلاً من ذلك استخدام دوال الألوان التلقائية الجديدة داخل ButtonConstants. إذا كنت تضبط contentColor / backgroundColor بشكلٍ صريح، عليك بدلاً من ذلك استخدام هاتَين الدالتَين التلقائيتَين وتخصيص بعض المَعلمات أو جميعها لتجنُّب الكتابة فوق اللون لكلتا حالتَي التفعيل والإيقاف. (If9b52) - لم يعُد لون خلفية حقل النص يطبّق تلقائيًا قيمة ألفا للشفافية. بدلاً من ذلك، سيتم تطبيق أي لون يتم توفيره من خلال المَعلمة backgroundColor مباشرةً. (Iecee9، b/167951441)
- تمت إعادة تسمية InnerPadding إلى PaddingValues. (I195f1، b/167389171)
- تم استبدال المَعلمتَين
resistanceFactorAtMinوresistanceFactorAtMaxفيModifier.swipeableبمَعلمة مقاومة واحدة. تمت إضافة طريقةdefaultResistanceConfigجديدة فيSwipeableConstants. (I54238) - تضيف هذه السمة إمكانية استخدام الارتفاع المتحرّك مع الحالة لكل من Button وFloatingActionButton. يتم الآن تحريك المسقط الرأسي بين الحالتَين التلقائية والمضغوطة. لتخصيص الارتفاع بين الحالات، يُرجى استخدام
ButtonConstants.defaultAnimatedElevation()وFloatingActionButtonConstants.defaultAnimatedElevation()بدلاً من ضبط قيمة Dp ثابتة في جميع الحالات. (I37925) - أصبح التصنيف مَعلمة اختيارية داخل TextField وOutlinedTextField (I267f6 وb/162234081)
إصلاح الأخطاء
- تم الآن إيقاف دوال الاختبار العامة، مثل
onNodeأوwaitForIdle، نهائيًا. يُرجى نقل البيانات إلى الدوال الجديدة المحدّدة في ComposeTestRule (I7f45a). - تم إيقاف DpConstraints وواجهات برمجة التطبيقات التي تستخدمها نهائيًا. (I90cdb، b/167389835)
- تمت إعادة تسمية المَعلمتَين minWidth وmaxWidth الخاصتَين بـ widthIn إلى min وmax. وينطبق الأمر نفسه على preferredWidthIn وheightIn وpreferredHeightIn. (I0e5e1، b/167389544)
- إزالة إجراءات دلالات التمرير للأمام/للخلف تمت إضافة خطوات في AccessibilityRangeInfo. (Ia47b0)
- تمت إعادة تسمية استخدامات الجاذبية بشكلٍ متّسق إلى "محاذاة" أو "محاذاة" في واجهات برمجة تطبيقات التنسيق. (I2421a، b/164077038)
- تمت إضافة onNode وطُرق عامة أخرى إلى ComposeTestRule لأنّ الطرق العامة الحالية سيتم إيقافها نهائيًا. (Ieae36)
- تم نقل
createAndroidComposeRuleوAndroidInputDispatcherمنandroidx.ui.test.androidإلىandroidx.ui.test(Idef08، b/164060572)
الإصدار 1.0.0-alpha02
2 سبتمبر 2020
تم إصدار androidx.compose.material:material:1.0.0-alpha02 وandroidx.compose.material:material-icons-core:1.0.0-alpha02 وandroidx.compose.material:material-icons-extended:1.0.0-alpha02. يتضمّن الإصدار 1.0.0-alpha02 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة مكوّن BackdropScaffold تجريبي. (Iad908)
إصلاح الأخطاء
- تم استبدال Matrix4 بـ Matrix. تمت إزالة جميع الأجزاء الأخرى من حزمة vectormath. (Ibd665، b/160140398)
الإصدار 1.0.0-alpha01
26 آب (أغسطس) 2020
تم إصدار androidx.compose.material:material:1.0.0-alpha01 وandroidx.compose.material:material-icons-core:1.0.0-alpha01 وandroidx.compose.material:material-icons-extended:1.0.0-alpha01. يتضمّن الإصدار 1.0.0-alpha01 هذه التعديلات.
مشكلة معروفة
= لا يمكن إزالة الحرف الأول في مادة TextField باستخدام مفتاح المسافة الخلفية (b/165956313)
الإصدار 0.1.0-dev
الإصدار 0.1.0-dev17
19 آب (أغسطس) 2020
تم إصدار androidx.compose.material:material:0.1.0-dev17 وandroidx.compose.material:material-icons-core:0.1.0-dev17 وandroidx.compose.material:material-icons-extended:0.1.0-dev17. يتضمّن الإصدار 0.1.0-dev17 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إزالة RadioGroup وRadioGroupItems اللذين تم إيقافهما نهائيًا سابقًا. استخدِم Row وRadioBotton بدلاً من ذلك (I381b7، b/163806637)
- تمت إزالة عمليات معاودة الاتصال onFocusChanged من TextField. استخدِم Modifier.focusObserver بدلاً من ذلك. (I51089، b/161297615)
- تم إيقاف استخدام Modifier.drawBorder نهائيًا. استخدِم Modifier.border بدلاً من ذلك. تم استبدال فئة بيانات الحدود بـ BorderStroke (I4257d، b/158160576)
- تمت إعادة تسمية بعض الخصائص في SwipeableState: swipeTarget -> targetValue وswipeProgress -> progress وswipeDirection -> direction. تمت إضافة دالة rememberSwipeableState لإنشاء SwipeableStates. (I2fc9c وb/163129614 وb/163132293)
- تمت إضافة إمكانية استخدام شريط المعلومات مع تحديد الموضع والترتيب الصحيح في قائمة الانتظار. يمكنك الوصول إلى هذه الميزة من خلال وظيفة التعليق المؤقت في
SnackbarHostState.showSnackbar. بالإضافة إلى ذلك:- تمت إضافة مكوّنات SnackbarHost. يستضيف هذا العنصر Snackbars استنادًا إلى الحالة وهو مسؤول عن الانتقال بينها.
- تمت إضافة SnackbarHostState للسماح بالتحكّم في أشرطة المعلومات المقتضبة ومضيفي أشرطة المعلومات المقتضبة وفصلها عن ScaffoldState. يمكنك الوصول إلى هذه الحالة أيضًا من خلال
scaffoldState.snackbarHostState. - تمت إضافة ميزة "التحميل الزائد لشريط المعلومات" لدعم واجهة مشتركة بين snackbarHostState وأشرطة المعلومات نفسها. (I79aaa)
- إضافة المَعلمة enabled إلى IconButton، وإعادة ترتيب المَعلمات في IconToggleButton (I0a941 وb/161809385 وb/161807956)
- تمت إزالة إصدار ListItem الذي يتضمّن واجهة برمجة تطبيقات مستندة إلى السلسلة. استخدِم إصدار خانة بدلاً من ذلك. (Ib8f57، b/161804681)
- تمت إزالة مكوّن FilledTextField المتوقّف نهائيًا. يُرجى استخدام TextField بدلاً من ذلك للحصول على تنفيذ حقل النص المملوء وفقًا لتصميم Material Design. (I5e889)
- تستخدم AlertDialog الآن FlowRow للأزرار (I00ec1 وb/161809319 وb/143682374)
- تمت إضافة مَعلمات في Modifier.swipeable لتغيير مقدار المقاومة عند التمرير سريعًا بعد الحدود. تمت إزالة مَعلمات [min/max]Value. (I93d98)
- تمت إضافة المَعلمة backgroundColor إلى LinearProgressIndicator وإزالة المساحة المتروكة الداخلية من CircularProgressIndicator. تمت إضافة ProgressIndicatorConstants.DefaultProgressAnimationSpec الجديد الذي يمكن استخدامه كـ AnimationSpec تلقائي عند تحريك مستوى التقدّم بين القيم (If38b5 وb/161809914 وb/161804677)
- تمت إضافة المَعلمة الاختيارية velocityThreshold إلى Modifier.swipeable. (I698ba)
- لم تعُد bottomBarSize وfabSize وغيرها متاحة في ScaffoldState. استخدِم Modifier.onPosition بدلاً من المكوّن الذي تريد معرفة حجمه. تمت إضافة المَعلمتَين contentColor وModifier إلى Scaffold (Ic6f7b وb/161811485 وb/157174382).
- إعادة تسمية بعض المَعلمات وإعادة ترتيبها في علامة التبويب لتحقيق التناسق مع واجهات برمجة التطبيقات الأخرى (Ia2d12، b/161807532)
- تقسيم TabRow إلى TabRow وScrollableTabRow، وإزالة isScrollable من TabRow تعرض أيضًا edgePadding في ScrollableTabRow، ما يتيح التحكّم في المساحة الحرة قبل علامات التبويب أو بعدها. (I583e8، b/161809544)
- تمت إزالة العنصر
TabRowواستبداله بـ TabConstants. تم نقل TabRow.TabPosition إلى المستوى الأعلى (TabPosition)، وتمت إعادة تسمية indicatorContainer إلىindicator. اطّلِع على النماذج والمستندات للحصول على معلومات تفصيلية حول كيفية استخدام واجهة برمجة التطبيقات المعدَّلة والإعدادات التلقائية. (I54d45، b/161809544) - تم تعديل المَعلمة thresholds في Modifier.swipeable، وأصبحت الآن تأخذ زوجًا من الحالات (من النوع T) وتعرض الحدّ بينهما في شكل ThresholdConfig. تمت إضافة المَعلمة dismissThresholds إلى SwipeToDismiss، وهي عبارة عن دالة lambda (DismissDirection) -> ThresholdConfig. (Ie1080)
- يتضمّن شريط التمرير المزيد من الألوان لتخصيص دقيق (I73e64، b/161810475)
- تمت إعادة تسمية مَعلمة لون البطاقة إلى backgroundColor (I01fc1، b/161809546)
- أصبح بإمكانك الآن تخصيص ألوان الخلفية والمحتوى في شريط المعلومات (I238f2، b/161804381)
- تمت إضافة مَعلمات التخصيص modifier وbackgroundColor وcontentColor وscrimColor إلى Drawers (I23655 وb/161804378)
- تم إيقاف العنصر القابل للإنشاء
state { ... }نهائيًا، وأصبح من الأفضل استخدام استدعاءات صريحة للدالةremember { mutableStateOf(...) }لزيادة الوضوح. يؤدي ذلك إلى تقليل مساحة واجهة برمجة التطبيقات وعدد المفاهيم الخاصة بإدارة الحالة، ويتوافق مع نمطby mutableStateOf()لتفويض سمات الفئة. (Ia5727) - تمت إعادة تسمية مَعلمة المساحة المتروكة للزر إلى contentPadding (Id252e، b/161809394)
- أضِف مكوّنًا تجريبيًا من مواد SwipeToDismiss. (I129e5)
إصلاح الأخطاء
- تمت إزالة
onChildPositionedوOnChildPositionedModifier. على المطوّرين استخدامonPositionedوOnPositionedModifierفي تصميم الأطفال بدلاً من ذلك. (I4522e، b/162109766) - تمت إضافة دالة lambda الخاصة بـ mergePolicy إلى SemanticsPropertyKey. يمكن استخدامها لتحديد سياسة مخصّصة لدمج جميع العناصر الفرعية. تتمثّل السياسة التلقائية في استخدام قيمة العنصر الأصل إذا كانت متوفّرة، وإلا سيتم استخدام قيمة العنصر الفرعي. (Iaf6c4، b/161979921)
- أصبح IntSize الآن فئة مضمّنة (I2bf42)
- تمت إعادة تسمية
PlacementScope.placeAbsolute()إلىPlacementScope.place()، وتمت إعادة تسميةPlacementScope.place()السابقة إلىPlacementScope.placeRelative(). نتيجةً لذلك، لن تعكس الطريقةPlacementScope.place()الموضع تلقائيًا في سياقات الكتابة من اليمين إلى اليسار بعد الآن. إذا كنت تريد ذلك، استخدِمPlacementScope.placeRelative()بدلاً من ذلك. (I873ac، b/162916675) - تم إيقاف PxBounds نهائيًا واستبداله بـ Rect. تم تعديل جميع استخدامات PxBounds باستخدام rect، وتمت إضافة تعليقات توضيحية مناسبة بشأن الإيقاف نهائيًا والاستبدال للمساعدة في عملية نقل البيانات. (I37038، b/162627058)
- تمت إعادة تسمية RRect إلى RoundRect لتتلاءم بشكل أفضل مع أنماط التسمية في Compose تم إنشاء دوال إنشاء مشابهة لدالة RRect وتم إيقاف دوال إنشاء RRect نهائيًا (I5d325)
الإصدار 0.1.0-dev16
5 آب (أغسطس) 2020
تم إصدار androidx.compose.material:material:0.1.0-dev16 وandroidx.compose.material:material-icons-core:0.1.0-dev16 وandroidx.compose.material:material-icons-extended:0.1.0-dev16. يتضمّن الإصدار 0.1.0-dev16 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- أصبحت "الألوان" الآن فئة نهائية بدلاً من واجهة. بدلاً من توسيع نطاق التنفيذ وتوفير تنفيذ مخصّص، عليك إنشاء بيئة جديدة لكائن المظهر المخصّص، والوصول إلى كائن المظهر من خلال البيئة الجديدة في مكوّناتك، على غرار طريقة عمل MaterialTheme داخليًا. (Ibae84)
- تمت إعادة تسمية ColorPalette إلى Colors، وذلك لتتوافق بشكل أفضل مع نظام ألوان Material وإزالة أي التباس بشأن كون ColorPalette عنصرًا عامًا للتصميم، بدلاً من أن يكون تطبيقًا محددًا لنظام ألوان Material. بالإضافة إلى ذلك، تتم إعادة تسمية lightColorPalette وdarkColorPalette إلى lightColors وdarkColors على التوالي. (I9e976، b/161812111)
- تتم إعادة تسمية المَعلمة
textفي BottomNavigationItem إلىlabel، وonSelectedإلىonSelect، وactiveColorإلىselectedContentColor، وinactiveColorإلىunselectedContentColor، ويتم تعديل ترتيب المَعلمات ليتوافق مع الإرشادات. (Icb605، b/161809324) - تمت إعادة صياغة
Modifier.stateDraggableبالكامل وإعادة تسميتها إلى Modifier.swipeable. تم تقديم فئة SwipeableState جديدة، وتمت إعادة تصميم DrawerState وBottomDrawerState لكي يتم اشتقاقها منها. لم يعُد [Modal/Bottom]DrawerLayout يقبل المَعلمة onStateChange. (I72332، b/148023068) - تمت تسوية حزمة foundation.shape.corner إلى foundation.share (I46491، b/161887429)
- تمت إضافة التعليق التوضيحي ExperimentalMaterialApi. تم وضع علامة "تجريبي" على RippleTheme (Ic5fa0، b/161784800)
- تمت إعادة تسمية Material FilledTextField إلى TextField، وإعادة تسمية TextField الأساسي إلى BaseTextField لتسهيل العثور على أبسط واجهة برمجة تطبيقات مطلوبة واستخدامها (Ia6242، b/155482676)
إصلاح الأخطاء
- تم إيقاف OnChildPositioned نهائيًا. استخدِم OnPositioned في العنصر الفرعي بدلاً من ذلك. (I87f95، b/162109766)
- إصلاحات واسعة النطاق في واجهة برمجة التطبيقات (I077bc)
- إزالة واجهة OffsetBase غير المستخدَمة
- مواءمة فئتَي Offset وIntOffset للحصول على مساحة سطح متسقة لواجهة برمجة التطبيقات
- إعادة تسمية IntOffset.Origin إلى IntOffset.Zero لضمان التوافق مع Offset API
- نقل طريقة nativeCanvas من واجهة Canvas لإتاحة إنشاء مستهلكين لنسخ Canvas الخاصة بهم
- تم إنشاء فئة EmptyCanvas فارغة لإعادة تصميم DrawScope لكي تكون مَعلمة غير فارغة بدلاً من lateinit وضمان عدم إمكانية أن يكون الحقل فارغًا
- تمت إعادة تسمية تعدادات ClipOp لتصبح Pascal Case
- إعادة تسمية تعدادات FilterQuality لتصبح Pascal Case
- تمت إعادة تسمية تعدادات StrokeJoin لتصبح Pascal Case
- إعادة تسمية تعداد PointMode ليكون Pascal Case
- تمت إعادة تسمية تعدادات PaintingStyle لتصبح Pascal Case
- تمت إعادة تسمية تعدادات PathFillType لتصبح Pascal Case
- تمت إعادة تسمية تعداد StrokeCap إلى Pascal Case
- تم تعديل تنفيذ DrawCache لكي لا يستخدم مَعلمات lateinit
- تم تعديل DrawScope لكي لا يستخدم التفويض الكسول للمعلَمات الداخلية fillPaint وstrokePaint
- تم تعديل دالة Image القابلة للإنشاء لتجنُّب استخدام Box لتقليل الحمل الزائد
- تعديل فئة "المخطّط التفصيلي" لتضمين التعليقات التوضيحية @Immutable
- تم تعديل PathNode لتضمين التعليقات التوضيحية @Immutable لكل تعليمات مسار
- تم تعديل التركيبة الفرعية Vector لإزالة عمليات التحقّق الشرطية المكرّرة من المساواة، لأنّ عملية الإنشاء تتعامل معها
- تم إيقاف طرق إنشاء Rect المصاحبة نهائيًا واستبدالها بطرق إنشاء الدوال.
- تم تعديل فئات Brush ومنشئات الدوال باستخدام واجهات برمجة التطبيقات @Immutable و @Stable
- تم تعديل تعداد VertexMode ليكون PascalCase
- تم تعديل طريقة selectPaint في DrawScope لتعديل مَعلمات ضربات الفرشاة بشكل شرطي في اللوحة إذا تم تغييرها
- تم تعديل الحجم لإضافة واجهة برمجة تطبيقات تفكيك البنية، وإعادة تسمية UnspecifiedSize إلى Unspecified، وإزالة الطرق غير المستخدَمة
- نقل مربع الحوار إلى واجهة المستخدم (I47fa6)
- تمت إزالة
SemanticsNodeInteraction.performPartialGesture. استخدِمSemanticsNodeInteraction.performGestureبدلاً من ذلك. (Id9b62) - تمت إعادة تسمية
SemanticsNodeInteraction.getBoundsInRoot()إلىSemanticsNodeInteraction.getUnclippedBoundsInRoot()(Icafdf، b/161336532) - تم تعديل واجهات برمجة التطبيقات التي تتيح استخدام اللغة من اليمين إلى اليسار. تمت إضافة LayoutDirectionAmbient، ويمكن استخدامها لقراءة اتجاه التنسيق وتغييره. تمت إزالة Modifier.rtl وModifier.ltr. (I080b3)
- تمت إعادة تسمية Modifier.deternimateProgress إلى Modifier.progressSemantics (I9c0b4)
- تعديل material-icons-extended باستخدام أحدث الرموز المضافة إلى Material.io/icons (I4b1d3)
- يجب تحديد النوع T بشكل صريح لـ transitionDefinition. (I1aded)
- تم إيقاف Modifier.plus نهائيًا، يُرجى استخدام Modifier.then بدلاً من ذلك. توفّر الكلمة الأساسية "ثم" إشارة أقوى للترتيب، كما أنّها تحظر كتابة
Modifier.padding().background() + anotherModifier، ما يؤدي إلى إيقاف السلسلة ويصعّب قراءتها (Iedd58، b/161529964) - تمت إعادة تسمية AndroidComposeTestRule إلى createAndroidComposeRule. (I70aaf)
- أضِف SemanticsMatcher لكلّ من isFocused() وisNotFocused(). (I0b760)
- تمت إزالة
BaseGestureScope.globalBounds، والتي لا يجب استخدامها في الاختبارات. استخدِم الإحداثيات المحلية للعقدة التي تتفاعل معها بدلاً من ذلك. (Ie9b08) - تم إصلاح موضع النافذة المنبثقة الثابت على الشاشات التي تحتوي على فتحة. (Idd7dd)
- تمت إعادة تسمية Modifier.drawBackground إلى Modifier.background (I13677)
الإصدار 0.1.0-dev15
22 تموز (يوليو) 2020
تم إصدار androidx.compose.material:material:0.1.0-dev15 وandroidx.compose.material:material-icons-core:0.1.0-dev15 وandroidx.compose.material:material-icons-extended:0.1.0-dev15. يتضمّن الإصدار 0.1.0-dev15 هذه التعديلات.
تعديل التبعيات
- لاستخدام إصدار
0.1.0-dev15من Compose، عليك تعديل التبعيات وفقًا لمقتطفات الرموز الجديدة الموضّحة أعلاه في تعريف التبعيات.
تغييرات واجهة برمجة التطبيقات
تم إيقاف التعليق التوضيحي
@Modelنهائيًا. استخدِم state وmutableStateOf كبدائل. تم اتّخاذ قرار الإيقاف النهائي هذا بعد مناقشة متأنية.السبب
تشمل الأسباب ما يلي على سبيل المثال لا الحصر:
- يقلّل من مساحة واجهة برمجة التطبيقات والمفاهيم التي نحتاج إلى شرحها
- تتوافق بشكل أكبر مع مجموعات الأدوات المشابهة الأخرى (مثل Swift UI وReact وFlutter)
- قرار يمكن التراجع عنه يمكننا إعادة
@Modelلاحقًا في أي وقت. - إزالة حالات الاستخدام النادرة والأسئلة الصعبة التي يجب الإجابة عنها بشأن إعداد
@Model - فئات بيانات
@Model، وعلامات المساواة، ورموز التجزئة، وما إلى ذلك - كيف يمكنني ضبط بعض المواقع على "مراقبة" والبعض الآخر على "عدم مراقبة"؟
- كيف يمكنني تحديد المساواة البنيوية مقابل المساواة المرجعية لاستخدامها في المراقبة؟
- يقلّل من "السحر" في النظام. سيؤدي ذلك إلى تقليل احتمالية افتراض المستخدم أنّ النظام أكثر ذكاءً مما هو عليه (أي أنّه يعرف كيفية مقارنة قائمة).
- يجعل مستوى التفاصيل في الملاحظة أكثر سهولة.
- تحسين إمكانية إعادة البناء من متغير إلى سمة في الفئة
- قد يتيح ذلك إمكانية إجراء تحسينات مخصّصة لكل ولاية
- تتوافق بشكل أكبر مع بقية النظام المتكامل وتقلّل من الغموض بشأن البيانات غير القابلة للتغيير أو "اعتماد الحالة القابلة للتغيير"
ملاحظات حول نقل البيانات
يمكن تحويل جميع الاستخدامات الحالية تقريبًا للرمز
@Modelبطريقتَين بسيطتَين. يحتوي المثال أدناه على فئة@Modelتتضمّن سمتَين فقط لأغراض التوضيح، ويتم استخدامها في دالة برمجية قابلة للإنشاء.@Model class Position( var x: Int, var y: Int ) @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }الحلّ البديل 1: استخدام
State<OriginalClass>وإنشاء نُسخويسهّل استخدام فئات البيانات في Kotlin اتّباع هذا الأسلوب. في الأساس، يجب تحويل جميع الخصائص
varالسابقة إلى خصائصvalلفئة البيانات، ثم استخدامstateبدلاً منremember، وتعيين قيمة الحالة إلى نُسخ مستنسخة من الأصل باستخدام طريقةcopy(...)المريحة لفئة البيانات.من المهم ملاحظة أنّ هذا الأسلوب لا يعمل إلا عندما تكون التغييرات الوحيدة التي تم إجراؤها على هذه الفئة في النطاق نفسه الذي تم فيه إنشاء مثيل
State. إذا كان الصف يغيّر حالته داخليًا خارج نطاق الاستخدام، وكنت تعتمد على مراقبة ذلك، فإنّ الطريقة التالية هي التي تريد استخدامها.data class Position( val x: Int, val y: Int ) @Composable fun Example() { var p by state { Position(0, 0) } PositionChanger( position=p, onXChange={ p = p.copy(x=it) } onYChange={ p = p.copy(y=it) } ) }البديل 2: استخدام mutableStateOf ووسيطات الخصائص
يتم تسهيل هذا الأسلوب باستخدام أدوات تفويض السمات في Kotlin وواجهة برمجة التطبيقات
mutableStateOfالتي تتيح لك إنشاء مثيلات MutableState خارج التركيب. في الأساس، استبدِل جميع خصائصvarللفئة الأصلية بخصائصvarمعmutableStateOfكعنصر تحكّم في الخاصية. ويتميّز ذلك بأنّ استخدام الفئة لن يتغيّر على الإطلاق، بل سيتغيّر فقط التنفيذ الداخلي لها. مع ذلك، لا يتطابق السلوك تمامًا مع المثال الأصلي، لأنّه يتم الآن مراقبة كل خاصية أو الاشتراك فيها بشكلٍ فردي، لذا قد تكون عمليات إعادة الإنشاء التي تراها بعد إعادة التصميم هذه أكثر تحديدًا (وهذا أمر جيد).class Position(x: Int, y: Int) { var x by mutableStateOf(x) var y by mutableStateOf(y) } // source of Example is identical to original @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }(I409e8 وb/152050010 وb/146362815 وb/146342522 وb/143413369 وb/135715219 وb/143263925 وb/139653744)
تمت إعادة تسمية دالة onFocusChange في حقول النص إلى onFocusChanged (Ida4a1)
تمت إضافة المَعلمة thresholds في stateDraggable لتحديد الحدود الدنيا بين نقاط الارتكاز. تم استخدام ذلك لضبط حد 56dp في اللوحة السفلية. يستخدم BottomDrawerLayout الآن أيضًا تعدادًا منفصلاً باسم BottomDrawerState. (I533fa)
تزيل هذه السمة Modifier.ripple التي تم إيقافها نهائيًا سابقًا. تستخدم السمة Clickable الآن تأثير التموّج كإشارة تلقائية (إذا كان لديك MaterialTheme {} مضبوط في تطبيقك)، لذا في معظم الحالات، يمكنك استخدام السمة Clickable والحصول على إشارة التموّج مجانًا. إذا كنت بحاجة إلى تخصيص المَعلمة color / size / bounded الخاصة بالتموّج، يمكنك إنشاء RippleIndication يدويًا وتمريرها إلى clickable كمَعلمة indication. (I663b2، b/155375067)
تمت إزالة عملية إلغاء نهائية متوقّفة نهائيًا للعنصر القابل للإنشاء FilledTextField (I7f8f8)
إعادة تسمية عنصر Button (الذي يحتوي على الإعدادات التلقائية التي تستخدمها وظيفة Button) إلى ButtonConstants (I7c5f7، b/159687878)
يتصرف الآن موضع المحتوى الخاص بالزر كصف (مفيد عندما تحتاج إلى عرض رمز مع نص، راجِع الأمثلة في مقالة كيفية كتابة الزر) (I0ff10، b/158677863)
تم إيقاف RadioGroup وRadioGroupItem نهائيًا. استخدِم Box مع Modifier.selectable وRow وColumn لإنشاء مجموعة مناسبة من خيارات زر الاختيار حسب تصميمك (I7f5cf وb/149528535).
تمّت إضافة حقل نصي محدّد بخطوط Material (I1a518)
تم إيقاف androidx.ui.foundation.TextFieldValue وandroidx.ui.input.EditorValue نهائيًا. تم أيضًا إيقاف العناصر القابلة للإنشاء TextField وFilledTextField وCoreTextField التي تستخدم هذا النوع نهائيًا. يُرجى استخدام androidx.ui.input.TextFieldValue بدلاً من ذلك (I4066d، b/155211005)
لا يحتوي TabRow.TabPosition على موضع بوحدة dp، بل بوحدة IntPx (I34a07، b/158577776)
تم استبدال استخدام IntPx بـ Int، واستبدال IntPxPosition بـ IntOffset. تم استبدال IntPxSize بـ IntSize. (Ib7b44)
من أجل دمج عدد الفئات المستخدَمة لتمثيل معلومات الحجم، يجب توحيد استخدام فئة Size بدلاً من PxSize. يوفّر ذلك مزايا فئة مضمّنة للاستفادة من قيمة طويلة لتعبئة قيمتَين عائمتَين لتمثيل العرض والارتفاع كقيم عائمة. (Ic0191)
إيقاف Modifier.ripple نهائيًا تستخدم السمة Clickable الآن تأثير التموّج كإشارة تلقائية (إذا كان لديك MaterialTheme {} مضبوط في تطبيقك)، لذا في معظم الحالات، يمكنك استخدام السمة Clickable والحصول على إشارة التموّج مجانًا. إذا كنت بحاجة إلى تخصيص المَعلمة color / size / bounded الخاصة بالتموّج، يمكنك إنشاء RippleIndication يدويًا وتمريرها إلى clickable كمَعلمة indication. (I101cd، b/155375067)
تمت إعادة تصميم واجهة برمجة التطبيقات Scaffold: تم تغيير أسماء بعض المَعلمات، وأضفنا مَعلمات جديدة لتحسين التخصيص. تمت إضافة أداة الحصول على البيانات للاستعلام عن أحجام Fab وTopBar وBottomBar (I0e7ce)
تمت إضافة المكوّن DropdownMenu في ui-material، وهو تنفيذ لقائمة Material Design. (I9bb3d)
السماح بإظهار/إخفاء لوحة المفاتيح البرمجية يدويًا باستخدام SoftwareKeyboardController (Ifb9d6، b/155427736)
تمت إضافة Modifier.indication إلى حزمة الأساس. يمكنك استخدامها لعرض مؤشر الضغط/السحب/غير ذلك على العناصر التفاعلية المخصّصة (I8425f، b/155287131).
عمليات تنفيذ CanvasScope الموحّدة بحيث لا يتوفّر الآن سوى DrawScope و ContentDrawScope تمت إعادة تسمية CanvasScope إلى DrawScope. تم تعديل DrawScope لتنفيذ واجهة Density وتوفير LayoutDirection تم حذف فئة DrawScope الفرعية في ContentDrawScope تم تعديل Painter وPainterModifier لعدم الاحتفاظ بخاصية RTL بشكل منفصل، لأنّ DrawScope يوفّرها بدون الحاجة إلى توفيرها يدويًا (I1798e)
تمت إعادة تسمية Emphasis.emphasize() إلى Emphasis.applyEmphasis() (Iceebe)
تتّبع الأزرار غير المفعّلة الآن مواصفات "التصميم المتعدّد الأبعاد" (I47dcb، b/155076924)
توفير دعم إجراء محرّك أساليب الإدخال (IME) والتحويل المرئي ونوع لوحة المفاتيح في FilledTextField (I1f9cf، b/155075201)
تضيف هذه السمة المَعلمة strokeWidth إلى CircularProgressIndicator لتخصيص حجم الحدّ الخارجي. لتغيير حجم الخط (الارتفاع) الخاص بـ LinearProgressIndicator، يمكنك استخدام Modifier.preferredHeight() أو أداة تعديل أخرى للحجم. (Icea16، b/154919081)
تضيف هذه السمة المَعلمة strokeWidth إلى CircularProgressIndicator لتخصيص حجم الحدّ الخارجي. لتغيير حجم الخط (الارتفاع) الخاص بـ LinearProgressIndicator، يمكنك استخدام Modifier.preferredHeight() أو أداة تعديل أخرى للحجم. (Icea16، b/154919081)
تمت إضافة واجهة برمجة تطبيقات للخانة من أجل الرموز البادئة واللاحقة في FilledTextField ومعالجة حالة الخطأ (Ic12e0)
تم تغيير اللون التلقائي لأزرار الإجراء العائم (FAB) وأزرار الإجراء العائم الموسّعة إلى MaterialTheme.colors.secondary. (I3b9b9، b/154118816)
تم استبدال جميع استخدامات Color القابلة للتصغير في واجهة برمجة التطبيقات بأخرى غير قابلة للتصغير، واستخدام Color.Unset بدلاً من null (Iabaa7)
تمت إعادة تسمية EdgeInsets إلى InnerPadding. تمت إعادة تسمية المَعلمة innerPadding لأزرار Material إلى padding. (I66165)
أصبح شريط التمرير الآن بلا حالة. على المستخدمين تمرير الحالة وتعديلها بأنفسهم، تمامًا كما هو الحال في أي عنصر تحكّم آخر. (Ia00aa)
تمت إزالة StaticDrawer. إذا كنت بحاجة إلى ذلك، استخدِم Box مع عرض محدّد في مواصفات المواد بدلاً من ذلك (I244a7).
تمت إضافة تنفيذ "حقل النص المملوء" وفقًا لمواصفات "التصميم المتعدد الأبعاد" (Ic75cd)
تمت إضافة مَعلمة معدِّل إلى ListItem وإعادة ترتيب المَعلمات لتعزيز نص lambda اللاحق (I66e21)
تضيف هذه السمة مَعلمة منشئ defaultFontFamily إلى Typography، ما يتيح تحديد مجموعة الخطوط التلقائية التي سيتم استخدامها لأي TextStyles مقدَّمة لا تتضمّن مجموعة خطوط. (I89d07)
تمت إزالة "جداول بيانات المواد" مؤقتًا من مساحة واجهة برمجة التطبيقات. (Iaea61)
إعادة تسمية المَعلمات في العنصر القابل للإنشاء Divider (Ic4373)
الأطفال (Ia6d19)
إزالة MaterialTheme.emphasisLevels، واستخدام EmphasisAmbient.current بدلاً من ذلك لاسترداد مستويات التركيز (Ib5e40)
تم تعديل نظام سمات الأشكال وفقًا لمواصفات Material Design. يمكنك الآن توفير أشكال صغيرة ومتوسطة وكبيرة لتستخدمها معظم المكوّنات (Ifb4d1).
تم تغيير واجهات برمجة التطبيقات MaterialTheme، مثل MaterialTheme.colors() وMaterialTheme.typography()، لتصبح خصائص بدلاً من دوال. أزِل الأقواس من المكالمات الحالية، ولا يُتوقّع حدوث أي تغيير في السلوك. (I3565a)
تمت إعادة تصميم واجهات برمجة التطبيقات FloatingActionButton لقبول تعبيرات lambda قابلة للإنشاء بدلاً من الأنواع الأساسية. يمكنك الاطّلاع على النماذج المعدّلة لمعلومات الاستخدام. (I00622)
إضافة المَعلمة
enabledإلى Checkbox وSwitch وToggleable (I41c16)أصبح Ripple الآن أداة تعديل. على الرغم من أنّه لم يتم تحويل Clickable بعد، فإنّ الاستخدام المقترَح هو
Clickable(onClick = { ... }, modifier = ripple())(Ie5200، b/151331852، b/150060763)تم نقل Surface وCard من androidx.ui.material.surface إلى androidx.ui.material (I88a6d، b/150863888)
يحتوي كل من Button وFloatingActionButton وClickable الآن على المَعلمة
enabledالمنفصلة. تمت إعادة تسمية بعض المَعلمات في "الزر" أو إعادة ترتيبها. (I54b5a)تمت إعادة تسمية Image إلى ImageAsset للتمييز بشكل أفضل بين بيانات Image وImage القابل للإنشاء القادم المستخدَم للمشاركة في التنسيق ورسم المحتوى. _Body:تم إنشاء طريقة إضافة Bitmap.asImageAsset() إلى android.graphics.Bitmap، لإنشاء مثيل من ImageAsset مفيد لدمج تطوير تطبيقات Android التقليدية مع إطار عمل Compose (Id5bbd)
تمت إزالة واجهة برمجة التطبيقات Snackbar API التي تتضمّن مَعلمات السلسلة لصالح استخدام التحميل الزائد الذي يقبل تعبيرات lambda قابلة للإنشاء. الاطّلاع على نماذج محدَّثة لمعلومات الاستخدام (I55f80)
إعادة تصميم واجهات برمجة التطبيقات الخاصة بعلامات التبويب لقبول تعبيرات lambda
textوicon(Ia057e)تمت إضافة مكوّن BottomNavigation، راجِع المستندات والأمثلة للحصول على معلومات حول الاستخدام (I731a0)
تمت إضافة Icon وIconButton وIconToggleButton، وإزالة AppBarIcon. يمكنك استبدال الاستخدامات الحالية لـ AppBarIcon بـ IconButton مباشرةً، وستتضمّن الآن مساحة اللمس الصحيحة. راجِع الأمثلة للحصول على معلومات حول الاستخدام، وراجِع الرموز للحصول على رموز Material Icons المتوفّرة التي يمكنك استخدامها مباشرةً مع هذه المكوّنات. (I96849)
تم استبدال ButtonStyle بوظائف مميزة وإزالة التحميل الزائد للنص (السلسلة). يمكنك الاطّلاع على نماذج محدّثة لمعلومات الاستخدام. (If63ab، b/146478620، b/146482131)
إعادة تسمية المعدِّل
BorderإلىDrawBorder(I8ffcc)لم يعُد LayoutCoordinates يتضمّن سمة موضع. لا تكون السمة position منطقية عند استخدام LayoutModifiers أو التدوير أو تغيير الحجم. بدلاً من ذلك، على المطوّرين استخدام parentCoordinates وchildToLocal() لاحتساب عملية التحويل من LayoutCoordinate إلى أخرى.
تستخدم LayoutCoordinates السمة IntPxSize للمقاس بدلاً من PxSize. تستخدِم التصميمات أحجامًا بالبكسل من الأعداد الصحيحة، لذا يجب أن تستخدِم جميع أحجام التصميمات أعدادًا صحيحة وليس قيمًا ذات فاصلة عشرية. (I9367b)
تغييرات غير متوافقة في واجهة برمجة التطبيقات ambients API راجِع مستندات السجلّ و
Ambient<T>للحصول على التفاصيل (I4c7ee، b/143769776)تمت إضافة مكوّن مواد البناء. أدوات السقالات (I7731b)
تم استبدال DrawBorder بمعدِّل الحدود (Id335a)
إصلاح الأخطاء
- تم إيقاف FocusModifier نهائيًا لصالح Modifier.focus وModifier.focusRequester وModifier.focusObserver. تم إيقاف FocusState وFocusDetailedState نهائيًا واستبدالهما بـ FocusState2 (I46919 وb/160822875 وb/160922136)
- تم إيقاف VerticalScroller وHoriziontalScroller نهائيًا. استخدِم ScrollableColumn وScrollableRow لتوفير تجربة مدمجة مع سلوك Column/Row ومَعلماتهما، أو استخدِم Modifier.verticalScroll وModifier.horizontalScroll على العنصر الخاص بك. وبالمثل، تم إيقاف ScrollerPosition نهائيًا واستبداله بـ ScrollState (I400ce وb/157225838 وb/149460415 وb/154105299).
- تمت إعادة تصميم واجهتَي برمجة التطبيقات Modifier.draggable وModifier.scrollable. تمت إزالة DragDirection لصالح Orientation. تم تبسيط حالة "مطلوب للتمرير". تمت إعادة تسمية ScrollableState إلى ScrollableController (Iab63c، b/149460415)
- تمت إعادة تسمية
runOnIdleComposeإلىrunOnIdle(I83607) - تستخدم خصائص الدلالات ذات القيمة الواحدة الآن أسلوب استدعاء. على سبيل المثال، تتم الآن كتابة "semantics { hidden = true }" على النحو التالي: "semantics { hidden() }". (Ic1afd، b/145951226، b/145955412)
- تمت إعادة تسمية العديد من واجهات برمجة التطبيقات الخاصة بالاختبار لتكون أكثر سهولة في الاستخدام. تمت إعادة تسمية جميع واجهات برمجة التطبيقات findXYZ لتصبح onNodeXYZ. تمت إعادة تسمية جميع واجهات برمجة التطبيقات doXYZ إلى performXYZ. (I7f164)
- تم تغيير واجهة برمجة التطبيقات Transition API لعرض TransitionState بدلاً من تمريرها إلى العناصر التابعة. ويجعل ذلك واجهة برمجة التطبيقات أكثر اتساقًا مع واجهات برمجة التطبيقات animate(). (I24e38)
- تمت إضافة فئة وحدة IntBounds، وهي تمثّل حدود وحدات البكسل الصحيحة من التصميم. تم تعديل واجهة برمجة التطبيقات الخاصة بـ PopupPositionProvider لاستخدامها. (I0d8d0، b/159596546)
- تمت إضافة علامة اختيارية جديدة useUnmergedTree إلى أدوات البحث. (I2ce48)
- تمت إزالة واجهات برمجة التطبيقات القديمة لاختبار الحجم. (Iba0a0)
- Removed Shader inline class that wrapped the NativeShader expect class Renamed NativeShader to Shader. لم يضِف صف Shader المضمّن أي قيمة إلى مساحة واجهة برمجة التطبيقات، وكان صفًا مضمّنًا، لذا استخدِم صف NativeShader مباشرةً. (I25e4d)
- تتضمّن الآن النوافذ المنبثقة ومربّعات الحوار والقوائم السمة MaterialTheme السياقية (Ia3665، b/156527485)
- أصبحت القائمة المنسدلة Material DropdownMenu قابلة للتمرير. (Ide699)
- تمت إزالة مَعلمة اتجاه التنسيق من كتلة القياس الخاصة بالدالة Layout(). ومع ذلك، يتوفّر اتجاه التنسيق داخل دالة رد الاتصال من خلال عنصر نطاق القياس (Ic7d9d).
- استخدِم AnimationSpec بدلاً من AnimationBuilder في واجهات برمجة التطبيقات ذات المستوى الأعلى لتوضيح مفهوم مواصفات الحركة الثابتة -حسِّن لغة تصميم النطاق (DSL) الخاصة بالانتقال من خلال إزالة شرط تعبير lambda لإنشاء AnimationSpec، مثل tween وspring. بدلاً من ذلك، يتم تلقّي مَعلمات الدالة الإنشائية مباشرةً. -تحسين سهولة الاستخدام العامة لـ AnimationSpec من خلال توفير أدوات إنشاء بدلاً من الاعتماد على أدوات الإنشاء -تغيير مدة KeyFrames وTween وتأخيرهما إلى Int، ما يؤدي إلى إلغاء عمليات تحويل الأنواع غير الضرورية وتجاوز تحميل الطرق (لدعم كل من Long وInt). (Ica0b4)
- يظهر زر التبديل الآن في حالة غير مفعّلة عندما تكون قيمة
enabledهي false (If4624، b/155941869، b/159331694) - تمت إعادة تسمية Modifier.tag إلى Modifier.layoutId لتجنُّب الخلط بينه وبين Modifier.testTag. (I995f0)
- أصبحت مواضع خط المحاذاة Int التي يتم عرضها من Placeable#get(AlignmentLine) غير فارغة الآن. في حال عدم توفّر خط المحاذاة المطلوب البحث عنه، سيتم عرض AlignmentLine.Unspecified. (I896c5، b/158134875)
تمت إعادة تصميم فئة Radius لتصبح فئة مضمّنة. تمت إزالة طرق إنشاء العناصر المصاحبة لصالح دالة الإنشاء مع مَعلمة تلقائية لجعل نصف القطر على المحور y مطابقًا لنصف القطر الإلزامي للمَعلمة على المحور x.
تم تعديل DrawScope.drawRoundRect لاستخدام مَعلمة Radius واحدة بدلاً من قيمتَين منفصلتَين من النوع float للنطاق الجغرافي على طول المحورَين x وy (I46d1b)
من أجل توحيد عدد الفئات المستخدَمة لتمثيل معلومات تحديد المواقع، يجب توحيد استخدام فئة Offset بدلاً من PxPosition. ويوفّر ذلك مزايا فئة مضمّنة للاستفادة من قيمة طويلة لتعبئة قيمتَين عائمتَين لتمثيل الإزاحتَين x وy الممثّلتَين كقيم عائمة. (I3ad98)
تم استبدال استخدام فئة Px في العديد من فئات Compose كجزء من عملية إعادة البناء الكبيرة للاعتماد فقط على Dp والأنواع الأساسية لمعلمات البكسل. تم حذف فئة Px بالكامل (I3ff33)
تم إيقاف المكوّن القابل للتبديل نهائيًا. استخدِم Modifier.toggleable بدلاً من ذلك (I35220، b/157642842)
تم استبدال استخدام فئة Px في العديد من فئات Compose كجزء من عملية إعادة التصميم الكبيرة للاعتماد فقط على Dp والأنواع الأساسية لمعلمات البكسل (I086f4)
تم استبدال استخدام فئة Px في العديد من فئات Compose كجزء من عملية إعادة البناء الكبيرة للاعتماد فقط على Dp والأنواع الأساسية لمعلمات البكسل (Id3434)
تم استبدال استخدام فئة Px في العديد من فئات Compose كجزء من عملية إعادة التصميم الكبيرة للاعتماد فقط على Dp والأنواع الأساسية لمعلمات البكسل (I97a5a)
تم إصلاح مشكلة عدم استدعاء onClick لعناصر DropdonMenuItems. (I3998b، b/157673259)
تم إيقاف استخدام MutuallyExclusiveSetItem نهائيًا. استخدِم Modifier.selectable بدلاً من ذلك. (I02b47، b/157642842)
تم إيقاف TestTag نهائيًا. استخدِم Modifier.testTag بدلاً من ذلك. (If5110، b/157173105)
يحتوي مؤشر TextField على صورة متحركة وامضة (Id10a7)
تم استبدال استخدام فئة Px في فئات Compose المختلفة كجزء من عملية إعادة التصميم الكبيرة للاعتماد فقط على Dp والأنواع الأساسية لمعلمات البكسل (I19d02)
توفّر أداة VerticalScroller الآن أداة Column بدون أي إعدادات إضافية. توفّر أداة HorizontalScroller الآن Row تلقائيًا. (Ieca5d، b/157020670)
تم استبدال استخدام فئة Px في العديد من فئات Compose كجزء من عملية إعادة البناء الكبيرة للاعتماد فقط على Dp والأنواع الأساسية لمعلمات البكسل (Iede0b)
تمت إعادة إتاحة Modifier.semantics للسماح باستخدامها مع المكوّنات ذات المستوى العالي. (I4cfdc)
تم تغيير واجهة برمجة التطبيقات الخاصة بمعدِّلات DrawLayer: تمت إعادة تسمية outlineShape إلى shape، وأصبحت القيمة التلقائية هي RectangleShape، كما أصبحت غير قابلة للتصغير. تمت إعادة تسمية clipToOutline إلى clip. تمت إزالة clipToBounds لأنّها مماثلة لـ clip == true مع RectangleShape (I7ef11 وb/155075735).
تم تعديل واجهات برمجة التطبيقات ذات المستوى الأعلى في Compose التي تعرض Canvas لعرض CanvasScope بدلاً من ذلك. ويؤدي ذلك إلى إزالة الحاجة إلى أن يحتفظ المستهلكون بكائنات Paint الخاصة بهم. بالنسبة إلى المستهلكين الذين ما زالوا بحاجة إلى الوصول إلى Canvas، يمكنهم استخدام طريقة drawCanvas الخاصة بالإضافة التي توفّر دالة ردّ نداء لإصدار أوامر الرسم باستخدام Canvas الأساسي. (I80afd)
تم إيقاف الدالة البرمجية القابلة للإنشاء AlignmentLineOffset نهائيًا، يُرجى استخدام المعدِّل relativePaddingFrom() بدلاً منها. تمت إزالة العنصر القابل للإنشاء CenterAlignmentLine. (I60107)
تم تغيير واجهة برمجة التطبيقات WithConstraints trailing lambda. بدلاً من مَعلمتَين، يتضمّن الآن نطاقًا للمستلِم يوفّر، بالإضافة إلى القيود وlayoutDirection، خصائص minWidth وmaxWidth وminHeight وmaxHeight في Dp (I91b9a وb/149979702).
تمت إضافة معدِّل التنسيق defaultMinSizeConstraints الذي يضبط قيود الحجم على التنسيق المغلَّف فقط عندما تكون القيود الواردة غير محدّدة (0 للحد الأدنى من القيود واللانهاية للحد الأقصى من القيود). (I311ea، b/150460257)
تمت إزالة FocusManagerAmbient. استخدِم FocusModifier.requestFocus للحصول على التركيز. (Ic4826)
تم إنشاء واجهة برمجة التطبيقات CanvasScope التي تتضمّن كائن Canvas لعرض مساحة واجهة برمجة تطبيقات للرسم بدون حالة وتصريحية. يتم تضمين عمليات التحويل ضمن نطاق المستقبِل الخاص بها، كما يتم تحديد نطاق معلومات الحجم ليشمل حدود الحواف الداخلية المقابلة. ولا يتطلّب ذلك من المستهلك الاحتفاظ بكائن حالة Paint الخاص به لتحديد عمليات الرسم.
تمت إضافة CanvasScopeSample، كما تم تعديل التطبيق التجريبي ليشمل عرضًا توضيحيًا للرسومات التعريفية (Ifd86d).
إضافة خيار تخصيص لون المؤشر إلى TextField (I6e33f)
يمكن الآن استخدام TextFieldValue مع TextField عند إعادة إنشاء النشاط عند استخدامه على النحو التالي:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }(I5c3ce، b/155075724)تمت إعادة تسمية LayoutModifier2 إلى LayoutModifier. (Id29f3)
تمت إزالة واجهة LayoutModifier المتوقّفة نهائيًا. (I2a9d6)
تم استبدال المَعلمة CoreTextField/TextField focusIdentifier بـ FocusNode من أجل الدمج مع نظام التركيز الفرعي. (I7ea48)
تحتوي دوال القياسات الجوهرية في Layout وLayoutModifier2 الآن على أداة استقبال IntrinsicMeasureScope التي توفّر واجهة برمجة تطبيقات طلبات البحث عن القياسات الجوهرية مع اتجاه التنسيق الذي يتم نشره ضمنيًا. (Id9945)
تمت إضافة Modifier.zIndex() جديد للتحكّم في ترتيب رسم العناصر التابعة ضمن تنسيق العنصر الرئيسي نفسه. تمت إعادة تسمية السمة elevation في DrawLayerModifier إلى shadowElevation ولم تعُد تتحكّم في ترتيب الرسم. تم تغيير ترتيب المَعلمات في DrawShadow: أصبحت قيمة الارتفاع هي الأولى والشكل هو الثاني مع استخدام RectangleShape تلقائيًا. (I20150، b/152417501)
تم نقل RectangleShape من androidx.ui.foundation.shape.* إلى androidx.ui.graphics.* (Ia74d5، b/154507984)
تعديل TextField API: تم دمج عمليات معاودة الاتصال onFocus وonBlur في عملية معاودة اتصال واحدة onFocusChange(Boolean) مع مَعلمة (I66cd3)
تمت إضافة المَعلمتَين verticalGravity وhorizontalGravity إلى Row وColumn على التوالي. (I7dc5a)
تم تعديل wrapContentWidth وwrapContentHeight لتوقّع محاذاة عمودية أو أفقية بدلاً من أي محاذاة. تم تعديل أداة تعديل الجاذبية لقبول المحاذاة العمودية أو الأفقية. تم تعديل الصف والعمود والحزمة لتتوافق مع عمليات المحاذاة المستمرة المخصّصة. (Ib0728)
تم إنشاء واجهة برمجة التطبيقات PixelMap API لتتيح الاستعلام عن معلومات البكسل من ImageAsset. (I69ad6)
إزالة ProvideContentColor، واستخدام ContentColorAmbient مباشرةً مع
Providers(Iee942)تمت إعادة تسمية الوحدة ui-text-compose لتصبح ui-text. تحتوي الوحدة ui-text الآن على دوال CoreText وCoreTextField القابلة للإنشاء (Ib7d47).
تمت إعادة تسمية وحدة ui-text إلى ui-text-core (I57dec)
نقلنا دوال CoreText وCoreTextField القابلة للإنشاء ضمن ui-framework/CoreText إلى ui-text-compose. يمكنك تضمين ui-text-compose في مشروعك. (I32042)
تحسين واجهة برمجة التطبيقات DrawModifier:
- تم إنشاء نطاق المتلقّي للدالة draw() ContentDrawScope
- تمت إزالة جميع المَعلمات من draw()
- تتضمّن DrawScope الواجهة نفسها التي كانت تتضمّنها CanvasScope السابقة
- يحتوي ContentDrawScope على طريقة drawContent() (Ibaced، b/152919067)
أصبح
runOnIdleComposeوrunOnUiThreadالآن دالتَين عامتَين بدلاً من طريقتَين في ComposeTestRule. (Icbe8f)تم نقل عوامل تشغيل تفويض السمة [Mutable]State إلى الإضافات لإتاحة تحسينات تفويض السمة في Kotlin 1.4. على المتصلين إضافة عمليات استيراد لمواصلة استخدام
by state { ... }أوby mutableStateOf(...). (I5312c)تمت إضافة positionInParent وboundsInParent إلى LayoutCoordinates. (Icacdd، b/152735784)
تم إيقاف ColoredRect نهائيًا. استخدِم Box(Modifier.preferredSize(width, height).drawBackground(color)) بدلاً من ذلك. (I499fa، b/152753731)
تمت إعادة تسمية LayoutResult إلى MeasureResult. (Id8c68)
تمت إضافة LayoutModifier2، وهي واجهة برمجة تطبيقات جديدة لتحديد معدِّلات التنسيق، وتم إيقاف LayoutModifier نهائيًا (If32ac)
استبدال المعدِّل وعلامة الجمع بدوال إضافة المصنع (I225e4)
تم نقل السمة Draggable إلى المعدِّل (Id9b16، b/151959544)
تم إيقاف الدالة البرمجية القابلة للإنشاء ParentData نهائيًا. عليك إما إنشاء معدِّل ينفّذ واجهة ParentDataModifier، أو استخدام معدِّل LayoutTag إذا كنت بحاجة ببساطة إلى وضع علامة على عناصر التنسيق الفرعية للتعرّف عليها داخل كتلة القياس. (I51368، b/150953183)
تم إيقاف دالة Center البرمجية القابلة للإنشاء. يجب استبدالها إما بالمعدِّل LayoutSize.Fill + LayoutAlign.Center، أو بأحد العناصر القابلة للإنشاء Box أو Stack مع تطبيق المعدِّلات المناسبة (Idf5e0).
تمت إضافة واجهة برمجة التطبيقات VectorPainter API لاستبدال واجهة برمجة التطبيقات الحالية الخاصة بالعناصر الفرعية للرسومات المتجهة. نتيجة التركيب الفرعي هي كائن VectorPainter بدلاً من DrawModifier. تم إيقاف الدوال البرمجية السابقة القابلة للإنشاء DrawVector نهائيًا واستبدالها بـ VectorPainter.
تمت إعادة تسمية واجهة برمجة التطبيقات Image(Painter) إلى PaintBox(Painter) تم إنشاء عنصر Vector قابل للإنشاء يعمل مثل العنصر Image القابل للإنشاء، ولكن باستخدام VectorAsset بدلاً من ImageAsset (I9af9a، b/149030271)
تمت إعادة تسمية LayoutFlexible إلى LayoutWeight. تمت إعادة تسمية المَعلمة "ضيق" إلى "ملء". (If4738)
تمت إزالة RepaintBoundary واستبدالها بـ DrawLayerModifier (I00aa4)
تم تغيير DrawVector من دالة قابلة للإنشاء عادية إلى عرض Modifier drawVector() الذي سيرسم المتّجه كخلفية للتصميم. (I7b8e0)
تم استبدال الدالة القابلة للإنشاء Opacity بالمعدِّل drawOpacity. (I5fb62)
استبدِل الدالة البرمجية القابلة للإنشاء Clip بالمعدِّل drawClip(). DrawClipToBounds هو معدِّل مناسب للاستخدام عندما تحتاج فقط إلى قص المحتوى ضمن حدود الطبقة باستخدام شكل مستطيل. (If28eb)
تم استبدال الدالة drawShadow() المعدِّلة بالدالة DrawShadow القابلة للإنشاء. يتم الآن رسم الظلال كجزء من LayerModifier. (I0317a)
تمت إضافة LayerModifier، وهو معدِّل يتيح إضافة RenderNode إلى Layout. ويتيح ضبط القص والشفافية والتدوير والتوسيع والظلال. سيحلّ هذا العنصر محلّ RepaintBoundary. (I7100d، b/150774014)
تم نقل androidx.compose.ViewComposer إلى androidx.ui.node.UiComposer تمت إزالة androidx.compose.Emittable. كانت هذه الفئة مكرّرة مع ComponentNode. تمت إزالة androidx.compose.ViewAdapters. لم تعُد هذه الميزة من حالات الاستخدام المتاحة. تم إيقاف Compose.composeInto نهائيًا. يمكنك استخدام
setContentأوsetViewContentبدلاً من ذلك. تم إيقاف نهائيًا استخدام Compose.disposeComposition. استخدِم طريقةdisposeفيCompositionالتي تعرضهاsetContentبدلاً من ذلك. تم نقل androidx.compose.Compose.subcomposeInto إلى androidx.ui.core.subcomposeInto تمت إعادة تسمية ComponentNode#emitInsertAt إلى ComponentNode#insertAt تمت إعادة تسمية ComponentNode#emitRemoveAt إلى ComponentNode#removeAt تمت إعادة تسمية ComponentNode#emitMode إلى ComponentNode#move (Idef00)تم إنشاء دالة Created Image قابلة للإنشاء للتعامل مع تغيير الحجم/التنسيق بالإضافة إلى عرض ImageAsset معيّن على الشاشة. تتيح هذه الدالة البرمجية القابلة للإنشاء أيضًا رسم أي مثيل Painter عشوائي مع مراعاة حجمه الأصلي بالإضافة إلى توفير حجم ثابت أو حد أدنى للحجم (Ibcc8f).
تم إيقاف العنصر Wrap المركّب نهائيًا. يمكن استبدالها إما باستخدام المعدِّل LayoutAlign أو باستخدام العنصر القابل للإنشاء Stack (Ib237f).
إضافة المَعلمة LayoutDirection إلى WithConstraints (I6d6f7)
تم نشر اتجاه التنسيق من عقدة التنسيق الرئيسية إلى العناصر الفرعية. تمت إضافة أداة تعديل اتجاه التنسيق. (I3d955)
يتوافق مكوّن الحزمة مع اتجاه الكتابة من اليمين إلى اليسار (Ic9e00)
تمت إزالة الدالة البرمجية القابلة للإنشاء DrawShape. استخدِم المعدِّل DrawBackground بدلاً من ذلك. (I7ceb2)
إتاحة الاتجاه من اليمين إلى اليسار في أداة التعديل LayoutPadding (I9e8da)
تمت إضافة AdapterList، وهو مكوّن قائمة قابلة للتمرير لا يعرض سوى العناصر المرئية. تشمل المشاكل المعروفة حاليًا أنّه عمودي فقط ولا يتعامل بشكل كامل مع جميع حالات التغييرات التي تطرأ على العناصر التابعة له. (Ib351b)
تم تعديل العلامة
ComposeFlags.COMPOSER_PARAMلتصبحtrue، ما سيؤدي إلى تغيير استراتيجية إنشاء الرمز الإضافي لـ Compose. على مستوى عالٍ، يؤدي ذلك إلى إنشاء دوال @Composable مع مَعلمة اصطناعية إضافية يتم تمريرها إلى استدعاءات @Composable اللاحقة لكي يتمكّن وقت التشغيل من إدارة التنفيذ بشكلٍ سليم. هذا تغيير كبير في التوافق الثنائي، ولكن من المفترض أن يحافظ على التوافق على مستوى المصدر في جميع الاستخدامات المسموح بها لـ Compose. (I7971c)تمت إضافة مكوّن Canvas. تستهلك هذه الدالة البرمجية القابلة للإنشاء بعض المساحة (التي يوفّرها المستخدم) وتتيح لك الرسم باستخدام CanvasScope (I0d622).
تم دمج Density وDensityScope في واجهة واحدة. بدلاً من ambientDensity()، يمكنك الآن استخدام DensityAmbient.current. بدلاً من withDensity(density) فقط with(density) (I11cb1)
تم تغيير LayoutCoordinates لجعل providedAlignmentLines مجموعة بدلاً من خريطة، وتم جعل LayoutCoordinates تنفّذ عامل التشغيل get() بدلاً من ذلك لاسترداد قيمة. يسهّل ذلك على المعدّلات تعديل قيمة واحدة أو أكثر من المجموعة بدون إنشاء مجموعة جديدة لكل معدّل. (I0245a)
تعرض أدوات التمرير الآن سلوك حركة التمرير السريع الأصلي في Android. (I922af، b/147493715)
تحسينات على مساحة واجهة برمجة التطبيقات الخاصة بالقيود (I0fd15)