مادة الإنشاء
androidx.compose.material
androidx.compose.material.icons
(الاطّلاع على المستندات المرجعية لواجهة برمجة التطبيقات لكل حِزم الإنشاء)
التعديل الأخير | الإصدار المستقر | سحب المرشح | الإصدار التجريبي | إصدار أولي |
---|---|---|---|---|
21 آب (أغسطس) 2024 | 1.6.8 | 1.7.0-rc01 | - | - |
البنية
الإنشاء عبارة عن مزيج من 7 معرّفات مجموعات Maven ضمن androidx
. كل مجموعة
يحتوي على مجموعة فرعية مستهدفة من الوظائف، لكل منها مجموعة من الوظائف
الملاحظات.
يوضح هذا الجدول المجموعات والروابط لكل مجموعة من ملاحظات الإصدار.
مجموعة | الوصف |
---|---|
compos.animation | يمكنك إنشاء صور متحركة في تطبيقات Jetpack Compose لإثراء تجربة المستخدم. |
compose.compiler | يمكنك تحويل دوال @Composable وتفعيل التحسينات باستخدام المكون الإضافي لبرنامج التحويل البرمجي لـ Kotlin. |
composation.foundation | يمكنك كتابة تطبيقات Jetpack Compose باستخدام الوحدات الأساسية الجاهزة للاستخدام وتوسيع الأساس لإنشاء أجزاء نظام التصميم الخاصة بك. |
compose.material | يمكنك إنشاء واجهات المستخدم في Jetpack Compose باستخدام عناصر التصميم المتعدد الأبعاد. وهي نقطة الدخول ذات المستوى الأعلى في Compose، والتي تم تصميمها لتوفير مكونات تطابق العناصر المذكورة في www.material.io. |
compose.material3 | يمكنك إنشاء واجهات المستخدم في Jetpack Compose باستخدام مكونات Material Design 3، وهي المراحل المتطوّرة التالية في Material Design. تتضمّن المادة 3 تصاميم ومكوّنات محدّثة وميزات تخصيص Material You مثل الألوان الديناميكية، وهي مصممة لتكون متوافقة مع النمط المرئي الجديد في Android 12 وواجهة مستخدم النظام. |
compose.runtime | هي الوحدات الأساسية التي يستند إليها نموذج البرمجة وإدارة الحالة في Compose، بالإضافة إلى وقت التشغيل الأساسي الذي يستهدفه المكوِّن الإضافي Compose Compiler Plugin. |
compos.ui | يجب استخدام المكونات الأساسية لواجهة مستخدم الإنشاء للتفاعل مع الجهاز، بما في ذلك التنسيق والرسم والإدخال. |
إعلان التبعيات
لإضافة تبعية إلى Compose، يجب إضافة مستودع Google Maven إلى مشروعك. الاطّلاع على مستودع Maven من Google لمزيد من المعلومات.
أضِف الملحقات التابعة للعناصر التي تحتاجها في ملف build.gradle
لـ
لتطبيقك أو الوحدة التي تستخدمها:
Groovy
dependencies { implementation "androidx.compose.material:material:1.6.8" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.6.8") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
لمزيد من المعلومات حول العناصر الاعتمادية، يُرجى الاطّلاع على إضافة تبعيات الإصدار.
ملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كان لديك أفكار لتحسين هذه المكتبة. يُرجى إلقاء نظرة على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية عن طريق بالنقر فوق زر النجمة.
يُرجى الاطّلاع على مستندات أداة تتبُّع المشاكل. لمزيد من المعلومات.
الإصدار 1.7
الإصدار 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 على عمليات التنفيذ هذه.
التغييرات في واجهة برمجة التطبيقات
- تم تحديث واجهة برمجة التطبيقات للحصول على روابط ذات صلة بالمواد في النصوص. وعلى وجه التحديد، تمت إزالة الطرق من
TextDefaults
لإنشاءLinkAnnotations
ذي موضوع معيّن وتحليل رموز HTML باستخدام روابط ذات مواضيع محدّدة. بدلاً من ذلك، تمت إضافة فئةTextLinkStyles
تسمح بتصميم الروابط كمَعلمة في النص القابل للإنشاء. (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
. يمكن للمستخدمين دمج ومطابقة إصدارات مكتبات إنشاء الرسائل الأساسية (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
جديد يتيح استخدام أوراق البيانات السفلية كوجهات عند استخدام ميزة إنشاء التنقل. ويحل هذا محل مكتبة مواد التنقل المصاحبة. (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
هي المعلمة الأخيرة لتجنُّب الالتباس مع لاحقة lambdas. تعرض الدالة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
نهائيًا بسبب موجة المواد، مع إضافة موجة جديدة وواجهات برمجة تطبيقاتRippleConfiguration
إلى المواد ومكتبات أنظمة التصميم الأخرى.إنّ مكونات 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
" في درج قابل للإنشاء لتحقيق الوظيفة السابقة. يمكنك الانتقال إلىBottomSheetScaffoldWithDrawerSample
للاطّلاع على مثال. (I1dcc8)
التغييرات في واجهة برمجة التطبيقات
- تم تقديم علامة مؤقتة لتحديد ما إذا كان يجب على سكافولد قياس الأطفال أثناء القياس أو أثناء الوضع. سيتم قياس هذا تلقائيًا في القياس. إذا كنت تواجه مشاكل في السلوك الجديد، يُرجى الإبلاغ عن المشكلة. (If6e3b)
الإصدار 1.6.0-alpha05
6 أيلول (سبتمبر) 2023
تم طرح androidx.compose.material:material-*:1.6.0-alpha05
. يحتوي الإصدار 1.6.0-alpha05 على هذه عمليات التنفيذ.
الميزات الجديدة
- تمت إضافة دعم الرموز التي تتم مزامنتها تلقائيًا عند عرضها بتنسيقات من اليمين إلى اليسار. توفر الأيقونات في الوحدات المخصصة لتشكيلات المادة الأساسية والأشكال الممتدة حاليًا مجموعات رموز إضافية لدعم النسخ المطابق التلقائي عندما يسمح الرمز بذلك. تبدأ المجموعات الجديدة بـ
Icons.AutoMirrored.Filled...
، وما إلى ذلك، وتحمل رموزًا تتم مزامنتها تلقائيًا مع تنسيقات من اليمين إلى اليسار. اطّلع على قائمة رموز المواد للحصول على قائمة بالرموز التي يمكن (ويجب) مزامنتها على الجهاز وفي السحابة الإلكترونية.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة دعم الرموز التي تتم مزامنتها تلقائيًا عند عرضها بتنسيقات من اليمين إلى اليسار. توفر الأيقونات في الوحدات المخصصة لتشكيلات المادة الأساسية والأشكال الممتدة حاليًا مجموعات رموز إضافية لدعم النسخ المطابق التلقائي عندما يسمح الرمز بذلك. تبدأ المجموعات الجديدة بـ
Icons.AutoMirrored.Filled...
، وما إلى ذلك، وتحمل رموزًا تتم مزامنتها تلقائيًا مع تنسيقات من اليمين إلى اليسار. اطّلع على قائمة رموز المواد للحصول على قائمة بالرموز التي يمكن (ويجب) مزامنتها على الجهاز وفي السحابة الإلكترونية. تم وضع علامة على خصائص الرموز التي سبق تقديمها لهذه الرموز على أنّها متوقّفة نهائيًا، ويتم تقديم اقتراح لمجموعة بديلة للمساعدة في عملية نقل البيانات. في حال لم تتوفّر لك أي معالجة خاصة للرموز على النسخ المطابق في الوقت الفعلي (RTL)، ننصحك بالانتقال إلى المجموعة الجديدة من الرموز. على سبيل المثال، يجب إعادة ضبط قيمةIcons.Filled.ArrowBack
إلىIcons.AutoMirrored.Filled.ArrowBack
. (I4b511)
الإصدار 1.6.0-alpha04
23 آب (أغسطس) 2023
تم طرح androidx.compose.material:material-*:1.6.0-alpha04
. يحتوي الإصدار 1.6.0-alpha04 على هذه عمليات التنفيذ.
إصلاح الأخطاء
- تم إصلاح المشكلة المتمثلة في محاولة بعض المكونات التي تستخدم
Subcomposition
(مثلBottomSheetScaffold
) داخل سقالة داخلLookaheadScope
قراءة حجمها في وقت مبكر جدًا. (If2c5d) - تم إصلاح طريقة احتساب
offset
فيDropdownMenu
بحيث تعتمد إزاحة 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
في المادة 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
(in sp) الصري إلىTextStyle
s منTypography
. يمكنك الرجوع إلى مستندات واجهة برمجة التطبيقات إذا أردت تخصيص هذه القيم، والاطّلاع على مشاركة المدونة للحصول على شرح مفصَّل لهذه التغييرات. (Icabc3 وI3f801 وI04c03)
التغييرات في واجهة برمجة التطبيقات
- تم إيقاف واجهات برمجة تطبيقات
Swipeable
للمواد نهائيًا. يُرجى الاطّلاع على واجهات برمجة تطبيقات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
التغييرات في واجهة برمجة التطبيقات
- تم تضمين التغييرات في واجهات برمجة التطبيقات scrollable1 API في
BottomSheetScaffold
. تمت إعادة تسمية معلَمةconfirmStateChange
الخاصة بـBottomSheetState
إلىconfirmValueChange
. تعرض الدالةprogress
الآن كقيمة عائمة. "animateTo
" و"snapTo
" داخليان. يمكنك استخدامexpand()
وcollapse()
بدلاً منها. تمّت إزالة كلّ منdirection
وoverflow
. تم استبدال الحقل "offset
" بالعنوان "requireOffset()
". I323b4 - وضع علامة على الدالة
snapTo
في الدرج كواجهة برمجة تطبيقات غير تجريبية. (Ib9c18، b/261425368) - تمت إضافة مَعلمة لون المسار لمؤشرات التقدّم الدائرية، ومَعلمة الحدّ الأقصى للضغط لكل من مؤشرات التقدّم الدائرية والخطية. (Ie668c، وb/216325962، وb/222964817)
- تمت إعادة تسمية
ModalBottomSheetState
وModalBottomSheetState.Saver
وconfirmStateChange
لـrememberModalBottomSheetState
إلىconfirmValueChange
. (Ib48d1) - إضافة
Modifier.minimumInteractiveComponentSize
ويمكن استخدامه للاحتفاظ بحجم 48.dp على الأقل لتمييز تفاعلات اللمس إذا كان حجم العنصر أصغر. (I33f58، b/258495559) - تم تضمين التغييرات في واجهات برمجة التطبيقات القابلة للتمرير السريع في
ModalBottomSheetLayout
. لم يعد animateTo لـModalBottomSheetState
يستخدم مَعلمةanimationSpec
وأصبحت الإزاحة المعروضة قابلة للقيم الفارغة. استخدِمrequireOffset
لطلب الإزاحة. (Ia2e79) - إضافة تعليق توضيحي
@JvmDefaultWithCompatibility
(I8f206) - تم استبدال التغييرات المضمّنة في واجهات برمجة التطبيقات القابلة للتمرير السريع في
animateTo
لـModalDrawer. DrawerState
بطرق الفتح والإغلاق وأصبحت الإزاحة خالية الآن. استخدِمrequireOffset
لطلب الإزاحة. (I3de9e) - تم تعديل "الأدراج" و"جداول بيانات Google" لتأخير الضغطات بشكل صحيح في حال تحولت الإيماءات إلى أحداث تمرير.
- تمت إضافة المعلمة
minLines
إلى نص المادة وTextField
وOutlinedTextField
، ما يسمح بضبط الحد الأدنى لارتفاع المكوِّن من حيث عدد الأسطر (I4af1d)
إصلاح الأخطاء
- يتم إصلاح المشكلة المتمثلة في عدم استهلاك
pullRefresh
للسرعة، ما أدى إلى عرض تمرير زائد. تم أيضًا تغيير توقيع واجهة برمجة التطبيقات لـonRelease
lambda فيModifier.pullRefresh
لعرض قيمة عائمة للسرعة الاستهلاكية (I7db65، b/266874741). - تعرض
BottomSheetState
وModalBottomSheetState
وBottomDrawerState
الآن خاصية تقدّم تشير إلى مستوى التقدّم بين علامة الارتساء الحالية (المستقرة) وأقرب ارتساء في اتجاه التمرير السريع. (I1b317، وb/271169225، وb/276375124، وb/276776071، وb/270066861) - تم إصلاح إجراء الإغلاق
AlertDialog
ليظهر أسفل إجراء التأكيد عند تكديس الإجراءات فوق بعضها البعض لتلائم عرض مربع الحوار. يقوم هذا الإصلاح بمواءمة التنفيذ مع مواصفات التصميم المتعدد الأبعاد. (I029de، b/235454277) - لن يشارك
BottomSheetScaffold
بعد الآن في التمرير المدمج عند ضبطgesturesEnabled
على "خطأ". (I634f3، b/215403277) - تم إصلاح الخطأ الذي كان يؤدي إلى تعطُّل
BottomSheetScaffold
عند توفير محتوى فارغ للخانات. (Ib24a5، b/235588730) - يعمل على إصلاح
PullRefreshIndicator
أحداث اعتراض النقرات/المؤشر. (2494256، b/271777421) - تم إصلاح مشكلة تعطُّل
ModalBottomSheetLayout
في حالة الأحرف عند تغيير الاتجاه. تعمل الصور المتحركة للتنسيق (مثلModifier.animateContentSize
) في محتوى ورقة البيانات الآن بسلاسة. (I2f981، b/266780234)
الإصدار 1.5.0-rc01
26 تموز (يوليو) 2023
تم طرح androidx.compose.material:material-*:1.5.0-rc01
. يحتوي الإصدار 1.5.0-rc01 على هذه عمليات التنفيذ.
الإصدار 1.5.0-beta03
28 حزيران (يونيو) 2023
تم طرح androidx.compose.material:material-*:1.5.0-beta03
. يحتوي الإصدار 1.5.0-beta03 على هذه الالتزامات.
إصلاح الأخطاء
- تعرض
BottomSheetState
وModalBottomSheetState
وBottomDrawerState
الآن خاصية تقدّم تشير إلى مستوى التقدّم بين علامة الارتساء الحالية (المستقرة) وأقرب ارتساء في اتجاه التمرير السريع. (I1b317، وb/271169225، وb/276375124، وb/276776071، وb/270066861)
الإصدار 1.5.0-beta02
7 حزيران (يونيو) 2023
تم طرح androidx.compose.material:material-*:1.5.0-beta02
. يحتوي الإصدار 1.5.0-beta02 على هذه الالتزامات.
الإصدار 1.5.0-beta01
24 أيار (مايو) 2023
تم طرح androidx.compose.material:material-*:1.5.0-beta01
. يحتوي الإصدار 1.5.0-beta01 على هذه الالتزامات.
التغييرات في واجهة برمجة التطبيقات
- إزاحة
DrawerState
وBottomDrawerState
لم تعد قابلة للقيم الفارغة. بدلاً من ذلك، تعرضFloat.NaN
للإشارة إلى عدم توفُّر الإزاحة. (Ie9855) - تمت إضافة خيار للتمرير في
ScrollState
عند إنشاءDropdownMenu
أوExposedDropdownMenu
للتحكّم في حالة التمرير العمودي للعناصر المعروضة في القائمة. (Idb009، b/185304441) - يمكنك إضافة دعم لتفعيل/إيقاف إيماءة "
ModalBottomSheetLayout
" كي يتمكّن المستخدم من ضبط هذه الميزة في بطاقة المعلومات السفلية الأكثر تميزًا (I40af0). - تمت إضافة مَعلمة لون إلى
BasicText
للسماح بتحريك النص أو ضبطه بكفاءة. (Iffd88 وb/246961787) - إعادة تسمية سمة دلالات
isContainer
إلىisTraversalGroup
(I121f6)
إصلاح الأخطاء
- تم إصلاح إجراء الإغلاق
AlertDialog
ليظهر أسفل إجراء التأكيد عند تكديس الإجراءات فوق بعضها البعض لتلائم عرض مربع الحوار. يعمل هذا الإصلاح على مواءمة التنفيذ مع مواصفات التصميم المتعدد الأبعاد. (I029de، b/235454277)
الإصدار 1.5.0-alpha04
10 أيار (مايو) 2023
تم طرح androidx.compose.material:material-*:1.5.0-alpha04
. يحتوي الإصدار 1.5.0-alpha04 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- وسوف ننقل تبعية الكثافة إلى مستوى المكون. ينطبق ذلك على المكوّنات التالية:
BottomDrawer
وModalBottomSheetLayout
وBottomSheetScaffold
وSwitch
وModalDrawer
. يُرجى استخدام التحميل الزائد الجديد الذي يتم توفيره عندما تكون الكثافة مَعلمة. (I8fbd8)
الإصدار 1.5.0-alpha03
19 نيسان (أبريل) 2023
تم طرح androidx.compose.material:material-*:1.5.0-alpha03
. يحتوي الإصدار 1.5.0-alpha03 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- يجب تحديث إعدادات
BottomDrawer
الداخلية لاستخدام واجهات برمجة التطبيقاتSwipeableV2
الجديدة. وبسبب أنّBottomDrawerState
سيتم الآن تحديد واجهات برمجة التطبيقات (APIS) فيها فقط على مستوى الفئة، ولن تكتسب الطرق/الخصائص منSwipeableState
. سنستخدم المقطوعة الموسيقية مع عنصرSwipeableV2State
داخلي. أصبحت الإزاحة الآن سمة نقطة عائمة قابلة للقيم، ولا يزال من الممكن الوصول إلى القيمة الحالية وقيمة هدف التمرير السريع من خلال السمتَين CurrentsValue و targetValue. تواصل إتاحة الطرق السابقة على مستوى الفئة، مثل الفتح/التوسيع/الإغلاق والخصائص مثلisOpen/isClosed
. (Iad40c، وb/178529942، وb/220676296)
إصلاح الأخطاء
- تم تحديث العناصر الداخلية لمكوِّن التبديل. سيعاين مفتاح التبديل الآن أقرب (حالة مستهدفة) عند السحب. (معرّف 90d4)
- تم تحسين محتوى ورقة البيانات المتحركة (مثل
Modifier.animateContentSize
على محتوى ورقة البيانات) فيBottomSheetScaffold
وهو يعمل الآن بسلاسة. (Ia913c، وb/270518202، وb/254446195) - لن يشارك
BottomSheetScaffold
بعد الآن في التمرير المدمج عند ضبطgesturesEnabled
علىfalse
. (I634f3، b/215403277)
الإصدار 1.5.0-alpha02
5 نيسان (أبريل) 2023
تم طرح androidx.compose.material:material-*:1.5.0-alpha02
. يحتوي الإصدار 1.5.0-alpha02 على هذه عمليات التنفيذ.
إصلاح الأخطاء
- تم إصلاح الخطأ الذي كان يؤدي إلى تعطُّل
BottomSheetScaffold
عند توفير محتوى فارغ للخانات. (Ib24a5، b/235588730) - لإصلاح أحداث
PullRefreshIndicator
التي تؤدي إلى اعتراض النقرات أو المؤشر (2494256، b/271777421)
الإصدار 1.5.0-alpha01
22 آذار (مارس) 2023
تم طرح androidx.compose.material:material-*:1.5.0-alpha01
. يحتوي الإصدار 1.5.0-alpha01 على هذه عمليات التنفيذ.
إصلاح الأخطاء
- أضِف عيّنة لإعادة تدفق مجموعة الشرائح. عدِّل المساحة المتروكة الأفقية بين الشرائح الفرعية في نموذج مجموعة الشرائح التي تتضمّن سطرًا واحدًا لمطابقة المواصفات. (I3b155)
- تم إصلاح مشكلة تعطُّل
ModalBottomSheetLayout
في حالة الأحرف عند تغيير الاتجاه. تعمل الصور المتحركة للتنسيق (مثلModifier.animateContentSize
) في محتوى ورقة البيانات الآن بسلاسة. (I2f981، b/266780234)
الإصدار 1.4
الإصدار 1.4.3
3 أيار (مايو) 2023
تم طرح androidx.compose.material:material-*:1.4.3
بدون أي تغييرات (أي اصطدام الإصدار فقط).
الإصدار 1.4.2
19 نيسان (أبريل) 2023
تم طرح androidx.compose.material:material-*:1.4.2
. يحتوي الإصدار 1.4.2 على عمليات الالتزام هذه.
الإصدار 1.4.1
5 نيسان (أبريل) 2023
تم طرح androidx.compose.material:material-*:1.4.1
. يحتوي الإصدار 1.4.1 على عمليات الالتزام هذه.
الإصدار 1.4.0
22 آذار (مارس) 2023
تم طرح androidx.compose.material:material-*:1.4.0
. يحتوي الإصدار 1.4.0 على عمليات الالتزام هذه.
تغييرات مهمة منذ الإصدار 1.3.0
التغييرات في واجهة برمجة التطبيقات
- إضافة
Modifier.minimumInteractiveComponentSize
ويمكن استخدامه للاحتفاظ بحجم 48.dp على الأقل لتمييز تفاعلات اللمس إذا كان حجم العنصر أصغر. (I33f58، b/258495559) - تم تضمين التغييرات في واجهات برمجة التطبيقات القابلة للتمرير السريع في
ModalDrawer
. تم استبدالanimateTo
فيDrawerState
بطرق الفتح والإغلاق وأصبحت الإزاحة قابلة للإلغاء الآن. استخدِمrequireOffset
لطلب الإزاحة. (I3de9e) - تمت إضافة المعلمة
minLines
إلى نص المادة و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)
إصلاح الأخطاء
- تمت إزالة الأدوار الدلالية من مساحات العرض القابلة للنقر والاختيار، والمكوّنات المعدَّلة التي استخدمت هذه الأدوار لضبط الأدوار باستخدام edit.semantics (Ibb4ba).
- تحديث بسيط لرموز المواد الموسّعة التي تغيّر رموز
desktop_mac
وdirections
وkitchen
التي تم تعبئتها (I65f5e)
الإصدار 1.4.0-beta01
8 شباط (فبراير) 2023
تم طرح androidx.compose.material:material-*:1.4.0-beta01
. يحتوي الإصدار 1.4.0-beta01 على عمليات التنفيذ هذه.
التغييرات في واجهة برمجة التطبيقات
- يتم إصلاح المشكلة المتمثلة في عدم استهلاك
pullRefresh
للسرعة، ما أدى إلى عرض تمرير زائد. تم أيضًا تغيير توقيع واجهة برمجة التطبيقات لـonRelease
lambda فيModifier.pullRefresh
لعرض قيمة عائمة للسرعة الاستهلاكية (I7db65، b/266874741). - تمت استعادة السمة getter
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
في الدرج كواجهة برمجة تطبيقات غير تجريبية. (Ib9c18، b/261425368) - تمت إضافة مَعلمة لون المسار لمؤشرات التقدّم الدائرية، ومَعلمة الحدّ الأقصى للضغط لكل من مؤشرات التقدّم الدائرية والخطية. (Ie668c، وb/216325962، وb/222964817)
- تمت إعادة تسمية
ModalBottomSheetState
وModalBottomSheetState.Saver
وconfirmStateChange
لـ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) - تم إصلاح حالة التفعيل في تنفيذ المادة 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) أو الرجوع إلى إصدار سابق منandroidx.compose.foundation
إلى 1.4.0-alpha03.
الإصدار 1.4.0-alpha03
7 كانون الأول (ديسمبر) 2022
تم طرح androidx.compose.material:material-*:1.4.0-alpha03
. يحتوي الإصدار 1.4.0-alpha03 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- إضافة تعليق توضيحي
@JvmDefaultWithCompatibility
(I8f206) - تم تضمين التغييرات في واجهات برمجة تطبيقات
Swipeable
فيModalDrawer
. تم استبدالanimateTo
فيDrawerState
بالطريقتينopen
وclose
وأصبحت الإزاحة قابلة للقيم الآن. استخدِمrequireOffset
لطلب الإزاحة. (I3de9e) - تمت إضافة واجهة برمجة تطبيقات Modifier API لطلب معلومات الانتقال للأعلى أو للأسفل في الإصدارات القديمة. (I2ba9d، b/203141462)
- يتم استخدام هذه البيانات في
Clickable
لتأخير تفاعلات الضغط بشكل صحيح، عندما يمكن أن تتحوّل الإيماءات إلى أحداث تمرير. - تم إصلاح مشكلة "
Clickables
" التي لا تؤخّر الموجات بشكل صحيح، عند استخدامها داخلScrollable ViewGroup
. - تم تعديل "الأدراج" و"جداول بيانات Google" لتأخير الضغطات بشكل صحيح في حال تحولت الإيماءات إلى أحداث تمرير.
إصلاح الأخطاء
- تم إصلاح المشكلة المتمثلة في احتمال توقُّف
PullRefreshIndicator
بعد استدعاءonRefresh
، في حال عدم تغيير حالة إعادة التحميل إلى "صحيح". (Ie2416، b/248274004)
التحديثات المتعلقة بالاعتمادية
- تعتمد واجهة مستخدم Compose ومواد Compose الآن على Lifecycle 2.5.1. (I05ab0، b/258038814)
الإصدار 1.4.0-alpha02
9 تشرين الثاني (نوفمبر) 2022
تم طرح androidx.compose.material:material-*:1.4.0-alpha02
. يحتوي الإصدار 1.4.0-alpha02 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- يتم الآن قبول
PointerEventPass
فيawaitFirstDown
وwaitForUpOrCancellation
لتوفير مزيد من المرونة. (I7579a، b/212091796) - تمت إضافة المعلمة
minLines
إلى نص المادة وTextField
وOutlinedTextField
، ما يسمح بضبط الحد الأدنى لارتفاع المكوِّن من حيث عدد الأسطر (I4af1d) - تمت إضافة المَعلمة
minLines
إلىBasicTex
t وBasicTextField
. تسمح بتعيين الحد الأدنى لارتفاع هذه العناصر القابلة للإنشاء من حيث عدد الأسطر (I24294، b/122476634)
الإصدار 1.4.0-alpha01
24 تشرين الأول (أكتوبر) 2022
تم طرح androidx.compose.material:material-*:1.4.0-alpha01
. يحتوي الإصدار 1.4.0-alpha01 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة طريقة جديدة "
awaitEachGesture()
" لأدوات رصد الإيماءات. وهي تعمل بشكل مشابه لـforEachGesture()
، غير أنّ حلقة التكرار على الإيماءات تعمل بالكامل داخلAwaitPointerEventScope
وبالتالي لا يمكن فقدان الأحداث بين التكرارات. - تم إيقاف
forEachGesture()
نهائيًا لصالحawaitEachGesture()
لأنّه يتيح فقدان الأحداث بين الإيماءات. (Iffc3f ، b/251260206)
الإصدار 1.3
الإصدار 1.3.1
9 تشرين الثاني (نوفمبر) 2022
تم طرح androidx.compose.material:material-*:1.3.1
. يحتوي الإصدار 1.3.1 على عمليات الالتزام هذه.
الإصدار 1.3.0
24 تشرين الأول (أكتوبر) 2022
تم طرح androidx.compose.material:material-*:1.3.0
. يحتوي الإصدار 1.3.0 على هذه عمليات التنفيذ.
تغييرات مهمة منذ الإصدار 1.2.0
تغيير قد يؤدي إلى كسر السلوك
- تم تقليل الحد الأقصى للارتفاع المسموح به في مربّعات الحوار والنوافذ المنبثقة إلى 8dp.
التغييرات في واجهة برمجة التطبيقات
- أضف مكوِّن السحب لإعادة التحميل إلى 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 على عمليات التنفيذ هذه.
تغيير قد يؤدي إلى كسر السلوك
تم تقليل الحد الأقصى للارتفاع المسموح به في مربّعات الحوار والنوافذ المنبثقة إلى 8dp.
تم تقليل الحد الأقصى المسموح به للارتفاع لمربعات الحوار والنوافذ المنبثقة في "إنشاء" من 30dp إلى 8dp. يؤثر هذا التغيير في النوافذ المنبثقة ومربّعات الحوار المخصصة للمواد وواجهة المستخدم. تم إجراء هذا التغيير للتخفيف من حدوث خطأ في تسهيل الاستخدام على إصدارات Android الأقدم من S، والتأكّد من أنّ خدمات تسهيل الاستخدام في هذه النوافذ يمكنها التفاعل مع المحتوى داخل مربّع الحوار أو النافذة المنبثقة.
لن يؤثر هذا التغيير عليك إلا في حال إنشاء مربّع حوار مخصّص أو تنفيذ نافذة منبثقة مع ضبط مسقط رأسي على مستويات أعلى من 8 بكسل مستقل الكثافة (dp). يمكنك خفض ارتفاع مربع الحوار أو النافذة المنبثقة. إذا كنت بحاجة إلى إيقاف هذا السلوك الجديد، ننصحك بإنشاء مربّع حوار أو نافذة منبثقة تتضمّن مجموعة المسقط الرأسي المطلوبة. لا ننصح بتنفيذ هذا الإجراء، لأنّ ميزات تسهيل الاستخدام قد تتأثّر سلبًا، وعلى المطوِّر التأكّد من أنّ الجزء السفلي من مربّع الحوار أو النافذة المنبثقة قابل للتفاعل والقراءة من قِبل خدمات تسهيل الاستخدام.
الإصدار 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 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- يتم الآن إنشاء الواجهات في مكتبات الإنشاء باستخدام طرق الواجهة التلقائية jdk8 (I5bcf1).
إصلاح الأخطاء
- يتم تعديل الشارة مع علامة تبويب رمز بادئة لإضافة شارة إلى التصنيف بدلاً من الرمز. (I90993)
الإصدار 1.2.0-beta03
1 حزيران (يونيو) 2022
تم طرح androidx.compose.material:material-*:1.2.0-beta03
. يحتوي الإصدار 1.2.0-beta03 على هذه الالتزامات.
إصلاح الأخطاء
- تم إصلاح الخطأ المتمثل في رسم تطبيق "
BottomSheetScaffold
" فوق ظل شريط التطبيق العلوي. يأخذBottomSheetScaffold
الآن أيضًا حالة ورقة البيانات في الاعتبار عند وضع Snackbars: في الحالة المصغّرة، يتم وضع Snackbars فوق ورقة البيانات وFAB. في الحالة الموسّعة، يتم تثبيت Snackbars في أسفل الورقة. (Ia80b5، b/187771422)
الإصدار 1.2.0-beta02
18 أيار (مايو) 2022
تم طرح androidx.compose.material:material-*:1.2.0-beta02
. يحتوي الإصدار 1.2.0-beta02 على عمليات التنفيذ هذه.
الإصدار 1.2.0-beta01
11 أيار (مايو) 2022
تم طرح androidx.compose.material:material-*:1.2.0-beta01
. يحتوي الإصدار 1.2.0-beta01 على عمليات التنفيذ هذه.
الميزات الجديدة
- هذا هو أول إصدار تجريبي من 1.2!
التغييرات في واجهة برمجة التطبيقات
- تمت إعادة تسمية "
TextFieldDefaults.BorderStroke
" القابل للإنشاء الذي يرسم حدًا فيOutlinedTextField
إلى "TextFieldDefaults.BorderBox
". (I5f295)
الإصدار 1.2.0-alpha08
20 نيسان (أبريل) 2022
تم طرح androidx.compose.material:material-*:1.2.0-alpha08
. يحتوي الإصدار 1.2.0-alpha08 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- تم إيقاف الاستهلاك الجزئي (الموضع أو الموضع) نهائيًا في
PointerInputChange
. ويمكنك استخدامconsume()
لاستهلاك التغيير بالكامل. يمكنك استخدام السمةisConsumed
لتحديد ما إذا كان شخص آخر قد استخدم التغيير من قبل أم لا. - يصنع
PointerInputChange::copy()
الآن نسخة سطحية. يعني ذلك أنّه سيتم استهلاك نُسخ منPointerInputChange
بعد استهلاك إحدى النُسخ. إذا أردت إنشاءPointerInputChange
غير مرتبطة، استخدِم الدالة الإنشائية بدلاً منها. (Ie6be4، b/225669674)
الإصدار 1.2.0-alpha07
6 نيسان (أبريل) 2022
تم طرح androidx.compose.material:material-*:1.2.0-alpha07
. يحتوي الإصدار 1.2.0-alpha07 على هذه عمليات التنفيذ.
الإصدار 1.2.0-alpha06
23 آذار (مارس) 2022
تم طرح androidx.compose.material:material-*:1.2.0-alpha06
. يحتوي الإصدار 1.2.0-alpha06 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- تعديلات على Card API القابلة للنقر لمتابعة التغييرات في Surface API (I56bcb)
- تعديلات على Material 2 Surface API تضيف وظائف إضافية عند التحميل الزائد على الأسطح القابلة للاختيار والتبديل (Ifcca5)
الإصدار 1.2.0-alpha05
9 آذار (مارس) 2022
تم طرح androidx.compose.material:material-*:1.2.0-alpha05
. يحتوي الإصدار 1.2.0-alpha05 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- أصبح الوضع "
LazyVerticalGrid
" و"LazyHorizontalGrid
" ثابتًا الآن. (I307c0) - تم نقل
LazyVerticalGrid/LazyHorizontalGrid
وجميع واجهات برمجة التطبيقات ذات الصلة إلى الحزمة الفرعية grid. يُرجى تعديل عمليات الاستيراد من androidx.compose.foundation.lazy إلى androidx.compose.foundation.lazy.grid. (I2d446، b/219942574) - تم التراجع عن التغيير السابق الذي كان يعتمد على الملف الشخصي فقط
WindowInsetsControllerCompat
، ومرة أخرى تتطلب نافذة وهي مطلوبة لإدارة بعض علامات النوافذ. منهي العمل بهViewCompat.getWindowInsetsController
لصالحWindowCompat.getInsetsController
للتأكّد من أنّ النافذة الصحيحة هي (على سبيل المثال، عندما تكون طريقة العرض في مربع حوار). (I660ae، b/219572936) - النص:يتم إيقاف
includeFontPadding
الآن تلقائيًا. تشير رسالة الأشكال البيانية تتم معالجة مشاكل اقتصاص المحتوى الناتجة عنincludeFontPadding=false
. وينبغي ألا يحدث أي اقتصاص للنصوص الطويلة. (I31c84، b/171394808) - تمت إضافة واجهة برمجة تطبيقات
LazyVerticalGrid
جديدة لتحديد الأحجام المتقاطعة (I17723).
الإصدار 1.2.0-alpha04
23 شباط (فبراير) 2022
تم طرح androidx.compose.material:material-*:1.2.0-alpha04
. يحتوي الإصدار 1.2.0-alpha04 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
Add support for filter chips
(I39a6e، b/192585545)- تمت إضافة
TextFieldDecorationBox
وOutlinedTextFieldDecorationBox
يتم استخدامها مع "BasicTextField
" في إنشاء حقل نصي مخصص بناءً على نص التصميم المتعدد الأبعاد الحقول ولكن مع خيارات أكثر للتخصيص. - تم توفير طريقة لضبط المساحات المتروكة الأفقية والعمودية في الحقول النصية. (I8c9f1 وb/203764564 وb/191543915 وb/189971673 وb/183136600 وb/179882597 وb/16803)
تمت إضافة
ComposableTarget
وComposableTargetMarker
ComposableOpenTarget
التي تسمح بالإبلاغ عن وقت التجميع تسمى الدالة القابلة للإنشاء استهداف تطبيق لم يكن مصممة للاستخدام.في معظم الحالات، يمكن أن يتم استنتاج التعليقات التوضيحية بواسطة نافذة الإنشاء المكون الإضافي لبرنامج التحويل البرمجي، وبالتالي ينبغي أن يكون استخدام هذه التعليقات التوضيحية مباشرة نادر . تشمل الحالات التي لا يمكن استنتاجها إنشاء باستخدام تطبيق مخصص ودوال مجردة قابلة للإنشاء (مثل والحقول أو المتغيرات العمومية لامدا قابلة للإنشاء (يتم استنتاج المتغيرات والمعلمات المحلية) أو عند استخدام
ComposeNode
أو دوال ذات صلة قابلة للإنشاء.بالنسبة إلى التطبيقات المخصصة، تُستخدم الدوال القابلة للإنشاء التي تستدعي يجب على
ComposeNode
أوReusableComposeNode
إضافة التعليق التوضيحيCompoableTarget
للدالة وأي أنواع معلمات lambda القابلة للإنشاء. ومع ذلك، يوصى لإنشاء تعليق توضيحي قد تمت إضافة تعليقات توضيحية إليهComposableTargetMarker
ثم استخدام التعليق التوضيحي الذي تم وضع علامة عليه بدلاً منComposableTarget
مباشرةً. تعليق توضيحي قابل للإنشاء تم وضع علامةComposableTargetMarker
على أنه يعادلComposbleTarget
مع اسم السمة المؤهل بالكامل الفئة باعتبارها معلمة applier. للحصول على مثال على استخدام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
إلى الطرق التي تتضمّن أحمالاً زائدة. الأساليب الحالية بدون منطق معقد. يؤدي هذا إلى تقليل برنامج التجميع عمليات فحص للمذكرة التي تم إنشاؤها (تساوي) لجميع المعلمات التي في الدالة الداخلية التي تسمى. (I90490) - إضافة إمكانية استخدام شريحة الإجراء (I07100 وb/192585545)
الإصدار 1.2.0-alpha01
12 كانون الثاني (يناير) 2022
تم طرح androidx.compose.material:material-*:1.2.0-alpha01
. يحتوي الإصدار 1.2.0-alpha01 على هذه عمليات التنفيذ.
التحديثات المتعلقة بالاعتمادية
- تعتمد الآن على لغة
1.6.10
بلغة Kotlin.
مساهمة خارجية
- يتضمّن
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
- تحسينات على حجم مساحة اللمس
- يُرجى العلم أنّه في ما يتعلّق بـ Compose 1.0، ستعمل مكونات التصميم المتعدد الأبعاد على توسيع مساحة التصميم الخاصة بها لاستيفاء إرشادات تسهيل استخدام المواد من أجل حجم هدف اللمس. مثلاً، سيتم توسيع مساحة اللمس المستهدفة للزر إلى حد أدنى للحجم يبلغ 48x48 بكسل مستقل الكثافة، حتى إذا ضبطت حجم الزر ليكون أصغر. يؤدي ذلك إلى مواءمة مادة Compose مع سلوك مكونات التصميم المتعدد الأبعاد نفسه، ما يوفّر سلوكًا ثابتًا إذا مزجت بين طرق العرض و"الإنشاء". ويضمن هذا التغيير أيضًا استيفاء الحدّ الأدنى من متطلبات إمكانية الوصول إلى مساحة اللمس عند إنشاء واجهة المستخدم باستخدام مكوّنات "مواد إنشاء المحتوى".
- دعم ثابت لـ شريط التنقل
- ترقية عدد من واجهات برمجة التطبيقات التجريبية سابقًا إلى إصدار مستقر
- الدعم للإصدارات الأحدث من Kotlin
الإصدار 1.1.0-rc03
26 يناير 2022
تم طرح androidx.compose.material:material-*:1.1.0-rc03
. يحتوي الإصدار 1.1.0-rc03 على هذه عمليات التنفيذ.
التغييرات في السلوك
تجدر الإشارة إلى أنه في ما يتعلق بـ Compose 1.0، ستعمل مكونات Material على توسيع مساحة التخطيط الخاصة بها لتلبي إرشادات إمكانية الوصول Touch target. مثلاً، سيتم توسيع مساحة اللمس المستهدفة للزر إلى حد أدنى للحجم يبلغ 48x48 بكسل مستقل الكثافة، حتى إذا ضبطت حجم الزر ليكون أصغر. يؤدي ذلك إلى مواءمة مادة Compose مع سلوك مكونات التصميم المتعدد الأبعاد نفسه، ما يوفّر سلوكًا ثابتًا إذا مزجت بين طرق العرض و"الإنشاء". ويضمن هذا التغيير أيضًا استيفاء الحدّ الأدنى من متطلبات إمكانية الوصول إلى مساحة اللمس عند إنشاء واجهة المستخدم باستخدام مكوّنات "مواد إنشاء المحتوى".
إصلاح الأخطاء
- تمت إضافة معلومات تصحيح أخطاء أفضل لأداة فحص التنسيق عند فحص الحدّ الأدنى لمفاتيح التعديل المستهدَفة. (aosp/1955036)
الإصدار 1.1.0-rc01
15 كانون الأول (ديسمبر) 2021
تم طرح androidx.compose.material:material-*:1.1.0-rc01
. يحتوي الإصدار 1.1.0-rc01 على هذه عمليات التنفيذ.
إصلاح الأخطاء
- إصلاح نصف قطر الزاوية الذي يتم تطبيقه على
Checkbox
es (I38b03، b/175198975، b/202309440)
الإصدار 1.1.0-beta04
1 كانون الأول (ديسمبر) 2021
تم طرح androidx.compose.material:material-*:1.1.0-beta04
. يحتوي الإصدار 1.1.0-beta04 على عمليات التنفيذ هذه.
الميزات الجديدة
- تم التعديل للتوافق مع لغة "
1.6.0
" بلغة Kotlin.
الإصدار 1.1.0-beta03
17 تشرين الثاني (نوفمبر) 2021
تم طرح androidx.compose.material:material-*:1.1.0-beta03
. يحتوي الإصدار 1.1.0-beta03 على هذه الالتزامات.
الإصدار 1.1.0-beta02
3 تشرين الثاني (نوفمبر) 2021
تم طرح androidx.compose.material:material-*:1.1.0-beta02
. يحتوي الإصدار 1.1.0-beta02 على عمليات التنفيذ هذه.
إصلاح الأخطاء
- لن تتأخر "الأمواج" والمؤشرات الأخرى الآن إلا إذا كانت داخل حاوية Modifier.scrollable() ، بدلًا من أن تتأخر دائمًا بسبب حدث عطل. (Ibefe0، b/203141462)
الإصدار 1.1.0-beta01
27 تشرين الأول (أكتوبر) 2021
تم طرح androidx.compose.material:material-*:1.1.0-beta01
. يحتوي الإصدار 1.1.0-beta01 على عمليات التنفيذ هذه.
الميزات الجديدة
- أصبحت التموّجات تتيح الآن حالات التمرير والتركيز، وبالتالي سيؤدي تمرير مؤشّر الماوس أو التركيز على مكوّن، مثل "زر"، إلى عرض تراكب الحالة الصحيحة.
الإصدار 1.1.0-alpha06
13 تشرين الأول (أكتوبر) 2021
تم طرح androidx.compose.material:material-*:1.1.0-alpha06
. يحتوي الإصدار 1.1.0-alpha06 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة أحمال زائدة أقل من الأطفال لتنسيق "التنسيق"، مع تحسين الكفاءة (Ib0d9a).
- تنفيذ
ExposedDropdownMenu
استنادًا إلىExposedDropdownMenuBox
مع وجودTextField
وDropdownMenu
بداخلها (If60b2) - تمت إضافة
dismissOnOutsideClick
إلىPopupProperties
، بدلاً منdismissOnClickOutside
الذي تم إيقافه نهائيًا. تتلقى الخاصية الجديدة موضع النقر وحدود علامة الارتساء، ما يوفّر إمكانية تحكّم أكثر دقة لتحديد ما إذا كان يجب استدعاء onReceivedRequest أم لا. فعلى سبيل المثال، قد يكون هذا مفيدًا لمنع إغلاق الإعلان الثابت بسبب اللمسات على المرتكز.- تمت إضافة
updateAndroidWindowManagerFlags
إلىPopupProperties
، ما يوفّر مستوى تحكّم منخفض في العلامات التي يتم تمريرها من خلال النافذة المنبثقة إلى Android WindowManager. ستكون معلمة lambda هي العلامات المحسوبة من قيم PopupProperties التي ينتج عنها علامات WindowManager: على سبيل المثال يمكن التركيز عليه. ستكون نتيجة دالة lambda هي العلامة النهائية التي سيتم تمريرها إلى Android WindowManager. بشكلٍ تلقائي، تترك updateAndroidWindowManagerFlags العلامات المحسوبة من المعلّمات بدون تغيير. ويجب استخدام واجهة برمجة التطبيقات هذه بحذر، فقط في الحالات التي يكون فيها للنافذة المنبثقة متطلبات سلوك محدّدة جدًا. (I6e9f9)
- تمت إضافة
الإصدار 1.1.0-alpha05
29 أيلول (سبتمبر) 2021
تم طرح androidx.compose.material:material-*:1.1.0-alpha05
. يحتوي الإصدار 1.1.0-alpha05 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- تتم إضافة الحدّ الأدنى لحجم ناحية اللمس المستهدفة لمكوّنات Material التي لا تحتوي على مساحة لمس يمكن الوصول إليها. لأنّ ذلك يضيف مسافات إضافية حول المكوّنات للتأكّد من أنّها تضم مساحة لمس كبيرة بما يكفي، ما قد يؤدي إلى تغيير واجهات المستخدم الحالية التي تفترض أنّ حجم هذه المكوّنات هو حجمها المرئي، ولا يأخذ في الاعتبار حجم مساحة اللمس. يمكنك استخدام تركيبة
LocalMinimumTouchTargetEnforcement
التجريبية على الجهاز لإيقاف هذا السلوك على مستوى التدرّج الهرمي، ولكن الهدف منه هو أن يكون بمثابة منفذ هروب مؤقت أثناء تعديل واجهات المستخدم الحالية من أجل مراعاة الحد الأدنى الجديد للحجم. (I9b966، b/149691127، b/171509422) - تمت إضافة واجهة TextFieldColorsWithIcons التجريبية، لتوسيع نطاق TextFieldColors لتوفير InteractionSource إلى واجهة برمجة التطبيقات leadColor و لتغيير لون المسار. يمكّن هذا من تعديل مظهر 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 على هذه عمليات التنفيذ.
الميزات الجديدة
- تم تعديل سياسة ComposeAllowed التي تم تحديثها
1.1.0-alpha03
للاعتماد على لغة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 على عمليات التنفيذ هذه.
مساهمة خارجية
- إصلاح سلوك FastableState في حال وجود إزاحة التمرير ضمن خطأ تقريب إلى ارتساء. (I03d39، b/191993377)
الإصدار 1.1.0-alpha01
4 آب (أغسطس) 2021
تم طرح androidx.compose.material:material-*:1.1.0-alpha01
. يحتوي الإصدار 1.1.0-alpha01 على عمليات التنفيذ هذه.
التغييرات في واجهة برمجة التطبيقات
- تم تعديل طريقة واحدة (
DrawScope#drawImage
) لـ تستهلك ساحات المصدر والوجهة استهلاك نوع تصفية اختياري . يفيد ذلك في هواتف Pixel الأعمال الفنية المعدّة لتقطيعها عند توسيع نطاقها لاستخدام رسومات بكسل تعديل BitmapPainter + الصور القابلة للإنشاء أيضًا استهلاك نوع تصفية اختياري مَعلمة (Ie4fb0، وb/180311607) - تمت إعادة تسمية BadgeBox إلى BadgedBox، وتغيير المَعلمات لقبول إنشاء الشارة. تمت إضافة مكوّن الشارة الذي يمثّل محتوى الشارة العادي لـ BadgedBox. (I639c6)
- تمت إضافة مكوّن NavigationRail، ويمكنك الاطّلاع على المستندات والنماذج للحصول على معلومات الاستخدام (I8de77).
إصلاح الأخطاء
- تمت إضافة نموذج NavigationRail بمحاذاة الجزء السفلي وتطبيق الكتالوج تجريبي. (I3cffc)
- تتبع مربّعات الحوار الآن سلوك تحديد حجم المنصة. يمكنك ضبط usePlatformDefaultValue على "خطأ" لإلغاء هذا السلوك. (Iffaed، b/192682388)
- تمت إضافة عرض توضيحي لشريط التنقّل إلى تطبيق الكتالوج. (I04960)
- تمت إضافة عرض توضيحي للشارة إلى تطبيق الكتالوج. (If285d)
الإصدار 1.0
الإصدار 1.0.5
3 تشرين الثاني (نوفمبر) 2021
تم طرح androidx.compose.material:material-*:1.0.5
. يحتوي الإصدار 1.0.5 على عمليات الالتزام هذه.
إصلاح الأخطاء
- تم إصلاح مثيلات الحالة المستمدة من تتبُّع الأعطال. (aosp/1792247)
الإصدار 1.0.4
13 تشرين الأول (أكتوبر) 2021
تم طرح androidx.compose.material:material-*:1.0.4
. يحتوي الإصدار 1.0.4 على عمليات الالتزام هذه.
التحديثات المتعلقة بالاعتمادية
- تم التعديل لكي تعتمد على
1.5.31
بلغة Kotlin.
الإصدار 1.0.3
29 أيلول (سبتمبر) 2021
تم طرح androidx.compose.material:material-*:1.0.3
. يحتوي الإصدار 1.0.3 على عمليات الالتزام هذه.
التحديثات المتعلقة بالاعتمادية
- تم التعديل لكي تعتمد على
1.5.30
بلغة Kotlin.
الإصدار 1.0.2
1 أيلول (سبتمبر) 2021
تم طرح androidx.compose.material:material-*:1.0.2
. يحتوي الإصدار 1.0.2 على عمليات الالتزام هذه.
تم التعديل لإتاحة إصدار 1.0.2
لميزة Compose. لا تزال ميزة إنشاء 1.0.2
متوافقة مع لغة 1.5.21
بلغة Kotlin.
الإصدار 1.0.1
4 آب (أغسطس) 2021
تم طرح androidx.compose.material:material-*:1.0.1
. يحتوي الإصدار 1.0.1 على عمليات الالتزام هذه.
التحديثات المتعلقة بالاعتمادية
- تم التعديل لكي تعتمد على
1.5.21
بلغة Kotlin.
الإصدار 1.0.0
28 تموز (يوليو) 2021
تم طرح androidx.compose.material:material-*:1.0.0
. يحتوي الإصدار 1.0.0 على عمليات الالتزام هذه.
الميزات الرئيسية للإصدار 1.0.0
هذا هو أول إصدار ثابت من Compose. يُرجى الاطّلاع على مدوّنة إصدارات Compose الرسمية للحصول على مزيد من التفاصيل.
المشاكل المعروفة
إذا كنت تستخدم Android Studio Bumblebee Canary 4 أو AGP
7.1.0-alpha04
/7.1.0-alpha05
، قد يحدث العُطل التالي:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
لحلّ هذه المشكلة، عليك زيادة minSdkVersion مؤقتًا إلى 24 أو أكثر في ملف
build.gradle
. سيتم إصلاح هذه المشكلة في الإصدار التالي من Android Studio Bumblebee وAGP7.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).
إصلاح الأخطاء
- للتوافق مع مواصفات "التصميم المتعدد الأبعاد"، تم إيقاف استخدام لون الخطأ للتصنيف 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)
إصلاح الأخطاء
- ستختفي Scrim في 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 بعد ذلك الاستفادة من هذا الملف الشخصي عند تثبيت APK على الأجهزة من أجل تجميع مجموعة فرعية محددة من التطبيق مسبقًا لتحسين أداء التطبيق، وخاصة عند التشغيل الأول. يُرجى العلم أنّ ذلك لن يؤثر في التطبيقات التي يمكن تصحيح الأخطاء بها.
الإصدار 1.0.0-beta08
2 حزيران (يونيو) 2021
تم طرح androidx.compose.material:material-*:1.0.0-beta08
. يحتوي الإصدار 1.0.0-beta08 على عمليات التنفيذ هذه.
الميزات الجديدة
تغيير واجهة برمجة التطبيقات Behavior Breaking API
- كسر السلوك: الآن تستهلك البطاقة النقرات، مما يؤدي إلى عدم توفر النقرات التي تتم إضافتها عبر
Card(Modifier.clickable)
. يُرجى استخدام حِمل زائد تجريبي جديد لبطاقة تقبل onClick. (Ia8744، b/183775620)- تمت إضافة تحميل زائد جديد للبطاقة يعالج النقرات إلى جانب الوظائف الأخرى القابلة للنقر: المؤشر وInteractSource ومفعَّل أو غير مفعَّل. تعذّر استخدام بطاقة عادية غير قابلة للنقر مع
Modifier.clickable
لأنّ البطاقة لن تقضي بمؤشر التموج في تلك الحالات.
- تمت إضافة تحميل زائد جديد للبطاقة يعالج النقرات إلى جانب الوظائف الأخرى القابلة للنقر: المؤشر وInteractSource ومفعَّل أو غير مفعَّل. تعذّر استخدام بطاقة عادية غير قابلة للنقر مع
- كسر السلوك: تستهلك مساحة العرض الآن النقرات، ما يجعل النقرات التي تتم إضافتها من خلال
Surface(Modifier.clickable)
بلا إجراءات. يُرجى استخدام حِمل زائد تجريبي جديد على Surface تقبل onClick. (I73e6c، b/183775620)- تمت إضافة حمل زائد جديد على Surface لمعالجة النقرات إلى جانب الوظائف الأخرى القابلة للنقر: المؤشر وInteractSource ومفعَّل أو غير مفعَّل. تعذّر استخدام سطح عادي غير قابل للنقر مع
Modifier.clickable
لأنّ السطح لن يقتطع إشارة التموج في تلك الحالات.
- تمت إضافة حمل زائد جديد على Surface لمعالجة النقرات إلى جانب الوظائف الأخرى القابلة للنقر: المؤشر وInteractSource ومفعَّل أو غير مفعَّل. تعذّر استخدام سطح عادي غير قابل للنقر مع
التغييرات في واجهة برمجة التطبيقات
- تم تحويل
FabPosition
إلى فئة مضمّنة من enum لإتاحة توسيع محتمل في المستقبل (I030fb). - إعادة احتساب استخدامات التعداد في الفئات المضمَّنة لتجنُّب بعبارات تتضمن عبارات شاملة عند إضافة قيم enum جديدة. (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) - تمت إضافة ملف تمهيدي لكتالوج Compose Material الحالي. (If9191)
الإصدار 1.0.0-beta07
18 أيار (مايو) 2021
تم طرح androidx.compose.material:material-*:1.0.0-beta07
. يحتوي الإصدار 1.0.0-beta07 على هذه الالتزامات.
التغييرات في واجهة برمجة التطبيقات
- لم تعد بحاجة إلى استخدام طرق الإضافات للحصول على دعم المسار في ميزة "إنشاء التنقل" (I22beb، b/172823546)
الإصدار 1.0.0-beta06
5 أيار (مايو) 2021
تم طرح androidx.compose.material:material-*:1.0.0-beta06
. يحتوي الإصدار 1.0.0-beta06 على هذه الالتزامات.
التغييرات في واجهة برمجة التطبيقات
- تم نقل بيانات تمويج لاستخدام
RippleDrawable
داخليًا على أجهزة Android. وهذا يعني أن الرسوم المتحركة المموجة ستحدث على RenderThread، ولذلك ستكون سلسة حتى عندما تكون سلسلة واجهة المستخدم قيد التحميل، كما هو الحال عند التنقل بين الشاشات. ولن يؤدي ذلك إلى تغيير سطح واجهة برمجة التطبيقات للموجات، ولكن قد تكون هناك تغييرات في السلوك نتيجة لهذا التغيير. للمساعدة في عملية نقل البيانات، تمت إضافةLocalRippleNativeRendering
. قدِّم قيمةfalse
إلى GenreLocal للرجوع إلى تنفيذ التموّج السابق داخل ChocolateLocalProvider. إنّ واجهة برمجة التطبيقات هذه مؤقتة وستتم إزالتها في المستقبل، لذا إذا واجهت مشاكل تؤدي إلى استخدام واجهة برمجة التطبيقات هذه، يُرجى الإبلاغ عن خطأ. (I902f8، b/168777351، b/183019123) - تمت إضافة واجهتَي برمجة تطبيقات لأدوات تسهيل الاستخدام "مجموعة معلومات" و"مجموعة معلومات عنصر" تسمحان بوضع علامة على المجموعة وعناصرها في الخدمات المخصصة لتسهيل الاستخدام (Id54ef وb/180479017).
- تمت إضافة واجهة برمجة التطبيقات Accessibility API
error
التي تسمح بوضع علامة على عقدة تحتوي على إدخال غير صالح (I12997، b/180584804، b/182142737)
إصلاح الأخطاء
- تم تعديل تنفيذ العناصر الداخلية في كتالوج Compose Material من: https://github.com/google/accompanist/pull/365. (I25dc3)
- الصف & لم تعد عناصر العمود الثانوية التي لهاweight(fill = false) تجعل العنصر الرئيسي يملأ مساحة المحور الرئيسي المتاحة بالكامل. (Ied94d، وb/186012444، وb/184355105)
الإصدار 1.0.0-beta05
21 نيسان (أبريل) 2021
تم طرح androidx.compose.material:material-*:1.0.0-beta05
. يحتوي الإصدار 1.0.0-beta05 على عمليات التنفيذ هذه.
إصلاح الأخطاء
- تمت إضافة صور مربّعات للمكوّنات، وأداة اختيار المظاهر، وعناوين URL أكثر تحديدًا للقائمة إلى كتالوج Compose Material الحالي. (I9b58e)
الإصدار 1.0.0-beta04
7 نيسان (أبريل) 2021
تم طرح androidx.compose.material:material-*:1.0.0-beta04
. يحتوي الإصدار 1.0.0-beta04 على عمليات التنفيذ هذه.
التغييرات في واجهة برمجة التطبيقات
- تغيير واجهة برمجة التطبيقات: لم تعُد حالة "
DrawerState
" توسِّع نطاق الحالة التجريبية لـ SuicaableState.- تغيير واجهة برمجة التطبيقات: تم الآن وضع علامة "تجريبي" على
BottomDrawerState
لمطابقة المكوِّن التجريبي BottomDrawer الحالي (I81114، b/181656094)
- تغيير واجهة برمجة التطبيقات: تم الآن وضع علامة "تجريبي" على
- إعادة تسمية
hideSoftwareKeyboard
وshowSoftwareKeyboard
في منSoftwareKeyboardController
إلىhide()
وshow()
على التوالي.- توفير واجهة ChocolateLocal الكاملة LocalSoftwareControllerController، مع السماح بتعيينها (بشكل خاص مفيدة في الاختبارات) (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)
مساهمة خارجية
- [بواسطة 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
السابقة في حقل النص. (I5951e، b/168778053)
إصلاح الأخطاء
- فرض قيود على الاستخدام العلني لواجهات برمجة التطبيقات التجريبية (I6aa29 وb/174531520)
- تم تغيير المحاذاة الأفقية التلقائية لكل من TopAppBar وBottomAppBar إلى Start، بما يتوافق مع الصف (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.
التغييرات في واجهة برمجة التطبيقات
- تمت إعادة تسمية معدِّلات الحجم. تمت إعادة تسمية Modifier.width/height/size لتصبح مطلوبةwidth/requiredHeight/requiredSize. تمت إعادة تسمية Modifier.FavoriteDetails/FavoriteHeight/FavoriteSize إلى العرض/الارتفاع/الحجم. (I5b414)
- imageResource وectResource هما الآن دالتان للإضافات على الأدوات المصاحبة لـ ImageBitmap وImageVector على التوالي. load{Image,Vector,Font}تم حذف وظائف المورد. (I89130)
- لم تعد معدِّلات الحجم إلى الأساسيات تجريبية. (I15744)
- تأكيدات dp التي تمت إزالتها (I798d2)
- تمت إزالة معاودة الاتصال لـ SoftwareControllerController من كل النص التي سيتم استبدالها قريبًا بواجهة برمجة تطبيقات جديدة. (Iae869، b/168778053)
- أصبحت الآن علامات إجراء التبديل ومربّع الاختيار وزر الاختيار. قابل للقيم الفارغة. تم تعديل نماذج مربّعات الاختيار القابلة للنقر في الصف لاستخدام هذا الجديدة. (If601b، وb/171819073)
- تم استبدال
InteractionState
بـ[Mutable]InteractionSource
- تؤدي الواجهات إلى إصدار / جمع أحداث التفاعل.
- بدلاً من تمرير
interactionState = remember { InteractionState() }
إلى مكونات مثلButton
وModifier.clickable()
، استخدمinteractionSource = remember { MutableInteractionSource() }
. - بدلاً من:
Interaction.Pressed in interactionState
، يجب عليك استخدام وظائف الإضافة في InteractionSource، مثل InteractionSource.collectIsPressedAsState(). - بالنسبة إلى حالات الاستخدام المعقّدة، يمكنك استخدام InteractionSource.interactions لمراقبة تدفق التفاعلات. راجع الوثائق والأمثلة لـ InteractionSource للحصول على مزيد من المعلومات.
- (I85965، وb/152525426، وb/171913923، وb/171710801، وb/174852378)
- إضافة واجهة AccessibilityMananger LocalAccessibilityMananger in ConfigureLocals (I53520)
- تمت إزالة طرق LayoutCoordinates، ويمكنك استخدام الدالة بدلاً من السمة for positionInParent وboundsInParent (I580ed وb/169874631 وb/175142755)
- يتوافق شريط التمرير الآن مع حالة التفعيل/الإيقاف (I6d56b، b/179793072)
- إنشاء TextInputSession جديد لجلسات الإدخال من مكونات نصية منخفضة المستوى مثل CoreTextField. (I8817f، b/177662148)
- AnimationEndreason.تمت إزالة انقطاع. سيتم طرح استثناء الإلغاء في حال انقطاع الصورة المتحركة. (I2cbbc، b/179695417)
- تمت إزالة
@ExperimentalRippleApi
وتغييرRippleAlpha
ليصبح فئة تحتوي على خصائص بدلاً من واجهة. (I6df7c) - تمت إضافة واجهة TextFieldColors لتمثيل الألوان المختلفة المستخدَمة في TextField وOutdTextField في حالات مختلفة. للتنفيذ التلقائي، يُرجى الاطّلاع على TextFieldDefaults.textFieldColors وTextFieldDefaults.outlinedTextFieldColors.
- تمت إعادة تسمية مَعلمة isErrorValue داخل حقل Text وOutdTextField إلى isError. (I831f9، وb/171305338، وb/168004067)
- إضافة معدِّل selectGroup يسمح بوضع علامة على مجموعة علامات التبويب أو أزرار الاختيار لأغراض تسهيل الاستخدام (Ie5c29)
إضافة LazyListState.animate scrollToItem
تؤدي هذه الطريقة إلى الانتقال بشكل سلس إلى عنصر معيّن في القائمة. (I4bfd7)
تم تغيير اسم "
ScrollableState.smoothScrollBy()
" إلى "animateScrollBy()
" تمت إعادة تسمية "LazyListState.snapToItemIndex()
" إلى "scrollToItem()
". تمت إعادة تسمية "ScrollState.smoothScrollTo()
" إلى "animateScrollTo()
" (I35ded).يتم الآن التحقّق من صحة وقت التجميع لأي عناصر قابلة للإنشاء تم وضع علامة
@ReadOnlyComposable
عليها للتأكد من أنّها تُجري طلبات فقط إلى@ReadOnlyComposables
الأخرى (I58961).تمت إزالة واجهة برمجة تطبيقات TargetAnimation. (If47d1، وb/177457083)
يتم تمثيل موضع التمرير في Modifier.vertical scroll()/horizontal scroll() باستخدام Ints now (I81298).
طرق smoothScrollBy و scrollBy' تم تغيير الحزم إلى
androidx.compose.foundation.gestures.*
(I3f7c1، b/175294473)تمت إعادة تسمية FlingConfig ليصبح FlingBehavior يتيح الآن تخصيص الرسوم المتحركة المعلّقة بدلاً من التراجع المحدد مسبقًا. (I02b86، b/175294473)
تمت إعادة تسمية معدِّلات الحجم. تمت إعادة تسمية Modifier.width/height/size لتصبح مطلوبةwidth/requiredHeight/requiredSize. تمت إعادة تسمية Modifier.FavoriteDetails/FavoriteHeight/FavoriteSize إلى العرض/الارتفاع/الحجم. (I5b414)
تمت إعادة تسمية defaultMinSizeConstraints إلى defaultMinSize. (I4eaae)
تم نقل التوجيه إلى حزمة الأساس. تم نقل أداة VelocirtTracker من ui.gesture إلى ui.input.pointer. (Iff4a8 وb/175294473)
drawerState.open() و drawerState.Close() يؤديان الآن إلى تعليق الدوال. استخدِم meetCoroutineScope() للحصول على نطاق المقطوعة الموسيقية ليتم استدعاؤها (I16f60, b/175294473).
تمت إعادة تسمية مقدّمي الخدمات إلى HeadlineLocalProvider.
- لم تعد طريقة إنشاء المقطوعة الموسيقية تقبل معلَمة رئيسية، وتم إيقافها نهائيًا.
- تم تحويل currentCompositeKeyHash إلى سمة مستوى أعلى قابلة للإنشاء بدلاً من دالة مستوى أعلى قابلة للإنشاء.
- تم نقل GenreData وSurfaceGroup إلى مساحة الاسم androidx.compose.runtime.tooling
- تم إنشاء واجهة ComposableLambda بدلاً من فئة خرسانة ولم تعد تحتوي على معلمات من النوع.
- تم إنشاء واجهة ComposableLambdaN بدلاً من فئة خرسانية ولم تعد تحتوي على معلمات من النوع.
- تم نقل الدالة sampleFlow إلى مساحة الاسم androidx.compose.runtime.
- فطريقة دمج SnapshotMutationPolicy لم تعد تجريبية
- تمت إزالة دالة clearRoots ذات المستوى الأعلى في
@TestOnly
. لم يعد من الضروري استخدامه. - تمت إزالة الدالتين keySourceInfoOf وresetSourceInfo. لم تعد ضرورية.
- تمت إزالة Composer.collectKeySource Information. لم يعد من الضروري استخدامه.
- تمت إزالة طرق isJOINedKey وjoinKeyLeft وjoinKeyRight. لم تعد ضرورية.
- تم نقل العديد من واجهات برمجة التطبيقات ذات المستوى الأعلى وإعادة تنظيمها في ملفات مختلفة. وبسبب دلالات فئة الملف في Kotlin، سيؤدي ذلك إلى تعطيل التوافق الثنائي ولكن ليس التوافق مع المصدر، لذا من المفترض ألا يمثّل ذلك مشكلة لمعظم المستخدمين.
- (I99b7d، b/177245490)
تمت إعادة صياغة Modifier.scrollable. وهي تستخدم الآن واجهة قابلة للتمرير بدلاً من فئة ScrollableController (I4f5a5 وb/174485541 وb/175294473).
يقبل Modifier.draggable الآن DraggableState بدلاً من lambda بسيطة. يمكنك إنشاء حالة من خلال
rememberDraggableState { delta -> }
للحصول على السلوك نفسه كالسابق (Ica70f، b/175294473).ZoomableController.smoothScaleBy و ZoomableController.stopAnimation هي الآن دوال معلّقة. (I7f970، b/177457083)
تم حذف بعض واجهات برمجة التطبيقات التي تم إيقافها نهائيًا سابقًا (Ice5da، وb/178633932).
تم إجراء التغييرات التالية على Material API:
- تمت إضافة مَعلمة contentPadding إلى Top/BottomAppBar للسماح بتخصيص المساحة المتروكة التلقائية.
- المعلَمات المُعاد ترتيبها في BackdropScaffold لاتّباع إرشادات واجهة برمجة التطبيقات للمَعلمات المطلوبة قبل المَعلمات الاختيارية.
- تم نقل المعلمة
icon
في Bottom NavigationItem ليكون بعدselected
وonClick
. - تمت إعادة تسمية المعلَمة
alwaysShowLabels
في Bottom NavigationItem إلىalwaysShowLabel
. - تمت إعادة تسمية معلَمات
bodyContent
في بعض المكوّنات لتصبحcontent
فقط. - تم إعادة ترتيب المعلمات في
ButtonDefaults.buttonColors()
. تجدر الإشارة إلى أنّه نظرًا لعدم تغيير نوع المَعلمات، لن يتسبب ذلك في حدوث خطأ في الرمز، لذا يُرجى التأكد من استخدام المَعلمات المُسَمّاة أو تعديل الترتيب يدويًا، وإلا لن يعمل الرمز كما كان في السابق. - تمت إضافة المَعلمة
secondaryVariant
إلىdarkColors()
. عادةً ما يكون هذا اللون هو نفسه اللونsecondary
في المظهر الداكن، ولكنّه تتم إضافته لتوفير المزيد من الاتّساق وتخصيص المحتوى. - تمت إزالة EliffationDefaults وanimateEliffation() من واجهة برمجة التطبيقات العامة نظرًا لعدم استخدامهما بشكل شائع أو الاستفادة منهما.
- تمت إعادة تسمية
onValueChangeEnd
فيSlider
إلىonValueChangeFinished
وجعله قابلاً للقيم الفارغة. - تمت إعادة تسمية المعلَمة
text
فيSnackbar
إلىcontent
لتحقيق الاتساق. - تمت إضافة المَعلمة
contentPadding
إلىDropdownMenuItem
للسماح بتخصيص المساحة المتروكة التلقائية وتم جعلcontent
إضافة فيRowScope
. - تمت إعادة تسمية "
ModalDrawerLayout
" إلى "ModalDrawer
". - تمت إعادة تسمية "
BottomDrawerLayout
" إلى "BottomDrawer
". - (I1cc66)
يقبل BasicTextField الآن استخدام الفرشاة بدلاً من اللون لتخصيص أفضل (I83a36).
imageResource وectResource هما الآن دالتان للإضافات على الأدوات المصاحبة لـ ImageBitmap وImageVector على التوالي. load{Image,Vector,Font}تم حذف وظائف المورد. (I89130)
تم تغيير Indiization#createIndiction() إلى Indiction#rememberUpdatedIndiification(InteractionState) وإزالة معلمة InteractionState من IndiizationInstance#drawIndiATION(). يجب أن يكون InditionInstance مسؤولاً فقط عن رسم التأثيرات المرئية، وليس تشغيل الرسوم المتحركة / حالة الكتابة استجابةً لتغييرات InteractionState. يجب أن تتم هذه الصور المتحركة وعمليات كتابة الحالة ضمن
rememberUpdatedIndication()
بدلاً من ذلك. تم أيضًا تغيير المعلمةindication
فيModifier.indication
لتصبح معلَمة مطلوبة. (Ic1764، b/152525426)
إصلاح الأخطاء
- تمت إضافة مقطوعة موسيقية جديدة من LocalSoftwareControlController على الجهاز. واجهة برمجة التطبيقات لاستبدال واجهة SoftwareboardController السابقة على حقل النص. (I658b6، b/168778053)
الإصدار 1.0.0-alpha12
10 شباط (فبراير) 2021
تم طرح androidx.compose.material:material-*:1.0.0-alpha12
. يحتوي الإصدار 1.0.0-alpha12 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- يتطلب Modifier.pointerInput الآن تذكُّر المفاتيح للإشارة إلى عندما يجب إعادة تشغيل الكوروتين للكشف عن مدخلات المؤشر والتبعيات لديك. (I849cd)
- تم وضع علامة BottomDrawerLayout وListItem كـ @experimentalMaterialApi (Id766e)
- تمت إضافة PaddValues.Absolute ويمكن استخدامها في واجهات برمجة التطبيقات التي تقبل PaddingValues. (Ia5f30)
- تم إيقاف onImeActionPerformed نهائيًا. يمكنك استخدام إجراءات لوحة المفاتيح بدلاً من ذلك (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)
- تنفيذ نصف التوسعة() و"التوسيع" () في ModalBottomSheetState داخليًا (Ic914e)
- تم تغيير الإشارة#createInstance إلى @Composable، وتغيير LocalIndiization ليحتوي على مؤشر، وليس () -> المؤشر. (I5eeea، b/157150564)
- تم نقل مربع حوار التنبيه وقائمة القائمة المنسدلة ليكونا Android في الوقت الحالي فقط. تمت إضافة المعلمة PopupProperties إلى Dropdown Menu (قائمة منسدلة) لإجراء مزيد من الإعدادات في النافذة المنبثقة الأساسية. (I9c443)
- تم إيقافloadFontResource نهائيًا. استخدِم fontResource بدلاً من ذلك. imageResource وloadImageResource و"مُتّجهات" و"loadVectorResource" نهائيًا. يُرجى استخدام PainterResource بدلاً من ذلك. (I6b809)
- تمت إزالة المعلَمة
toggle
وtoggleModifier
من القائمة المنسدلة، وإعادة تسميةdropdownModifier
وdropdownOffset
وdropdownContent
إلىmodifier
وoffset
وcontent
على التوالي. تعمل القائمة المنسدلة الآن بشكل متّسق معPopup
، حيث يتم استخدام التنسيق الرئيسي لموضع القائمة. في معظم الحالات، يمكنك نقلtoggle
ليكون تابعًا لـDropdownMenu
والتفاف كل منهما فيBox
. يمكنك الاطّلاع على النموذج المعدَّل في المستندات للحصول على مزيد من المعلومات حول استخدام واجهة برمجة التطبيقات هذه. (I884fb) - تمت إعادة تسمية toIntPx() إلىRoundToPx(). (I9b7e4، b/173502290)
- تم تغيير اسم IntBounds إلى IntRect وتحسين واجهة برمجة التطبيقات. (I1f6ff)
- تمت إضافة إجراءات الدلالة لتوسيع وتصغيرها. تمت الإضافة التوسيع ونصف التوسعة في ModalBottomSheetState (Ib5064)
- تم إيقاف Modifier.dragالإيماءاتFilter نهائيًا. يمكنك استخدام
Modifier.pointerInput { detectDragGestures (...)}
كبديل. بدلاً من ذلك، يمكنك استخدام Modifier.draggable لسحب محور واحد (I0ba93، وb/175294473). - تمت إعادة تسمية "وضع الاستراحة" ليتوافق مع "وضع الاستراحة" -> إعادة تسمية GenreLocal. كان يُطلق على "الأحياء" اسم AmbientFoo، أمّا الآن GenreLocals، فهو يطلق عليه LocalFoo. (I2d55d)
- تم نقل الاختيار إلى الأساس. (I7892b)
- وعلى غرار الطريقة التي أزلنا بها سابقًا عنصر
state { 0 }
القابل للإنشاء، ونعمل الآن على تعزيز الاستخدام، مثلremember { mutableStateOf(0) }
، سنزيلsavedInstanceState { 0 }
قابل للإنشاء. يجب استخدامrememberSaveable { mutableStateOf(0) }
بدلاً من ذلك، وسيتم تلقائيًا حفظها واستعادتها إذا كان النوع المستخدَم في MutableState مخزّنًا في الحزمة. إذا كنت تمرر عنصر حفظ مخصّص في السابق، ستحتاج إلى استخدام حمل زائد جديد من العناصر التي سيتم حفظها من "محفظتك" والتي تحتوي على مَعلمةstateSaver
. سيظهر الاستخدام على النحو التالي:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26، b/177338004) - تمت إضافة ProgressBarRangeInfo.Indeterminate لوضع علامة على أشرطة تقدّم غير محددة لإمكانية الوصول (I6fe05)
تم إيقاف @Composable أهدافك نهائيًا لصالح ثلاثة تعليقات توضيحية أكثر تحديدًا.
- تغيّر اسم "
@ComposableContract(restartable = false)
" إلى "@NonRestartableComposable
" - تغيّر اسم "
@ComposableContract(readonly = true)
" إلى "@ReadOnlyComposable
" - تغيّر اسم "
@ComposableContract(preventCapture = true)
" إلى "@DisallowComposableCalls
" - تمت إزالة
@ComposableContract(tracked = true)
. - (I60a9d)
- تغيّر اسم "
تم إيقاف برامج الخدمات
emptyContent()
و(@Composable () -> Unit).orEmpty()
نهائيًا لأنّها لم تعُد لها أي تأثير أو قيمة إيجابية في الأداء (I0484d).تم تغيير اسم SavedInstanceState() لتذكُّر Saveable() ونقله إلى الحزمة androidx.compose.runtime.saveable. (I1366e، b/177338004)
تم نقل Saver وlistSaver() وmapSaver() وautoSaver من androidx.compose.runtime.savedinstancestate إلى androidx.compose.runtime.saveable (I77fe6).
تمت إعادة تسمية المعلمات على RounderCornerShape وCutCornerShape وCornerbasedShape من اليسار/اليمين إلى البداية/النهاية لدعم الانعكاس التلقائي للشكل في الاتجاه rtl. تم تقديم AbsoluteRounderCornerShape وAbsoluteCutCornerShape للحالات التي لا تكون فيها ميزة "المزامنة التلقائية" مطلوبة. (I61040، b/152756983)
تم تغيير المعلمتين
text
وicon
لـ Tab، ومعلمةlabel
في Bottom NavigationItem لتكون قابلة للقيم الفارغة، وذلك لنقل سلوك المكوِّن بشكل أفضل عند توفر أو عدم توفير هذه المعلمات، نظرًا لأن ذلك يؤثر في حجم المكوِّن وتنسيقه. إذا كنت تمررemptyContent()
حاليًا بحيث لا تمثل أي نص أو رمز أو تصنيف، يجب استخدامnull
بدلاً من ذلك. (I57ed4)تمت إعادة تسمية مَعلمة contentColorFor بالألوان إلى backgroundColor (I5bb67).
تم إيقاف TabDefaults نهائيًا واستبدالها بـ TabRowDefaults. (I0f189)
تم إدخال واجهة برمجة التطبيقات ColorMatrix إلى لتعديل قيم ألوان الأحمر والأخضر والأزرق للمحتوى المصدر واجهة برمجة تطبيقات ColorFilter التي تمت إعادة هيكلتها واجهة وتتوافق مع التنفيذ لـ PathEffect. (Ica1e8)
تم إيقاف ميزةAnimationValue/Float (القيمة العائمة) نهائيًا الآن. يُرجى استخدام قابل للحركة بدلاً من ذلك. (I71345، b/177457083)
إضافة واجهة برمجة تطبيقات SemanticsProperties.PaneTitle. (I20d5a)
تمت إضافة المعلمات المفعّلة إلى Tab وBottomرفّItem لمنعها من النقر. تم تغيير BottomnavigationItem ليكون RowScope.BottomnavigationItem للتعبير بشكل أفضل عن متطلبات التنسيق في واجهة برمجة التطبيقات الخاصة به. (Id683d)
تم نهائيًا إيقاف بكل من AccessibilityFilter و Double TapشيءFilter وlongPressTokenFilter وPressIndicaiton بتطبيقFilter. يمكنك استخدام Modifier.clickable أو Modifier.pointerInput مع وظيفتَي الرمز ExploreTapالإيماءات بدلاً من ذلك. (I6baf9، b/175294473)
أضِف مَعلمةLayoutDirection إلى CreateOutline في الشكل. يسمح ذلك بإنشاء أشكال تراعي اتجاه التخطيط. (I57c20، b/152756983)
تمت إزالة
Recomposer.current()
. [Abstract]ComposeView الآن يتم ضبط الإعدادات التلقائية على أدوات إعادة إنشاء على مستوى النافذة بشكل كسول والمستندة إلى ViewTreeLifecycleOwner للنافذة. إعادة التركيب يتم إيقاف علامات الصور المتحركة المستندة إلى withFrameNanos مؤقتًا أثناء فترة حياة المضيف متوقف. (I38e11)
إصلاح الأخطاء
- سيتم الآن تكبير حجم الرمز ليلائم حجمه، مع مراعاة معدّلات الحجم التي يتم تطبيقها عليه. على سبيل المثال، سيتم الآن رسم الدالة
Icon(.., modifier = Modifier.size(50.dp)
في مساحة بحجم 50x50 بكسل مستقل الكثافة. (Ib2ba9، b/178796190)
الإصدار 1.0.0-alpha11
28 يناير 2021
تم طرح androidx.compose.material:material-*:1.0.0-alpha11
. يحتوي الإصدار 1.0.0-alpha11 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- الترويج لبعض واجهات برمجة تطبيقات Material API التي لم تعد
@Experimental
(I5d20e) - تمت إضافة مَعلمة وصف المحتوى إلى الصورة والرمز. تُستخدم لتقديم وصف لخدمات تسهيل الاستخدام (I2ac4c).
- يغيّر واجهات معلَمة Material الحالة لتتضمّن الدوال @Composable التي تعرض
State<T>
. تتم إضافةAnimatable.asState()
لتسهيل تحويل صورة متحركة إلى ولاية. تغيّر أيضًا animateElevation لتكون إضافة تعليق في Animatable. (If613c) - لم تعُد Snackbar وSnackbarHost وSnackbarHostState
@ExperimentalMaterialAPI
(Id1fb5) - تغيير أسلوب الخط والأشكال وموضع TabPosition إلى لم تعد فئات بيانات. تضيف دالة النسخ لأسلوب الخط والأشكال لاستبدال العناصر التي تم إنشاؤها. (I40037)
- تم حذف بعض واجهات Material API التي تم إيقافها نهائيًا (Ifaa25).
إصلاح الأخطاء
- تم إيقاف onCommit وonDispose وonActive نهائيًا لصالح واجهات برمجة التطبيقات SideEffect وDisposableEffect API (If760e).
- تم إيقاف عملية النقل المستنِدة إلى TransitionDefinition نهائيًا (I0ac57).
- الحالة الأولية في updateTransition متاحة الآن (Ifd51d).
- تمت إعادة صياغة WithConstraints باسم BoxWithConstraints وتم نقلها إلى Foundation.layout. (I9420b، b/173387208)
إيقاف ScrollBy بدون تعليق، وإزالة scrollTo
ننصح الآن باستخدام دوال التعليق للتحكّم في التمرير والانتظار. حتى ينتهي التمرير. نحن بصدد إيقاف و/أو إزالة لإصدارات غير معلّقة من هذه الدوال كجزء من عملية النقل هذه. (Ie9ced)
إيقاف سمة smooth ScrollBy نهائيًا ننصح الآن باستخدام دوال التعليق للتحكّم في التمرير والانتظار. حتى ينتهي التمرير. نحن بصدد إيقاف الإصدارات غير المعلّقة. من هذه الدوال كجزء من عملية النقل هذه. (I12880)
تم تقديم
ComposeContentTestRule
، والذي يمتد وتحدّدComposeTestRule
السمةsetContent
، والتي تمت إزالتها منComposeTestRule
تمت إضافة طريقة المصنعcreateEmptyComposeRule()
تعرضComposeTestRule
ولا تؤدي إلى تشغيل أي نشاط يناسبك ذلك. يمكنك استخدام هذا الخيار عندما تريد تفعيل سجلّ "نشاطك" أثناء الاختبار، مثلاً: باستخدامActivityScenario.launch
(I9d782، b/174472899)لم يعُد من الممكن تخصيص التموّج المستخدَم في الزرّ Button وFloatingActionButton من خلال توفير مؤشر جديد من خلال AmbientIndision، لم يكن الهدف منه مطلقًا تخصيص هذه المكوّنات، ما يجعل هذه المكوّنات متوافقة مع مكوّنات Material الأخرى. لتخصيص الأمواج عبر أحد التطبيقات، يمكنك الاطّلاع على مظهر RippleTheme. (I546c5)
أصبحت animateAsState الآن animateFooAsState، حيث Foo هو ونوع المتغير الذي يكون متحركًا. مثلاً: التعويم، Dp، الإزاحة، وما إلى ذلك (Ie7e25)
تلقى BasicTextField معلمة جديدة باسم
decorationBox
. ويتيح لك هذا الزر إضافة زخارف مثل الرموز والعناصر النائبة والتسمية المشابهة لحقل النص وزيادة المنطقة المستهدفة للنتيجة. (I16996)إصلاح خطأ أدى إلى عدم إمكانية ضبط عرض حقل نص المواد على أقل من 280.dp (I78373)
تمت إزالة مَعلمة canDrag من Modifier.draggable (Ic4bec، وb/175294473).
أزِل DisplaySize لأنّه يجب تجنبه. عادةً ما تكون من الأفضل استخدام حجم onRoot() أو حجم النافذة على الأقل. (I62db4)
يمكن أن تحتوي مساحة العرض الآن على عدة عناصر ثانوية للتنسيق. (I66a92، b/144488459)
تم إيقافableate وCompateReference() نهائيًا لصالح currentRecomposeScope و"تذكُّر لبطاقة تحكُّم مستخدمة" على التوالي. (I583a8)
يغيّر PopupPositionProvider لاستخدام إحداثيات ذات صلة بالنافذة، وليس إحداثيات عمومية. إعادة تسمية parentGlobalBounds إلى AnchorBounds، وتغيير windowGlobalBounds لتصبح
windowSize: IntSize
(I2994a)سيتم استبدال المدة ومدة التشغيل بالمللي ثانية الطويلة، وتزيل هذه الخطوة تبعية مدخلات المؤشر على هذه الصفوف. (Ia33b2، b/175142755، b/177420019)
تمت إزالة{/6}Float.fling التي تقبل FlingConfig. يُرجى استخدام ميزة التعليق Animatable.animateDecay بدلاً منها. (I4659b، b/177457083)
يمكن إنشاء مواد العرض القابلة للنقر والتبديل والاختيار خارج المقطوعة الموسيقية الآن (I0a130 وb/172938345 وb/175294473).
تم تغيير تغيير السرعة إلى واجهة صالحة (Ib14e5)
تم إيقاف البيانات القابلة للتمرير في العمود/الصف نهائيًا. يكون استخدام ScrollableColumn أقل فعالية مقارنةً بـ LazyColumn عندما يكون لديك محتوى تمرير كبير لأنه باستخدام LazyColumn الذي يمكننا فقط إنشاء/قياس/رسم عناصر مرئية. لمنع المستخدمين من اتّخاذ إجراءات غير فعّالة، قرّرنا إيقاف ScrollableColumn و ScrollableRow والترويج لاستخدامات LazyColumn وLazyRow بدلاً من ذلك. لا يزال بإمكان المستخدمين تحديد أنّهم لا يحتاجون إلى السلوك الكسول واستخدام مفاتيح التعديل مباشرةً كما يلي: Column(Modifier.vertical scroll(remember scrollState())) (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 لتصبح غير مرئيةToUser وتم وضع علامة @experimentalComposeUiApi على الحساب. تمت إعادة تسمية AccessibilityRangeInfo إلى ProgressBarRangeInfo. تم تغيير اسم StateDescriptionRange إلى promotionBarRangeInfo. تمت إعادة تسمية AccessibilityScrollState إلى ScrollAxisRange. تمت إعادة تسمية horizontalAccessibility scrollState إلى horizontal scrollAxisRange. تمت إعادة تسمية verticalAccessibility scrollState إلى vertical ScrollAxisRange. (Id3148)
يمكنك الاستفادة من TestCoroutineDispatcher في الاختبار (I532b6).
تم تحديث الرسومات المتجهة واجهة برمجة تطبيقات لدعم تحليل التلوين تطبيقها على جذر الرسومات المتجهة. (Id9d53، b/177210509)
الإصدار 1.0.0-alpha10
13 كانون الثاني (يناير) 2021
تم طرح androidx.compose.material:material-*:1.0.0-alpha10
. يحتوي الإصدار 1.0.0-alpha10 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- سرعة معدلة لتحتوي على أجزاء مكونة ورياضية العمليات التجارية. (Ib0447)
- تمت إعادة تسمية "
@ExperimentalTesting
" إلى "@ExperimentalTestApi
" متسقة مع التعليقات التوضيحية المشابهة لواجهة برمجة التطبيقات (Ia4502، b/171464963) - تمت إعادة تسمية موضع الإعلان إلى DpOffset وإزالة getمسافة() (Ib2dfd).
- Ranamed Color.useOrElse() to Color.takeOrElse() (Ifdcf5)
- إضافة مفتاح تبديل إلى المؤسسة Strings.kt (I4a5b7، b/172366489)
- تم إيقاف FlowRow وFlowColumn. يُرجى استخدام تنسيق مخصّص بدلاً من ذلك. (I09027)
- تم إيقاف Modifier.focus() وModifier.focusRequester() نهائيًا. بدلاً من ذلك، استخدِم Modifier.focusModifier() وModifier.focusReference() . (I75a48 وb/175160751 وb/175160532 وb/175077829)
- تم نقل NativeClass إلى وجعلته داخلية. تم تعديل الاستخدامات المتعلقة بـNativeClass في تساوي عمليات التنفيذ "is MyClass" بدلاً من ذلك. (I4f734)
إصلاح الأخطاء
- تمت إضافة دعم للحقول النصية المتوقفة وللقراءة فقط (I35279 وb/171040474 وb/166478534)
- تم الآن استبدال
animate()
بـanimateAsState()
، التي تعرضState<T>
بدلاً منT
. يتيح ذلك تحسينًا الأداء، حيث يمكن تضييق نطاق إبطال إلى حيث يتم قراءة قيمة الدولة. (Ib179e) - إضافة واجهة برمجة تطبيقات الدور الدلالي وإضافة دور كمَعلمة إلى مفتاح دلالات قابل للنقر وقابل للاختيار والتبديل. تمّ التغيير Modifier.progressSemantics كي يتمكّن Slider من استخدامه أيضًا (I216cd)
الإصدار 1.0.0-alpha09
16 كانون الأول (ديسمبر) 2020
تم طرح androidx.compose.material:material-*:1.0.0-alpha09
. يحتوي الإصدار 1.0.0-alpha09 على هذه عمليات التنفيذ.
التغييرات في واجهة برمجة التطبيقات
- تمت إضافة واجهة برمجة تطبيقات لتشغيل الرسوم المتحركة للتسوية والسحب في Modifier.swipeable (Iaa17a، وb/162408885)
- تمت إعادة تسمية كائنات "*Constants" مثل ButtonConstants لتنتهي بالإعدادات التلقائية بدلاً من ذلك، مثل ButtonDefaults. ستتم أيضًا إزالة بادئات
default
غير الضرورية من المواقع في هذه العناصر الجديدة. (Ibb915، b/159982740) تدعم ميزة Compose رموز الحصول على الخصائص التي يمكنها إنشاء استدعاءات قابلة للإنشاء. لن يتم إيقاف هذا الأمر، ولكن ستتغير بنية إعلان دالة getter عن الخاصية على أنها @Composable.
كانت الصيغة التي تم إيقافها نهائيًا الآن لإجراء ذلك هي من خلال إضافة تعليقات توضيحية إلى السمة نفسها:
@Composable val someProperty: Int get() = ...
بناء الجملة الصحيح الآن للقيام بذلك هو من خلال إضافة تعليق توضيحي للخاصية:
val someProperty: Int @Composable get() = ...
ستعمل كلتا البنيتين لبعض الوقت، ولكن البنية السابقة المتوقّفة ستصبح في النهاية خطأ في التجميع. (Id9197)
تمت إضافة مكتبة
androidx.compose.material:material-ripple
تحتوي على واجهات برمجة تطبيقات تموّج للسماح بإنشاء مكوّنات تفاعلية بدون الحاجة إلى باقي مكتبة المواد. تم إيقاف ReppleIndision نهائيًا واستبداله بـ meetRipple. (Ibdf11)
إصلاح الأخطاء
- أصبحت ملفات Lambdas بمعدِّلات الإزاحة تعرض الآن IntOffset بدلاً من Float. (Ic9ee5، b/174137212، b/174146755)
تمت إعادة ضبط ShaderBrush على بإنشاء مثيل تظليل، معلومات تغيير حجم الرسم متوفر. وهذا مفيد لتحديد التدرجات التي تحت حدود الرسم الكاملة لعنصر قابل للإنشاء في وقت التأليف، دون الحاجة إلى تنفيذ عمليات تنفيذ DrawModifier المخصصة.
واجهات برمجة التطبيقات الخاصة بأداة إنشاء دالة التدرج التي تم إيقافها نهائيًا لصالح طرق المصنع على كائن متدرج. (I511fc، b/173066799)
تم إيقاف Modifier.focusObserver نهائيًا. استخدِم Modifier.onFocusChanged أو Modifier.onFocusEvent بدلاً من ذلك (I30f17 وb/168511863 وb/168511484)
إيقاف LazyColumnFor وLazyRowFor وLazyColumnForIndexed وLazyRowForIndexed. استخدام LazyColumn وLazyRow بدلاً من ذلك (I5b48c)
تم نقل Dp.VectorConverter وPosition.VectorConverter وما إلى ذلك مؤثرات عرض الصور المتحركة الأساسية، وأداة Vectorconfeters القديمة نهائيًا (If0c4b)
أصبحت Autofill API الآن واجهة برمجة تطبيقات تجريبية تتطلب الموافقة (I0a1ec).
إضافة تعريفات التدمير لإنشاء مثيلات FocusRequester (I35d84 وb/174817008)
تمت إعادة تسمية AccessibilityLabel إلى contentDescription. تمت إعادة تسميةAccessibilityValue إلى StateDescription. (I250f2)
دالة جديدة infiniteRepeatable لإنشاء InfiniteRepeatableSpec (I668e5)
تم تغيير سلوك تحديد موضع القوائم المنسدلة بشكل طفيف وفقًا لمواصفات المواد. (I34c72، b/168594123)
تمت إضافة دعم InteractionState لحقول النص. (I61d91)
تمت إضافة Modifier.clearAndSetSemantics إلى محو العناصر التابعة. الدلالات وتعيين دلالات جديدة. (I277ca)
تم نقل ContentDrawScope إلى رسومات واجهة المستخدم مع 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 الآن الألوان الصحيحة لمقابض التحديد وخلفية التحديد. يمكن للتطبيقات غير متعددة الأبعاد استخدام AmbientTextSelectionColors يدويًا لتخصيص الألوان المستخدَمة في الاختيار. (I1e6f4 وb/139320372 وb/139320907)
- تمت إضافة فحص Lint لتسمية مَعلمات lambda القابلة للإنشاء وتحديد موضعها، وذلك للتحقّق من الاتساق مع إرشادات Compose.
تم أيضًا نقل بعض واجهات برمجة التطبيقات باستخدام
children
كاسم لملف lambda اللاحقة إلىcontent
، وفقًا لفحص Lint والإرشادات. (Iec48e) - تمت إعادة تسمية VectorAsset إلى ImageVector تم نقل VectorAsset إلى "Builder" وإعادة تسميته إلى فئة داخلية من ImageVector وفقًا إرشادات مجلس واجهات برمجة التطبيقات تمت إضافة typealias من VectorAssetBuilder إلى إلى ImageVector.Builder for compat. (Icfdc8)
- تمّت إعادة تسمية ImageAsset ذات صلة بـ ImageBitmap. (Ia2d99)
- تم نقل سمات الدلالة الأساسية إلى واجهة المستخدم (I6f05c)
- تم إيقاف
fun RippleIndication()
نهائيًا واستبداله بـrememberRippleIndication()
لتحقيق الاتساق مع واجهات برمجة التطبيقات الأخرى. (Id8e2c) - تمت إضافة معلمة singeLine إلى BasicTextField وTextField وOutdTextField. يمكنك ضبط هذه المعلمة على "صحيح" لجعل الحقل النصي سطرًا واحدًا قابلاً للتمرير أفقيًا. (I57004، b/168187755)
إصلاح الأخطاء
- إضافة إجراء دلالي على الرفض (I2b706)
- تم نقل واجهات برمجة تطبيقات DrawModifier من حزمة androidx.compose.ui إلى حزمة androidx.compose.ui.Draw. تم إنشاء ملف DrawModifier تسري.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 إلى الإزاحة. تأخذ الآن معلمات lambda بدلاً من State. (Ic3021، b/173594846)
- تم إطلاق برنامج SweepGRadentShader وواجهات برمجة تطبيقات SweepGadaentBrush. (Ia22c1)
- تمت إضافة فحص Lint لمعلمات أداة التعديل في الدوال القابلة للتعديل. تتحقق أداة Lint هذه من التسمية ونوع الإرجاع والقيمة الافتراضية وترتيب المعلمة للتأكد من تناسقها مع إرشادات الإنشاء. (If493b)
- واجهة برمجة تطبيقات TextFieldValue المُحدَّثة
- تم إعداد TextFieldValue.composition للقراءة فقط.
- تمت إزالة استثناء تم طرحه لنطاق تحديد غير صالح (I4a675، b/172239032)
- تمت إضافة حمل زائد جديد بقيمة
Modifier.drawLayer()
. يتم استخدام كتلة lambda في GraphicsLayerScope جديد حيث يمكنك تحديد معلمات الطبقة بطريقة تسمح بتخطي إعادة التركيب والإرسال عند حدوث تغيير الحالة. تطبيق DrawLayerModifier داخلي الآن في مرحلة الإعداد لنقل منطقه إلى طريقةplaceable.placeWithLayer()
في LayoutModifier (I15e9f، b/173030831) - تم إيقاف "وضع الاستراحة" نهائيًا باستخدام اللاحقة
Ambient
، واستبدلها بسمات جديدة تبدأ بـ "وضع الاستراحة"، وذلك وفقًا لإرشادات واجهة برمجة التطبيقات الخاصة بميزة "بيئة المحيطة" و"Compose" الأخرى. (I33440) - تمت إضافة فحص الوبر للتأكد من أنّ مصانع المعدّل تستخدم
androidx.compose.ui.composed {}
داخليًا، بدلاً من وضع علامة عليها على أنّها@Composable
. (I3c4bc) - تمت إعادة تسمية وسيطة integrationAllDescendants للدلالات إلى integrationDescendants. (Ib6250)
- التحكم في الوقت في الاختبارات (TestAnimationClock واستخداماته) تجريبي الآن (I6ef86، b/171378521)
- إزالة وحدة اختبار واجهة المستخدم القديمة وأذرعها (I3a7cb)
- تمت إعادة تسمية TextUnit.اكتساب (اكتساب) إلى TextUnit.لم يتم تحديده لضمان الاتساق مع الوحدات الأخرى. (Ifce19)
- تم تحديث واجهة المحاذاة وجعلها تعمل. (I46a07، b/172311734)
- تمت إعادة تسمية المعرّف إلى shoppingId لـ 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)
للحصول على التأثير نفسه في المكوّنات. بدلاً من استخدام OfferEmphasis، يمكنك توفير قيمة مباشرةً من خلال 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 لقبول TableOptions (Ida7f3)
- يستخدم "سطح" الآن الارتفاع المطلق (الإجمالي) عند حساب تراكبات الارتفاع، لذا سيستخدم "سطح" متداخل في "سطح" آخر الارتفاع المجمَّع لرسم التراكب. (I7bd2b، b/171031040)
إصلاح الأخطاء
- تم نقل
captureToBitmap
إلىcaptureToImage
. (I86385) - تم إيقاف الأساسيات AmbientTextStyle وProvideTextStyle وAmbientContentColor. بدلاً من ذلك، استخدم الإصدارات الجديدة المتوفرة في مكتبة المواد. بالنسبة للتطبيقات غير متعددة المواد، يجب عليك بدلاً من ذلك إنشاء بيئات محددة لنظام التصميم يمكن استخدامها في مكوناتك الخاصة. (I74acc، b/172067770)
- تم إيقاف Foundation.Text نهائيًا واستبداله بـmaterial.Text. للحصول على واجهة برمجة تطبيقات نصية أساسية غير معرَّفة لا تستهلك قيمًا من مظهر معيّن، يُرجى الانتقال إلى androidx.compose.foundation.BasicText. (If64cb)
- إعادة تسمية خيارات لوحة المفاتيح باسم ImeOptions (I82f36)
- تم نقل boardType وImeAction إلى لوحة المفاتيحOptions (I910ce)
- تم إيقاف BaseTextField نهائيًا. استخدِم BasicTextField بدلاً من ذلك. (I896eb)
- تمت إزالة التعليق التوضيحي DemoalSubcomposeLayoutApi. يمكن الآن استخدام SubcomposeLayout بدون إضافة @OptIn (I708ad)
- تم نقل FirstBaseline وLastBaseline إلى حزمة androidx.compose.ui.layout (Ied2e7)
- تم تحديث واجهة برمجة التطبيقات Icon API لاستخدام Color.Unspecified كلون خفيف محتمل يرسم الألوان المتوفرة الأصل أو الرسم بدون ColorFilter. سابقًا يحاول تجاهل التلوين باستخدام لون.غير محدد مع لون شفاف ينتهي بها بدون عرض أي شيء على الإطلاق. (I049e2، b/171624632)
- تمت إعادة تسمية relatedPaddingFrom إلى المعدّة edFrom. تمت إضافة المُعدِّل المجمّعةFromBaseline لتسهيل تحديد المسافات من حدود التنسيق إلى الأسس النصية. (I0440a، b/170633813)
- تمت إعادة تسمية LaunchedTask إلى LaunchedEffect لتحقيق الاتساق مع واجهتَي برمجة التطبيقات SideEffect وDiveEffect. LaunchedEffect بدون لا يُسمح بمعلمات الموضوع للتشجيع على أفضل الممارسات. (Ifd3d4)
- تم نقل MeasurementResult من MeasurementScope. (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() مع "الرسام" إذا كنت لا ترغب في استخدام مكتبة المواد. (I9f622)
- تضيف FloatingActionButtonElevation لتمثيل الارتفاع الذي يستخدمه FABs في حالات مختلفة. راجع 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 في فخدمة تذكرVectorPainter لتحسين الإشارة إلى أن واجهة برمجة التطبيقات القابلة للإنشاء داخليًا يستفيد من فكرة "تذكّر" للاحتفاظ بالبيانات عبر والمقطوعات الموسيقية. (Ifda43)
- تفعيل الانتقالات في ComposeTestRule إزالة الخيار إلى تفعيل المؤشر الوامض من ComposeTestRule. (If0de3)
- تمت إضافة خيار لوحة مفاتيح سطر واحد إلى CoreTextField (I72e6d).
- تمت إعادة تسمية واجهة برمجة تطبيقات Radius API إلى نصف قطر الزاوية للتعبير بشكل أفضل وكيف يتم استخدامها خلال Compose. تم تعديل المستندات للإشارة إلى أن تكون أقطار الزاوية السالبة مثبَّتة إلى الصفر. (I130c7، b/168762961)
- تمت إعادة بناء نطاق DrawScope
ContentDrawScope إلى واجهات
بدلاً من الفصول المجرّدة
- تم إنشاء تنفيذ CanvasDrawScope من DrawScope
- عمليات تنفيذ إعادة الهيكلة DrawScope لاستخدام CanvasScope بدلاً من ذلك
- تم إنشاء DrawContext للالتفاف التبعيات لتطبيق DrawScope
- تمت إزالة الطُرق المتوقّفة نهائيًا في DrawScope (I56f5e)
- تم إنشاء Box دالة مضمنة. (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.squickable حدًا أدنى يبلغ 56.dp للحالات في الوقت الحالي (Iab825 وb/168610267).
- جميع حالات السقالة الموضوع عليها علامة @Stable. تم نقل ScaffoldStatesEnabled في ScaffoldState إلى Scaffold نفسه. (I36645، b/168297016)
- لإزالة النوع القابل للقيم الفارغة من مَعلمات Scaffold lambda، يمكنك استخدام الدالة uniqueContent() لتمثيل عدم وجود محتوى لمَعلمة معيّنة. (I2b318، b/157633857، b/158551084)
إيقاف واجهات برمجة التطبيقات contentColor() وcurrentTextStyle()، واستبدالهما ببيئة AmbientContentColor وAmbientTextStyle على التوالي يمكنك الوصول إلى القيمة الحالية باستخدام
.current
في ميزة "وضع الاستراحة"، كما هي الحال مع أي إعدادات أخرى في البيئة المحيطة. تم إجراء هذا التغيير من أجل الاتساق وتجنب وجود طرق متعددة لإنجاز نفس الشيء. بالإضافة إلى ذلك، يعيد تسمية بعض الخصائص المحيطة لوصف الغرض منها بشكل أفضل على النحو التالي:- ContentColorAmbient -> لون المحتوى المحيط
- TextStyleAmbient -> نمط النص المحيط
- IndisionAmbient -> مؤشر الاستراحة
- EmphasisAmbient -> مستويات التركيز المحيطي
- RippleThemeambient -> AmbientRippleTheme (I37b6d)
تضيف هذه السياسة AmbientElevationOverlay، ما يتيح تخصيص أو إيقاف تركيب الارتفاع التلقائي المطبَّق على "الأسطح" في المظهر الداكن. (I5b74d)
إصلاح الأخطاء
- وفي إطار توحيد المعايير قيم الحارس للفئات المضمنة، تغيير اسم اللون.بدون ضبط إلى لون.غير محدد لتحقيق الاتساق مع الفئات الأخرى المضمَّنة (I97611، وb/169797763)
- تم تقديم TextOverflow.None. عندما يكون التجاوز "None" ("بدون")، لن يتعامل "النص" مع التجاوز بعد الآن، وسيبلغ LayoutNode بحجمه الفعلي. (I175c9، b/158830170)
- تمت إعادة تسمية campaignInGenre إلى 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* الجديدة في مربع الاختيار Contastants وRadioButtonConstants للحصول على مزيد من المعلومات. (I1c532) - تمت إعادة تسمية BackdropState لتذكُّر BackdropScaffoldState وإضافة معلمة إضافية لساعة الرسوم المتحركة. تمت إعادة تسمية المعلّمة. BackdropScaffoldState of BackdropScaffold to فقط scaffoldState. تمت إعادة التسمية BackdropScaffoldConstants. (Ib644d)
- تمت إضافة مكوِّن BottomSheetScaffold التجريبي. (Ie02f0، b/148996320)
- تمت إضافة مكوِّن ModalBottomSheetLayout التجريبي. (Ic209e، b/148996320)
- لإعادة تسمية ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation إلى defaultElevation، ويتم الآن عرض قيمة Dp بدلاً من{/6}Value. (I5f3ed)
إصلاح الأخطاء
- تم تحديث العديد من واجهات برمجة تطبيقات الرسومات
- تم تعديل المقياس والتدوير. التحويل من واجهات برمجة التطبيقات إلى استهلاك معلمة الإزاحة لتمثيل المحور الإحداثيات بدلاً من الأعداد العائمة المنفصلة معاملات للإحداثيات س/ص في DrawScope وDrawTransform
- تمت إزالة Rect.expandToInclude وRect.join طرق
- تم تعديل مستندات "النطاق الجغرافي" للإشارة إلى الشكل البيضاوي. بالإضافة إلى جهاز الحركة البيضاوية
- تمت إضافة وثائق للإشارة إلى الدالة الإنشائية العامة للنطاق الجغرافي المضمّن في الفئة، حيث لن يتم استدعاءها مباشرةً يجب إنشاء مثيل لكائنات النطاق الجغرافي من خلال دوال إنشاء الدوال
- تمت إزالة واجهات برمجة تطبيقات RoundRect لاستعلام أعلى يمين أسفل يمنى أسفل المنتصف، وما إلى ذلك
- تم إيقاف Rect.shift لصالح Rect.translate
- تمت إزالة واجهتَي برمجة تطبيقات RoundRect.grow وRect.shrink
- تمت إعادة تسمية RoundRect.outerRect إلى Rect.boundingRect.
- تمت إزالة RoundRect.mediumRect/tallMiddleRect/wideMiddleRect وطرق Rect.isStadium
- تمت إعادة تسمية RoundRect.longestSide إلى RoundRect.maxDimension.
- تمت إعادة تسمية RoundRect.shortestSide إلى RoundRect.minDimension.
- تم تغيير RoundRect.center إلى خاصية بدلاً من دالة.
- تم تعديل الدالة الإنشائية RoundRect لاستخدام خصائص النطاق الجغرافي. بدلاً من المعلمات الفردية لقيم نصف القطر x/y
- تمت إزالة واجهات برمجة التطبيقات ذات الحجم التي افترضت أنها كانت مستطيلة ذات نقطة الانطلاق عند 0,0
- تمت إضافة واجهة برمجة تطبيقات مدمرة إلى Radius
- تم نقل دوال إضافات RoundRect المتعددة التي سيتم المواقع بدلاً من ذلك
- (I8f5c7، b/168762961)
- تم إيقاف Foundation.Box نهائيًا. يُرجى استخدام Foundation.layout.Box بدلاً من ذلك. (Ie5950، b/167680279)
- تمت إعادة تسمية الحزمة إلى Box. وسيتم إيقاف Box الحالي نهائيًا لصالح Box الجديد في compose.foundation.layout. يتمثّل سلوك Box الجديد في تكديس العناصر الثانوية واحدًا فوق الآخر عندما يكون له عدة عناصر فرعية، وهذا يختلف عن المربع السابق، الذي كان يعمل بشكل مشابه للعمود. (I94893، b/167680279)
- تم إيقاف معلمات تزيين الصندوق نهائيًا. إذا أردت إضافة زخارف/مساحة متروكة على العلبة، يمكنك استخدام Modifiers بدلاً من ذلك (Modifier.background, Modifier.للحدّ، أو Modifier.حشو) (Ibae92، b/167680279)
- تم تحديث العديد من واجهات برمجة تطبيقات الرسومات
- تم تعديل واجهات DrawScope API من خلال إضافة النطاق المستهدَف. طرق التحويل للإشارة إلى أن يتم التحويل إلا في عملية معاودة الاتصال وتتم إزالتها بعد استدعاء الاتصال
- تم تعديل وثائق postPath للإشارة إلى المسار بدلاً من المستطيل المستدير
- تم إصلاح تباعد في الوثائق للمعلمة الصحيحة في trackPath
- تمت إعادة تسمية DrawScope.drawCanvas إلى drawIntoCanvas و تمت إزالة معلَمة الحجم
- تمت إعادة تسمية معلمات dx/dy في طريقة الإدخال إلى أفقي ورأسي
- إضافة إدراج زائد يوفر نفس إدخال قيمة لكل الحدود الأربعة
- تمت إزالة المستندات المتعلقة بطريقة الإدخال التي تشير إلى سيتم تطبيق هذه المساحة الداخلية على جميع الجوانب الأربعة
- تم تعديل المستندات الخاصة بصف Rect.
- تم تعديل التعليقات على معلَمات Rect لتتطابق مع kdoc النمط
- تمت إزالة Rect.join وRect.expandToInclude
- تم إنشاء حمل زائد لـ Rect.translate(offset) و تم إيقاف Rect.shift نهائيًا
- (If086a وb/167737376)
- لقد منعنا عمليات الاستيراد الثابتة لمحتويات نطاقات التنسيق (مثل deleteWithSiblings في 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 إلى Bottom NavigationItem وTab، ما يسمح برفع هذه الحالة وضبط كيفية ظهور المكوِّن في حالات مختلفة. (Ia3e9e، b/168025711)
- يزيل المَعلمتَين
disabledBackgroundColor
وdisabledContentColor
من الأزرار. وبدلاً من ذلك، يجب عليك استخدام دوال اللون الافتراضية الجديدة داخل ButtonConstants. إذا كنت تضبط contentColor / backgroundColor بشكل صريح، عليك بدلاً من ذلك استخدام هذه الدوال التلقائية وتخصيص بعض أو كلّ المَعلمات لتجنُّب استبدال اللون لكلّ من حالتَي التفعيل أو الإيقاف. (If9b52) - لم يعد لون خلفية Textfield ضمنيًا يطبق ألفا الشفافية بعد الآن. بدلاً من ذلك، سيتم تطبيق أي لون يتم توفيره من خلال مَعلمة backgroundColor مباشرةً. (Iecee9، b/167951441)
- تمت إعادة تسمية InnerPadding إلى PaddingValues. (I195f1، b/167389171)
- المَعلمتَان
resistanceFactorAtMin
وresistanceFactorAtMax
فيModifier.swipeable
بمعلمة مقاومة واحدة. تمت إضافة طريقةdefaultResistanceConfig
جديدة فيSwipeableConstants
. (I54238) - يضيف دعم ارتفاع حالة متحرك للزر وFloatingActionButton. يتحرك المسقط الرأسي الآن بين الحالات الافتراضية والضغطة. لتخصيص الارتفاع بين الحالات، يُرجى استخدام
ButtonConstants.defaultAnimatedElevation()
وFloatingActionButtonConstants.defaultAnimatedElevation()
بدلاً من ضبط قيمة Dp ثابتة في جميع الحالات. (I37925) - أصبح التصنيف مَعلمة اختيارية داخل TextField وOutdTextField (I267f6 وb/162234081).
إصلاح الأخطاء
- أصبحت الآن وظائف الاختبار الشاملة مثل
onNode
أوwaitForIdle
متوقّفة نهائيًا، يُرجى النقل إلى التطبيقات المشابهة الجديدة المحدّدة على ComposeTestRule (I7f45a) - تم إيقاف DpConstraints وواجهات برمجة التطبيقات التي تستخدمها نهائيًا. (I90cdb، b/167389835)
- تمت إعادة تسمية المعلمتين minwidth وmaxwidth of widthIn إلى الحد الأدنى والحد الأقصى. وبالمثل بالنسبة إلى PreferredwideIn، وheightIn، وFavoriteHeightIn. (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)
إصلاح الأخطاء
- تم استبدال المصفوفة 4 بالمصفوفة. جميع الأجزاء الأخرى إزالة حزمة ectmath. (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 اللذان تم إيقافهما سابقًا في السابق. استخدِم الصفّ وراديوBotton بدلاً من ذلك (I381b7 وb/163806637)
- تمت إزالة استدعاءات onFocusChanged من TextField. استخدِم Modifier.focusObserver بدلاً من ذلك. (I51089، b/161297615)
- تم إيقاف Modifier.DrawBorder نهائيًا. يمكنك استخدام Modifier.party بدلاً من ذلك. تم استبدال فئة بيانات الحدود بـ BorderStroke (I4257d، وb/158160576).
- تمت إعادة تسمية بعض الخصائص في FastableState: scrollTarget -> targetValue, cacheProgress -> التقدم، والتمرير السريع -> اتجاهك. تمت إضافة دالة التذكرSwipeableState لإنشاء SprintableStates. (I2fc9c، b/163129614، b/163132293)
- تمّت إضافة دعم Snackbar مع تحديد الموضع والإضافة إلى قائمة الانتظار بشكل صحيح. يمكنك الوصول إليه من خلال دالة التعليق
SnackbarHostState.showSnackbar
. علاوةً على ذلك:- تمت إضافة مكوّنات SnackbarHost. وتستضيف أشرطة إعلامية حسب الحالة، وهي مسؤولة عن الانتقال بين أشرطة الوجبات الخفيفة.
- تمت إضافة SnackbarHostState للسماح بالتحكم في أشرطة الوجبات الخفيفة ومضيفي الأشرطة الخفيفة وفصلها عن ScaffoldState. يمكنك الوصول إلى هذه الحالة عبر
scaffoldState.snackbarHostState
أيضًا. - تمت إضافة الحمل الزائد على Snackbar لإتاحة الواجهة المشتركة بين signbarHostState وتجارب تناول الطعام الخفيفة نفسها. (I79aaa)
- إضافة مَعلمة مفعَّلة إلى IconButton، وإعادة ترتيب المَعلمات في IconToggleButton (I0a941 وb/161809385 وb/161807956)
- تمت إزالة إصدار ListItem مع واجهة برمجة تطبيقات مستندة إلى السلسلة. استخدِم إصدار الخانة بدلاً من ذلك. (Ib8f57، b/161804681)
- تمت إزالة مكوّن filledTextField المتوقّف نهائيًا. يُرجى استخدام TextField بدلاً من ذلك للحصول على تنفيذ التصميم متعدد الأبعاد لحقل النص المعبأ. (I5e889)
- تستخدم أداة BalanceDialog الآن للأزرار (I00ec1 وb/161809319 وb/143682374)
- تمت إضافة معلمات في Modifier.squickable لتغيير مقدار والمقاومة عند التمرير فوق الحدود. تمت إزالة [min/max]مَعلمات القيمة. (I93d98)
- تمت إضافة مَعلمة backgroundColor إلى LinearProgressIndicator وإزالة المساحة المتروكة الداخلية من CircularProgressIndicator. تمت إضافة ProgressIndicatorConstants.DefaultProgressAnimationSpec الجديد الذي يمكن استخدامه كعنصر AnimationSpec التلقائي عند تحريك القيم (If38b5 وb/161809914 وb/161804677)
- تمت إضافة المَعلمة الاختيارية velocityThreshold إلى Modifier.squickable. (I698ba)
- أسفلBarSize وfabSize وغير ذلك لم يعد متاحًا في ScaffoldState. استخدم Modifier.onPosition بدلاً من ذلك على المكون الذي تريد معرفة حجمه. تمت إضافة contentColor and Modifier pamateres إلى Scaffold (Ic6f7b، وb/161811485، وb/157174382).
- إعادة تسمية بعض المَعلمات في علامة التبويب وإعادة ترتيبها (Ia2d12 وb/161807532)
- يقسم TabRow إلى TabRow و ScrollableTabRow، مع إزالة قابل للتمرير من TabRow. وتعرض أيضًا EdgePadding في ScrollableTabRow، ما يسمح بالتحكم في المساحة الخالية قبل علامات التبويب أو بعدها. (I583e8، b/161809544)
- تمت إزالة الكائن
TabRow
، واستبداله بـ TabConstants. تم نقل TabRow.TabPosition ليصبح مستوى أعلى (TabPosition)، وتمت إعادة تسمية IndexContainer إلىindicator
. راجِع النماذج والوثائق للحصول على معلومات تفصيلية حول كيفية استخدام واجهة برمجة التطبيقات المعدَّلة والإعدادات التلقائية. (I54d45، b/161809544) - تم تعديل مَعلمة الحدود في Modifier.scacheable. الآن وتأخذ زوجًا من الحالات (من النوع T) وتُرجع الحد الأدنى بينهما في شكل ThresholdConfig. تمت إضافة مَعلمة إجراءات الرفض إلى مرِّر سريعًا لتجاهل، وهو lambda (DonDirection) ->. ThresholdConfig. (Ie1080)
- يحتوي شريط التمرير على ألوان أكثر للتخصيص الدقيق (I73e64 وb/161810475)
- تمت إعادة تسمية مَعلمة اللون في البطاقة إلى backgroundColor (I01fc1 وb/161809546).
- يحتوي Snackbar الآن على ألوان محتوى وخلفية قابلة للتخصيص (I238f2 وb/161804381).
- تمت إضافة مَعلمات تخصيص معدّل التعديل وBackgroundColor وcontentColor وscrimColor إلى الأدراج (I23655 وb/161804378)
- تم الآن إيقاف العنصر
state { ... }
القابل للإنشاء نهائيًا لصالح الطلبات الصريحة إلىremember { mutableStateOf(...) }
لمزيد من الوضوح. ويقلل هذا من إجمالي مساحة عرض واجهة برمجة التطبيقات وعدد مفاهيم الحالة وتتطابق مع نمطby mutableStateOf()
للفئة تفويض الممتلكات. (Ia5727) - تمت إعادة تسمية مَعلمة المساحة المتروكة للزر إلى contentPadding (Id252e وb/161809394).
- أضف عنصرًا تجريبيًا مكونًا من مكونات المواد والتمرير. (I129e5)
إصلاح الأخطاء
- تمّت إزالة "
onChildPositioned
" و"OnChildPositionedModifier
". على المطوّرين استخدامonPositioned
وOnPositionedModifier
. على التخطيط الفرعي بدلاً من ذلك. (I4522e، b/162109766) - تمت إضافة integrationPolicy lambda إلى SemanticsPropertyKey. يمكن أن تظهر فائدة هذا بوضوح أكبر تُستخدَم لتحديد سياسة مخصّصة للدلالات الدلالية الخاصة بـ integrationAllDescendants الاندماج. والسياسة التلقائية هي استخدام القيمة الرئيسية إذا سبق موجودة، وإلا فإن القيمة الثانوية. (Iaf6c4، b/161979921)
- أصبحت IntSize الآن فئة مضمّنة (I2bf42).
- تم تغيير اسم "
PlacementScope.placeAbsolute()
" إلى "PlacementScope.place()
" وتغيير اسم "PlacementScope.place()
" السابق إلى "PlacementScope.placeRelative()
". ونتيجةً لذلك، لن تحاكي طريقةPlacementScope.place()
الموضع تلقائيًا في السياقات من اليمين إلى اليسار بعد الآن. ويمكنك استخدامPlacementScope.placeRelative()
بدلاً من ذلك إذا كنت تريد ذلك. (I873ac، b/162916675) - PxBounds متوقفة في لصالح المستطيل تم تحديث جميع حالات الاستخدام معامل pxBounds مع المستطيل والمضاف إيقاف/استبدال بشكل مناسب التعليقات التوضيحية للمساعدة في وترحيلها. (I37038، b/162627058)
- تمت إعادة تسمية RRect إلى RoundRect. لتناسب أنماط التسمية بشكل أفضل تم إنشاء طرق إنشاء دوال مشابهة إلى RRect ودالة RRect المتوقّفة نهائيًا المرادات الإنشاء (I5d325)
الإصدار 0.1.0-dev16
5 آب (أغسطس) 2020
تم طرح الإصدارات androidx.compose.material:material:0.1.0-dev16
وandroidx.compose.material:material-icons-core:0.1.0-dev16
وandroidx.compose.material:material-icons-extended:0.1.0-dev16
. يحتوي الإصدار 0.1.0-dev16 على هذه العمليات.
التغييرات في واجهة برمجة التطبيقات
- أصبحت الألوان الآن فئة نهائية بدلاً من واجهة. فبدلاً من توسيع نطاق التنفيذ وتوفيره، عليك إنشاء بيئة جديدة لكائن المظهر المخصّص، والوصول إلى عنصر المظهر من خلال البيئة المحيطة الجديدة في المكوّنات، تمامًا كما تعمل ميزة MaterialTheme داخليًا. (Ibae84)
- تمت إعادة تسمية ColorPalette إلى "Colors" (الألوان)، لتعيين نظام ألوان Material بشكل أفضل وإزالة الالتباس بسبب استخدام ColorPalette في كونه "عامًا". بدلاً من كونها تطبيقًا محددًا لنظام ألوان Material. بالإضافة إلى ذلك، تعيد تسمية lightColorPalette وDarkColorPalette إلى اسمَي lightColors وDarkColors على التوالي. (I9e976، b/161812111)
- لإعادة تسمية مَعلمة
text
في BottomرفّItem إلىlabel
،onSelected
إلىonSelect
،activeColor
إلىselectedContentColor
،inactiveColor
إلىunselectedContentColor
وتعديل ترتيب المَعلمات ليتطابق مع الإرشادات. (Icb605 وb/161809324) - تم تعديل "
Modifier.stateDraggable
" بالكامل وإعادة تسميته إلى Modifier.scacheable. تم طرح فئة جديدة لـ ShortableState، تمت إعادة ضبط DrawerState وBottomDrawerState، ليتم اكتسابه منها. [Modal/Bottom]لم يعد DrawerLayout يستخدم معلَمة onStateChange. (I72332، b/148023068) - حزمة Foundation.shape.corner مسطّحة إلى مؤسسة enterprise.share (I46491، وb/161887429)
- تمت إضافة تعليق تجريبي MaterialApi. تم وضع علامة "تجربة في مظهر RippleTheme" (Ic5fa0، وb/161784800)
- تمت إعادة تسمية Material filledTextField ليصبح TextField، كما تمت إعادة تسمية حقل TextField الأساسي إلى BaseTextField لتسهيل العثور على واجهة برمجة التطبيقات المطلوبة واستخدامها (Ia6242، وb/155482676).
إصلاح الأخطاء
- تم إيقاف OnChildPositioned نهائيًا. استخدام OnPositioned على الطفل بدلاً من ذلك (I87f95، b/162109766)
- معالجة عمليات الإصلاح الواسعة النطاق لواجهة برمجة التطبيقات (I077bc)
- إزالة واجهة OffsetBase غير المستخدمة
- محاذاة فئات الإزاحة وIntOffset للحصول على مساحة متّسقة لواجهة برمجة التطبيقات
- إعادة تسمية IntOffset.Origin إلى IntOffset.Zero للتوافق مع واجهة برمجة تطبيقات Offset
- تم نقل طريقة "NativeCanvas" - خارج "لوحة الرسم" واجهة لمساعدة المستهلكين على إنشاء مثيلات "لوحة الرسم" الخاصة بك
- تم إنشاء فئة nullCanvas لإعادة هيكلة أن تكون DrawScope معلمة غير فارغة بدلاً من Lainit والتأكد من عدم قبول القيم الفارغة للحقل
- إعادة تسمية تعدادات ClipOp لتصبح Pascal Case
- تمت إعادة تسمية تعدادات filterQuality على شكل Pascal Case
- تمت إعادة تسمية تعدادات Stroke Join لتصبح Pascal Case
- تمت إعادة تسمية تعدادات PointMode إلى Pascal Case
- تمت إعادة تسمية تعداد PaintingStyle ليصبح Pascal Case.
- تمت إعادة تسمية تعدادات PathFillType لتصبح Pascal Case
- تمت إعادة تسمية تعدادات StrokeCap ليصبح Pascal Case
- تم تحديث تنفيذ Drawcache إلى لم يعد استخدام مَعلمات Lainit
- تم تعديل DrawScope إلى عدم استخدام التفويض الكسول بعد الآن. للمعلمات الداخلية fillPaint و النتيجة
- تم تعديل الصورة القابلة للإنشاء لتجنُّب استخدام Box. بتكلفة عامة أقل
- تم تعديل فئة Outline لتتضمّن تعليقات @Immutable توضيحية.
- تم تحديث PathNode لتتضمن تعليقات @Immutable التوضيحية تعليمات كل مسار
- تعديل تركيبة المتجه الفرعية لإزالة التكرار عمليات تحقق شرطية من أجل المساواة لأن إنشاء عناوين cannot translate
- طرق الدالة الإنشائية المصاحبة في Rect التي تم إيقافها نهائيًا لصالح الدالة الإنشائية للدوال
- تم تحديث فئات الفرشاة ودوال إنشاء الدوال باستخدام @Immutable و @Stable APIs
- تم تحديث تعداد VertexMode ليصبح PascalCase
- تم تعديل طريقة DrawScope selectPaint إلى "مشروطة" فاستبدل معلمات الحد الخارجي على الطلاء إذا كان لديهم تم التغيير
- تم تحديث الحجم لإضافة واجهة برمجة التطبيقات التالفة، ثم إعادة التسمية غير محدد إلى طرق غير محددة وتمت إزالتها
- نقل مربع الحوار إلى واجهة المستخدم (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.io/icons (I4b1d3).
- طلب تحديد النوع T بشكل صريح لـ integrationDefinition. (I1aded)
- تم إيقاف Modifier.plus نهائيًا، لذا يُرجى استخدام Modifier.ثم بدلاً من ذلك. "ثم" لديه إشارة أقوى للطلب، بينما يمنع أيضًا كتابة
Modifier.padding().background() + anotherModifier
، ما يؤدي إلى كسر السلسلة ويصعب قراءته (Iedd58، b/161529964) - تمت إعادة تسمية AndroidComposeTestRule (القاعدة التالية) إلى AndroidComposeRule. (I70aaf)
- أضف isFocused() وisNotFocused() SemanticsMatcher. (I0b760)
- تمت إزالة
BaseGestureScope.globalBounds
، والذي ينبغي ألا يكون استخدامه من الاختبارات. استخدم الإحداثيات المحلية مع العقدة التي يتفاعل بدلاً من ذلك. (Ie9b08) - تم تثبيت موضع النافذة المنبثقة على شاشات العرض المقطوعة. (Idd7dd)
- تمت إعادة تسمية Modifier. drawBackground إلى Modifier.background (I13677).
الإصدار 0.1.0-dev15
22 تموز (يوليو) 2020
تم طرح الإصدارات androidx.compose.material:material:0.1.0-dev15
وandroidx.compose.material:material-icons-core:0.1.0-dev15
وandroidx.compose.material:material-icons-extended:0.1.0-dev15
. يحتوي الإصدار 0.1.0-dev15 على هذه العمليات.
تحديث التبعيات
- لاستخدام إصدار
0.1.0-dev15
من Compose، عليك تعديل العناصر الاعتمادية. وفقًا لمقتطفات الرمز الجديدة الموضّحة أعلاه في بيان التبعيات.
التغييرات في واجهة برمجة التطبيقات
تم الآن إيقاف التعليق التوضيحي
@Model
نهائيًا. استخدِم State وmutableStateOf كبدائل. وقد تم التوصل إلى قرار الإيقاف هذا بعد الكثير من المناقشات المتأنية.السبب
وتشمل الأسباب، على سبيل المثال لا الحصر، ما يلي:
- تقليل مساحة عرض واجهة برمجة التطبيقات والمفاهيم التي نحتاج إلى تدريسها
- تتوافق بشكل أكبر مع مجموعات الأدوات الأخرى المشابهة (Swift UI وReact وFlutter).
- قرار يمكن التراجع عنه. ويمكننا استعادة
@Model
في أي وقت لاحقًا. - تتخلص من استخدام الأحرف الكبيرة والإجابة عن الأسئلة التي يصعب الإجابة عنها بشأن إعداد "
@Model
" لأنّنا نحتاج إلى التعامل معها. @Model
فئة بيانات ويساوي ورمز التجزئة وما إلى ذلك- كيف يمكنني الاحتفاظ بخصوصية بعض السمات التي تم "تتبّعها" والبعض الآخر لم تتم ملاحظته؟
- كيف يمكنني تحديد المساواة الهيكلية مقابل المساواة المرجعية لاستخدامها في الملاحظة؟
- لتقليل "السحر" في النظام. التقليل من احتمالية افتراض شخص أن النظام أذكى مما هو عليه (أي معرفة كيفية الاختلاف في القائمة)
- تجعل دقة الملاحظة أكثر سهولة.
- تحسين قابلية إعادة الهيكلة من المتغير -> الموقع في الصف
- إمكانية إجراء تحسينات يدوية مخصّصة للدولة
- يتماشى بشكل أوثق مع بقية المنظومة المتكاملة ويقلل من الغموض تجاه الأشخاص غير القابل للتغيير أو "نتبنى الحالة القابلة للتغير"
ملاحظات عن النقل
تم إدخال تغييرات بسيطة إلى حدّ ما على جميع الاستخدامات الحالية لتطبيق "
@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: استخدام التفويضات في حالة الميزات القابلة للتغيير ومفوَّضي الملكية
وقد تم تسهيل هذه الطريقة باستخدام ميزة تفويض السمة في 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/143263)Ⴏ
معاودة الاتصال onFocusChange في الحقول النصية التي تمت إعادة تسميتها إلى onFocusChanged (Ida4a1)
تمت إضافة معلمة الحدود في StateDraggable لتحديد الحدود. بين علامات الارتساء. تم استخدامه لضبط حدّ أقصى يبلغ 56 بكسل مستقل الكثافة في الدرج السفلي. بالإضافة إلى ذلك، يستخدم BottomDrawerLayout الآن تعداد BottomDrawerState منفصلاً. (I533fa)
يزيل Modifier.ripple الذي سبق إيقافه نهائيًا. أصبح بالإمكان النقر الآن على رمز التموّج كمؤشر تلقائي (إذا تم ضبط MaterialTheme {} في تطبيقك)، لذلك يمكنك في معظم الحالات استخدام ميزة النقر والحصول على مؤشر التموج مجانًا. إذا كنت بحاجة إلى تخصيص اللون / الحجم / المعلمة المحددة للموجة، يمكنك إنشاء مؤشر موجة يدويًا وتمريره إلى قابل للنقر كمعلمة المؤشر. (I663b2، b/155375067)
تمت إزالة الإلغاء المتوقّف نهائيًا للمكوّن الإضافي filledTextField القابل للإنشاء (I7f8f8).
إعادة تسمية كائن الزر (الذي يحتوي على الإعدادات التلقائية التي تستخدمها وظيفة الزر) إلى ButtonConstants (I7c5f7، b/159687878)
تعمل خانة محتوى الزر الآن كصف (مفيد عندما تحتاج إلى رمز يحتوي على نص، ويمكنك الاطّلاع على نماذج على الزر كيفية كتابته) (I0ff10، b/158677863)
تم إيقاف RadioGroup وRadioGroupItem نهائيًا. استخدِم Box مع Modifier.selectable و"الصف" و"العمود" لتحديد مجموعة مناسبة من خيارات زر الاختيار حسب تصميمك (I7f5cf وb/149528535).
تمت إضافة حقل نصي محدد للمواد (I1a518)
androidx.ui.foundation.TextFieldValue و تم إيقاف androidx.ui.input.EditorValue نهائيًا. حقل نصي، العناصر القابلة للإنشاء FileedTextField وCoreTextField التي تستخدم تم أيضًا إيقاف هذا النوع نهائيًا. يُرجى استخدام androidx.ui.input.TextFieldValue بدلاً من ذلك (I4066d، b/155211005)
لا يحتوي TabRow.TabPosition على موضع في Dp، وليس في IntPx (I34a07، b/158577776).
تم استبدال استخدام IntPx بـ Int. موضع IntPxPosition الذي تم استبداله باستخدام IntOffset. تم استبدال IntPxSize بـ IntSize. (Ib7b44)
من أجل دمج عدد الفئات المستخدمة لتمثيل تحديد حجم المعلومات، وتوحيد عند استخدام فئة الحجم بدلاً من PxSize. فهذا يوفر مزايا لفئةٍ مضمنة للاستفادة من بيانات إلى حزمة 2 قيمتين عائمتين لتمثيل العرض والارتفاع ممثلين بأعداد عشرية. (Ic0191)
لإيقاف Modifier.ripple. أصبح بالإمكان النقر الآن على رمز التموّج كمؤشر تلقائي (إذا تم ضبط MaterialTheme {} في تطبيقك)، لذلك يمكنك في معظم الحالات استخدام ميزة النقر والحصول على مؤشر التموج مجانًا. إذا كنت بحاجة إلى تخصيص اللون / الحجم / المعلمة المحددة للموجة، يمكنك إنشاء مؤشر موجة يدويًا وتمريره إلى قابل للنقر كمعلمة المؤشر. (I101cd، b/155375067)
تمت إعادة صياغة واجهة برمجة تطبيقات Scaffold: فقد غيّرت بعض المعلمات اسمها، وأضفت معلمات جديدة للحصول على تخصيص أفضل. تمت إضافة دالة getter إلى أحجام طلبات البحث في Fab وTopBar وBottomBar (I0e7ce).
تمت إضافة مكون Dropdown Menu في مادة ui-material، وهو تنفيذ لقائمة التصميم المتعدد الأبعاد. (I9bb3d)
السماح بإظهار/إخفاء لوحة مفاتيح البرنامج يدويًا باستخدام SoftwareboardController (Ifb9d6 وb/155427736)
تمت إضافة Modifier.indiction إلى حزمة المؤسسة. يمكنك استخدامه لإظهار الضغط/السحب/إشارة أخرى على العناصر المخصّصة القابلة للتفاعل (I8425f وb/155287131)
عمليات التنفيذ الموحدة في CanvasScope لذلك لا يوجد الآن سوى DrawScope نطاق رسم المحتوى تمت إعادة تسمية CanvasScope إلى DrawScope. تم تعديل DrawScope لتنفيذ الكثافة. وتوفير LayoutDirection تم حذف الفئة الفرعية DrawScope في ContentDrawScope تم تعديل Painter وPainterModifier. عدم الاحتفاظ بخاصية RTL بعد الآن أنفسهم لأن DrawScope يوفر هذا بالفعل بدون تقديمها يدويًا (I1798e)
إعادة تسمية Emphasis.confirm() إلى Emphasis.applyEmphasis() (Iceebe)
الآن، تتبع الأزرار غير المفعّلة مواصفات التصميم المتعدد الأبعاد (I47dcb وb/155076924) بشكل مرئي.
يحصل تطبيق filledTextField على إجراءات فورية وإمكانية التحويل المرئي ونوع لوحة المفاتيح (I1f9cf وb/155075201).
تضيف معلمة عرض الخط إلى CircularProgressIndicator لتخصيص حجم الخط. لتغيير حجم خط الرسم (الارتفاع) لـ LinearProgressIndicator، يمكنك استخدام Modifier.FavoriteHeight() أو طريقة تعديل أخرى للحجم. (Icea16، b/154919081)
تضيف معلمة عرض الخط إلى CircularProgressIndicator لتخصيص حجم الخط. لتغيير حجم خط الرسم (الارتفاع) لـ LinearProgressIndicator، يمكنك استخدام Modifier.FavoriteHeight() أو طريقة تعديل أخرى للحجم. (Icea16، b/154919081)
تمت إضافة واجهة برمجة تطبيقات الخانة للرموز اللاحقة والبادئة في filledTextField والتعامل مع حالة الخطأ (Ic12e0).
تم تغيير اللون التلقائي لكل من FAB وExtended FAB إلى MaterialTheme.colors.secondary. (I3b9b9، b/154118816)
تم استبدال جميع استخدامات الألوان القابلة للقيم الفارغة في واجهة برمجة التطبيقات بـ غير قابلة للقيم الفارغة وتستخدم Color.Unset بدلاً من null (Iamaa7)
تمت إعادة تسمية EdgeInsets إلى InnerPadding. تمت إعادة تسمية المعلمة innerPadding من Material Buttons إلى paddding. (I66165)
أصبح شريط التمرير بلا حالة. سيحتاج المستخدمون إلى تمرير الحالة وتعديلها بأنفسهم، كما هو الحال في أي عنصر تحكُّم آخر. (Ia00aa)
تمت إزالة StaticDrawer. إذا احتجت إلى ذلك، يمكنك استخدام Box بعرض متوافق مع المواد الأساسية (I244a7).
تمت إضافة تنفيذ "تصميم متعدد الأبعاد" لحقل النص المعبأ (Ic75cd)
تمت إضافة معلَمة التعديل إلى ListItem وإعادة ترتيب المعلَمات إلى الترويج لنص lambda اللاحقة (I66e21)
لإضافة معلمة الدالة الإنشائية defaultFontFamily إلى Typgraphy، بما يسمح بتحديد مجموعة الخطوط التلقائية التي سيتم استخدامها لأي نمط TextStyles تم تقديمه لا يحتوي على مجموعة عائلة. (I89d07)
تمت إزالة جداول بيانات المواد مؤقتًا من سطح واجهة برمجة التطبيقات. (Iaea61)
المعلمات التي تمت إعادة تسميتها في الفاصل القابل للإنشاء (Ic4373)
الأطفال (Ia6d19)
إزالة MaterialTheme.emphasisLevels، استخدم EmphasisAmbient.current لاسترداد مستويات التوكيد (Ib5e40) بدلاً من ذلك
يتم تحديث نظام تحديد أشكال الشكل وفقًا لمواصفات التصميم المتعدد الأبعاد. يمكنك الآن تقديم أشكال صغيرة ومتوسطة وكبيرة لاستخدامها في معظم المكوّنات (Ifb4d1).
تم تغيير واجهات برمجة تطبيقات MaterialTheme، مثل MaterialTheme.colors()، وMaterialTheme.typgraphic() لتكون سمات بدلاً من دوال. يُرجى إزالة الأقواس من المكالمات الحالية، وليس من المتوقع تغيير السلوك. (I3565a)
واجهات برمجة تطبيقات FloatingActionButton المُعاد تصميمها لقبول العناصر القابلة للإنشاء لامدا بدلاً من الأساسيات. الاطّلاع على النماذج المعدَّلة للاستخدام المعلومات. (I00622)
إضافة مَعلمة
enabled
إلى مربّع الاختيار، والتبديل، والتبديل (I41c16)أصبحت ميزة "الموجة" الآن معدِّلة. على الرغم من أنّه لم يتم إجراء إحالة ناجحة من خلال ميزة "إمكانية النقر"، يكون الاستخدام المقترَح هو
Clickable(onClick = { ... }, modifier = ripple())
(Ie5200، وb/151331852، وb/150060763).تم نقل السطح والبطاقة من androidx.ui.material.surface إلى androidx.ui.material (I88a6d وb/150863888).
يتوفّر الآن للزر وFloatingActionButton والقابل للنقر معلَمة
enabled
منفصلة. تمت إعادة تسمية بعض المَعلمات على Button أو إعادة ترتيبها. (I54b5a)تمت إعادة تسمية الصورة إلى ImageAsset بغرض التمييز بشكل أفضل بين بيانات "الصورة" و"الصورة القابلة للإنشاء" القادمة، والمستخدمة للمشاركة في تصميم المحتوى ورسمه. _Body:تم إنشاء طريقة الإضافة على android.graphics.Bitmap، Bitmap.asImageAsset()، لإنشاء مثيل من تفيد ImageAsset الجمع بين نظام Android التقليدي تطوير التطبيق باستخدام إطار عمل الإنشاء (Id5bbd)
تمت إزالة واجهة برمجة تطبيقات Snackbar باستخدام معلَمات السلسلة. التحميل الزائد الذي يقبل دالة lambdas القابلة للإنشاء. الاطّلاع على نماذج محدّثة لـ معلومات الاستخدام (I55f80)
واجهات برمجة تطبيقات Tabed Tab التي تمت إعادة تصميمها لقبول
text
وicon
lambdas، (Ia057e)تمت إضافة مكون Bottomرفّ، راجع المستندات والنماذج معلومات الاستخدام (I731a0)
تمت إضافة Icon و IconButton و IconToggleButton لإزالة AppBarIcon. يمكنك استبدال الاستخدامات الحالية لتطبيق AppBarIcon مباشرةً بـ IconButton. وسيكون لديها الآن هدف اللمس الصحيح. شاهد نماذج إلى معلومات الاستخدام، والاطلاع على رموز رموز المواد المقدمة يمكنك استخدامها مباشرة مع هذه المكونات. (I96849)
تم استبدال ButtonStyle بدوال مميّزة وإزالة الحمل الزائد للنص (السلسلة). يمكنك الاطّلاع على النماذج المعدّلة للحصول على معلومات الاستخدام. (If63ab وb/146478620 وb/146482131)
إعادة تسمية مفتاح التعديل
Border
إلىDrawBorder
(I8ffcc)لم تعد LayoutCoordinates لها خاصية موضع. تشير رسالة الأشكال البيانية غير مفهوم عند التفكير في LayoutModifiers، أو الدوران أو التحجيم. بدلاً من ذلك، يجب على المطوّرين استخدام parentCoordinates وchildToLocal() لحساب التحويل من واحد LayoutCoordinate إلى آخر.
تستخدم LayoutCoordinates IntPxSize لخاصية الحجم بدلاً من PxSize. تستخدم التخطيطات أحجام وحدات بكسل صحيحة للتنسيقات، بحيث تكون جميع أحجام التخطيط يجب أن تستخدم الأعداد الصحيحة وليس قيم النقاط العائمة. (I9367b)
تغييرات قد تؤدي إلى تغيُّر واجهة برمجة تطبيقات البيئة المحيطة يمكنك الاطّلاع على مستندات "
Ambient<T>
" والسجلّ للحصول على التفاصيل (I4c7ee، وb/143769776).تمت إضافة مكوّن مادة السقالة. أدوات Scaffold (I7731b)
تم استبدال DrawBorder لصالح معدِّل الحدود (Id335a)
إصلاح الأخطاء
- تم إيقاف FocusModifier لصالح Modifier.focus، وModifier.focusRequester، وModifier.focusObserver. تم إيقاف FocusState وFocusDetailsState لصالح FocusState2 (I46919، b/160822875، b/160922136)
- تم إيقاف Vertical Scroller وHoriziontalScroller نهائيًا. يمكنك استخدام ScrollableColumn وScrollableRow للحصول على تجربة مدمجة مع سلوك ومعلَمات العمود/الصف، أو Modifier.verticalportrait وModifier.horizontal scroll على العنصر الخاص بك. وبالمثل، تم إيقاف 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 إلى تنفيذ XYZ. (I7f164)
- تم تغيير Transition API لعرض TransitionState بدلاً من تمرير TransitionState للأطفال. وهذا يجعل واجهة برمجة التطبيقات أكثر تناسقًا مع animate(). (I24e38)
- تمت إضافة فئة وحدة IntBounds، والتي تمثّل عددًا صحيحًا من حدود البكسل من التخطيط. تم تحديث واجهة برمجة التطبيقات PopupPositionProvider لاستخدامها. (I0d8d0، b/159596546)
- تمت إضافة علامة جديدة اختيارية UseUnmergedTree إلى أدوات البحث عن الاختبار. (I2ce48)
- تمت إزالة واجهات برمجة التطبيقات لاختبار الحجم القديم. (Iba0a0)
- تمت إزالة فئة Shader المضمنة التي تم تضمين فئة NativeShader المتوقعة تمت إعادة تسمية NativeShader ليصبح Shader. قامت فئة Shader المضمَّنة الملفوفة عدم إضافة أي معلومات قيّمة إلى مساحة عرض واجهة برمجة التطبيقات وكانت فئة مضمّنة، لذا يجب استخدام NativeShader الفصل الدراسي مباشرةً. (I25e4d)
- تكتسِب النوافذ المنبثقة ومربّعات الحوار والقوائم الآن MaterialTheme السياقي (Ia3665 وb/156527485)
- يمكن الآن التمرير في القائمة المنسدلة الخاصة بالمواد. (Ide699)
- تمت إزالة معلمة اتجاه التصميم من كتلة القياس للدالة Layout(). في المقابل، يتوفّر اتجاه التنسيق داخل عنصر الاستدعاء من خلال عنصر نطاق القياس (Ic7d9d).
- استخدام AnimationSpec بدلاً من AnimationBuilder في واجهات برمجة التطبيقات ذات المستوى الأعلى لتوضيح مفهوم مواصفات الرسوم المتحركة الثابتة -تحسين انتقال DSL عن طريق إزالة شرط lambda إنشاء AnimationSpecs مثل tween وspring. وبدلاً من ذلك يأخذون معلمات الدالة الإنشائية مباشرةً. -تحسين سهولة استخدام AnimationSpec بشكل عام البنائين بدلاً من الاعتماد على البنائين -تغيير المدة والتأخير لإطارات KeyFrames وTween إلى Int. هذا النمط بإزالة أشكال النوع غير الضرورية والأحمال الزائد للطريقة ( تدعم كلاً من Long وInt). (Ica0b4)
- يظهر مفتاح التبديل الآن في حالة إيقاف عند ضبط
enabled
على خطأ (If4624، وb/155941869، وb/159331694) - تمت إعادة تسمية Modifier.tag إلى Modifier.layoutId لتجنُّب حدوث أي التباس مع Modifier.testTag. (I995f0)
- إن المواضع Int لخط المحاذاة التي تم إرجاعها من Placeable#get(AlignmentLine) أصبحت الآن غير خالية. إذا كان خط المحاذاة الذي تم طلبه مفقودًا، سيتم عرض LineLine.Unspecified. (I896c5، b/158134875)
أن تكون فئة نصف القطر المعاد توزيعها فئة تضمين. تمت إزالة إنشاء الإعلان المصاحب. الطرق لصالح الدالة الإنشائية للدالة مع المعلمة الافتراضية ليتضمن نصف القطر radius على طول المحور ص في نفس النقطة معلمة نصف القطر x للمحور x.
تم تعديل DrawScope. drawRoundRect ليتم استخدامه. معلمة نصف قطر واحدة بدلاً من معاملين منفصلين القيم العائمة لنصف القطر المحوري x وy المحور (I46d1b)
من أجل دمج عدد الفئات المستخدمة لتمثيل معلومات عن المكانة في السوق، وتوحيد عند استخدام فئة Offset بدلاً من ذلك لـ PxPosition. فهذا يوفر مزايا لفئةٍ مضمنة للاستفادة من بيانات إلى حزمة 2 قيم عائمة لتمثيل x وإزاحة ص الممثلة على شكل أعداد عشرية. (I3ad98)
تم استبدال استخدام فئة Px في مختلف لإنشاء فئات كجزء من جهود إعادة البناء للاعتماد على Dp فقط والأنواع الأولية لمعلمات البكسل. تم حذف فئة Px بالكامل (I3ff33)
تم إيقاف المكوِّن القابل للتبديل نهائيًا. يمكنك استخدام Modifier.toggleable بدلاً من ذلك (I35220، وb/157642842).
تم استبدال استخدام فئة Px في مختلف لإنشاء فئات كجزء من جهود إعادة البناء للاعتماد على Dp فقط والأنواع الأساسية لمعلمات البكسل (I086f4)
تم استبدال استخدام فئة Px في مختلف لإنشاء فئات كجزء من جهود إعادة البناء للاعتماد على Dp فقط والأنواع الأساسية لمَعلمات البكسل (Id3434)
تم استبدال استخدام فئة Px في مختلف لإنشاء فئات كجزء من جهود إعادة البناء للاعتماد على Dp فقط والأنواع الأساسية لمعلمات البكسل (I97a5a)
تم إصلاح مشكلة عدم استدعاء onClick لـ Dropdon MenuItems. (I3998b، b/157673259)
تم إيقاف العمل بشكل نهائي على القيمة المشتركة بشكل متبادل. يمكنك استخدام Modifier.selectable بدلاً من ذلك. (I02b47، b/157642842)
تم إيقاف TestTag نهائيًا الآن. يُرجى استخدام Modifier.testTag بدلاً من ذلك. (If5110، وb/157173105)
يحتوي مؤشر حقل النص على صورة متحركة وامضة (Id10a7)
تم استبدال استخدام فئة Px في مختلف لإنشاء فئات كجزء من جهود إعادة البناء للاعتماد على Dp فقط والأنواع الأساسية لمعلمات البكسل (I19d02)
يوفر Vertical Scroller الآن عمودًا خارج الصندوق. يوفر شريط التمرير الأفقي الآن الصف خارج الصندوق. (Ieca5d، b/157020670)
تم استبدال استخدام فئة Px في مختلف لإنشاء فئات كجزء من جهود إعادة البناء للاعتماد على Dp فقط والأنواع الأساسية لمعلمات البكسل (Iede0b)
لم يتم إيقاف Modifier.semantics نهائيًا للسماح باستخدامات المكوّنات عالية المستوى. (I4cfdc)
تم تغيير واجهة برمجة تطبيقات معدِّلات DrawLayer: تمت إعادة تسمية outlineShape إلى الشكل وله القيمة التلقائية RectangleShape وأصبحت الآن غير قابلة للقيم الفارغة؛ تمت إعادة تسمية lineToOutline إلى مقطع؛ تمت إزالة musicToBounds لأنّه مماثل للمقطع == true مع RectangleShape (I7ef11، b/155075735).
تم تعديل المستوى الأعلى. لإنشاء واجهات برمجة تطبيقات تعرض لوحة رسم عرض CanvasScope بدلاً من ذلك. سيؤدي هذا إلى إزالة حاجة المستهلكين إلى الحفاظ على طلاء الكائنات. بالنسبة إلى المستهلكين الذين لا تزال بحاجة إلى الوصول إلى لوحة رسم يمكنه استخدام إضافة drawCanvas توفر رد الاتصال للمشكلة أوامر الرسم باستخدام الدالة لوحة. (I80afd)
تم بشكل نهائي إيقاف SpamLineOffset القابل للإنشاء نهائيًا، يُرجى استخدام مفتاح التعديل فيما يتعلق بـ relatedPaddingFrom() بدلاً من ذلك. تمت إزالة العنصر CenterAlignmentLine القابل للإنشاء. (I60107)
تم تغيير واجهة برمجة تطبيقات lambda اللاحقة بالقيود الخاصة بالقيود المفروضة على واجهة برمجة تطبيقات lambda. فبدلاً من مَعلمتَين، أصبح لديه نطاق للمستلِم، بالإضافة إلى القيود وLayoutDirection الذي يوفّر خصائص minRate وmaxwidth وminHeight وmaxHeight في Dp (I91b9a، وb/149979702)
تمت إضافة معدِّل التنسيق defaultMinSizeConstraints، الذي يعيّن قيود الحجم على التنسيق الملفوف فقط عند عدم تحديد القيود المقابلة الواردة (0 للقيود الأدنى واللانهاية للحد الأقصى للقيود). (I311ea، b/150460257)
تمت إزالة FocusManagerAmbient. استخدِم FocusModifier.requestFocus لجذب التركيز. (Ic4826)
تم إنشاء واجهة برمجة تطبيقات CanvasScope التي تضم عنصر لوحة لكشف بيان عديم الحالة رسم واجهة برمجة التطبيقات. يتم تضمين عمليات التحويل ضمن نطاق المتلقي الخاص بها وتحديد حجم المعلومات يتم أيضًا تحديد نطاقه على الحدود الداخلية المقابلة. لا تتطلّب من المستهلك الحفاظ على حالة "الطلاء" الخاصة به. لتكوين عمليات الرسم.
تمت إضافة CanvasScopeSample بالإضافة إلى حدّث التطبيق التجريبي ليشمل رسومات تعريفية تجريبي (Ifd86d)
إضافة تخصيص لون المؤشر إلى حقل النص (I6e33f)
يمكن الآن لـ TextFieldValue الذي يتم استخدامه مع TextField- الاستمرار في إعادة إنشاء النشاط عند استخدامه على النحو التالي:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce، b/155075724).تمت إعادة تسمية LayoutModifier2 إلى LayoutModifier. (Id29f3)
تمت إزالة واجهة LayoutModifier المتوقّفة نهائيًا. (I2a9d6)
تم استبدال CoreTextField/TextField activityIdentifier. مع FocusNode من أجل الدمج مع النظام الفرعي للتركيز. (I7ea48)
تتضمّن دوال القياسات الجوهرية في كل من "التنسيق" و"LayoutModifier2" مستقبلًا IntrinsicMeasurementScope. (Id9945)
تتم إضافة Modifier.zIndex() الجديد للتحكم في ترتيب رسم العناصر الفرعية ضمن نفس التنسيق الرئيسي. تمت إعادة تسمية خاصية الارتفاع في DrawLayerModifier إلى shadowE Liftation ولم تعُد تتحكّم في ترتيب الرسم. تم تغيير ترتيب المعلمات لـ DrawShadow: المسقط الرأسي هو الأول والشكل الثاني مع RectangleShape الافتراضي. (I20150، b/152417501)
تم نقل RectangleShape من androidx.ui.foundation.shape.* إلى androidx.ui.graphics.* (Ia74d5، b/154507984)
تحديث واجهة برمجة التطبيقات TextField: تم دمج استدعاءات onFocus وonBure في معاودة اتصال onFocusChange(Boolean) واحدة تضم معلمة (I66cd3)
تمت إضافة معلمتَي الجاذبية الرأسية والجاذبية الأفقية إلى الصف والعمود، على التوالي. (I7dc5a)
تم تعديل wrapContentwidth وwrapContentHeight لتوقُّع محاذاة رأسية أو أفقية بدلاً من أي محاذاة. تم تحديث معدِّل الجاذبية لقبول المحاذاة العمودية أو الأفقية. تم تحديث الصف والعمود والتكديس لدعم المحاذاة المستمرة المخصصة. (Ib0728)
تم إنشاء واجهة برمجة التطبيقات PixelMap للدعم للاستعلام عن معلومات البكسل من ImageAsset. (I69ad6)
يؤدي هذا الإجراء إلى إزالة OfferContentColor، وبدلاً من ذلك، يمكنك استخدام ContentColorAmbient مباشرةً مع "
Providers
" (Iee942).إعادة تسمية وحدة إنشاء النص المستخدم باسم ui-text. نص واجهة المستخدم يحتوي الآن على CoreText وCoreTextField قابلَين للإنشاء (Ib7d47).
تمت إعادة تسمية وحدة ui-text باسم ui-text-core (I57dec).
تم نقل عناصر ui-framework/CoreText وCoreTextField القابلة للإنشاء ضمن إنشاء النص في واجهة المستخدم. قد ترغب في تضمين ui-text-compos في مشروعك. (I32042)
تحسين واجهة برمجة تطبيقات DrawModifier:
- تم إنشاء نطاق المُستلِم لـ draw() ContentDrawScope
- تمت إزالة جميع المعلمات على draw()
- واجهة DrawScope هي نفس واجهة تطبيق CanvasScope السابق
- يحتوي ContentDrawScope على طريقة drawContent() (Ibaced، b/152919067)
runOnIdleCompose
وrunOnUiThread
هما الآن دالتان عموميتان بدلاً من الطرق في ComposeTestRule. (Icbe8f)[Mutable]تم نقل عوامل تشغيل التفويض الخاصة بالموقع الإلكتروني في الولاية إلى الإضافات لإتاحة تحسينات تفويض المواقع على Kotlin 1.4. يجب على المتصلين إضافة لمواصلة استخدام
by state { ... }
أوby mutableStateOf(...)
. (I5312c)تمت إضافة positionInParent وboundsInParent لـ LayoutCoordinates (Icacdd، b/152735784)
تم إيقاف ColoredRect نهائيًا. استخدِم Box(Modifier.FavoriteSize(width, height).drawBackground(color)) بدلاً من ذلك. (I499fa، b/152753731)
تمت إعادة تسمية LayoutResult إلى MeasurementResult. (Id8c68)
تمت إضافة LayoutModifier2، وهي واجهة برمجة تطبيقات جديدة لتحديد أدوات تعديل التنسيق؛ LayoutModifier المتوقّف نهائيًا (If32ac)
تم استبدال أداة التعديل بالإضافة إلى عامل التشغيل بوظائف إضافة على الإعدادات الأصلية (I225e4).
تم نقل ميزة السحب إلى أداة التعديل (Id9b16، وb/151959544).
تم إيقاف ParentData القابلة للإنشاء نهائيًا. وعليك إما إنشاء مفتاح تعديل ينفّذ واجهة ParentDataModifier، أو استخدام أداة التعديل LayoutTag إذا كنت تريد ببساطة وضع علامات على العناصر الثانوية للتنسيق من أجل التعرّف عليها داخل كتلة القياس. (I51368، b/150953183)
عنصر قابل للإنشاء من خلال المركز المتوقف. يجب استبداله إما بالمُعدّل LayoutSize.Fill + LayoutAlign.Center، أو بأحد عناصر المربع أو الحزمة القابلة للإنشاء مع تطبيق التعديلات المناسبة (Idf5e0).
تمت إضافة واجهة برمجة تطبيقات VectorPainter إلى استبدال واجهة برمجة تطبيقات الإنشاء الفرعي الحالية الرسومات المتجهة. نتيجة التركيب الفرعي هو كائن VectorPainter بدلاً من DrawModifier. تم إيقاف DrawVector السابق القابلة للإنشاء لصالح VectorPainter.
تمت إعادة تسمية واجهة برمجة تطبيقات الصورة(Painter) إلى PaintBox(Painter) تم إنشاء متجه قابل للإنشاء يعمل مثل صورة قابلة للإنشاء باستثناء مادة عرض VectorAsset من ImageAsset (I9af9a، b/149030271)
تمت إعادة تسمية Layoutflex إلى Layoutweight. تمت إعادة تسمية معلَمة ضيقة للتعبئة. (If4738)
تمت إزالة RepaintBoundary لصالح DrawLayerModifier (I00aa4)
تم تغيير DrawVector من قابلة للإنشاء لإرجاع مُعدَّل drawVector() الذي وسوف نرسم المتجه كخلفية لتخطيط. (I7b8e0)
تم استبدال دالة التعتيم القابلة للإنشاء باستخدام معدِّل drawOpacity. (I5fb62)
استبدال الدالة القابلة للإنشاء "Clip" باستخدام مفتاح التعديل drawClip(). تطبيق DrawClipToBounds هو أداة تعديل ملائمة للاستخدام عندما تحتاج فقط إلى الاقتصاص إلى حدود الطبقة بشكل مستطيل. (If28eb)
تم استبدال دالة DrawShadow القابلة للإنشاء بـ drawShadow() مفتاح التعديل. يتم الآن رسم الظلال كجزء من LayerModifier. (I0317a)
تمت إضافة LayerModifier، وهو معدِّل يتيح إضافة RenderNode للتصميم. يسمح بإعداد الاقتصاص والتعتيم والتدوير والتحجيم والظلال. سيحل هذا محل RepaintBoundary. (I7100d، b/150774014)
تم نقل androidx.compose.ViewComposer إلى androidx.ui.node.UiComposer. تمت إزالة androidx.compose.Emittable. وكان تكرارًا في ComponentNode. تمت إزالة androidx.compose.ViewAdapters. لم تعد حالة استخدام متوافقة. تم إيقاف Compose.composeInto نهائيًا. يمكنك استخدام
setContent
أوsetViewContent
بدلاً منها. تم إيقاف واجهة برمجة التطبيقات Compose.disposeAccounts نهائيًا. بدلاً من ذلك، استخدِم طريقةdispose
علىComposition
التي تعرضهاsetContent
. تم نقل androidx.compose.Compose.subcomposeInto إلى androidx.ui.core.subcomposeInto تمت إعادة تسمية ComponentNode#emitInsertAt إلى ComponentNode#insertAt تمت إعادة تسمية ComponentNode#emitRemoveAt إلى ComponentNode#removeAt تمت إعادة تسمية ComponentNode#emitMode إلى ComponentNode#move (Idef00).تم إنشاء صورة قابلة للإنشاء للتعامل معها. الحجم/التخطيط بالإضافة إلى رسم حجم ImageAsset على الشاشة هذا العنصر القابل للإنشاء يدعم أيضًا رسم أي رسام عشوائي سبيل المثال، مع مراعاة حجمها الأساسي بالإضافة إلى دعم قيمة ثابتة معينة الحجم أو الحد الأدنى للحجم (Ibcc8f)
التفاف متوقف نهائيًا وقابل للإنشاء. يمكن استبداله إما باستخدام مفتاح التعديل LayoutAlign أو العنصر القابل للإنشاء (Ib237f)
حصلت WithConstraints على معلمة LayoutDirection (I6d6f7)
تم نشر اتجاه التنسيق من عقدة التنسيق الرئيسية إلى العناصر الثانوية. تمت إضافة معدِّل اتجاه التنسيق. (I3d955)
- .
يتوافق مكوِّن التكديس مع الاتجاه من اليمين إلى اليسار (Ic9e00)
تمت إزالة DrawShape القابل للإنشاء. يمكنك استخدام أداة تعديل DrawBackground بدلاً من ذلك. (I7ceb2)
إتاحة الاتجاه من اليمين إلى اليسار في أداة التعديل LayoutPadding (I9e8da)
تمت إضافة AdapterList، وهو مكون قائمة تمرير لإنشاء العناصر المرئية وتخطيطها. المشاكل المعروفة حاليًا أن يكون عموديًا فقط ولا يعالج جميع حالات التغييرات في عناصرها الثانوية. (Ib351b)
تم تعديل علامة
ComposeFlags.COMPOSER_PARAM
لتصبحtrue
، ما سيؤدي إلى تغيير استراتيجية إنشاء الرموز في المكوّن الإضافي لإنشاء الرموز. على مستوى عالٍ، يؤدي هذا الأمر إلى إنشاء دوال @Composable باستخدام مَعلمة اصطناعية إضافية، والتي يتم تمريرها إلى استدعاءات @Composable اللاحقة لكي يدير بيئة التشغيل عملية التنفيذ بشكل صحيح. ويُعد هذا تغييرًا كبيرًا لأعطال النظام الثنائي، ولكن يجب أن يحافظ هذا التغيير على التوافق على مستوى المصدر في جميع الاستخدامات الخاضعة لعقوبات. (I7971c)تمت إضافة مكوِّن لوحة الرسم. يتطلب هذا العنصر القابل للإنشاء حجمًا (يوفّره المستخدم) ويتيح لك الرسم باستخدام CanvasScope (I0d622).
تم دمج الكثافة ونطاق الكثافة في واجهة واحدة. يمكنك الآن استخدام الدالة Densityambient.current بدلاً منبينDensity() . بدلاً من withDensity(density) only with(density) (I11cb1)
تم تغيير LayoutCoordinates لتقديم خطوط المحاذاة المقدمة مجموعة بدلاً من خريطة وجعل LayoutCoordinates تعمل على تنفيذ get() بدلاً من ذلك لاسترداد قيمة. يسهل ذلك أن تعدل مفاتيح التعديل قيمة واحدة أو أكثر من قيمة المجموعة دون إنشاء مجموعة جديدة لكل معدِّل. (I0245a)
تعرض أدوات التمرير الآن سلوك "التنقل السريع" في Android. (I922af، b/147493715)
تحسينات على واجهة برمجة التطبيقات للقيود (I0fd15)