مادة الإنشاء
androidx.compose.material
androidx.compose.material.icons
(يمكنك الاطّلاع على المستندات المرجعية لواجهة برمجة التطبيقات لجميع حزم الإنشاء)
آخر تعديل | الإصدار المستقر | إصدار مرشح | الإصدار التجريبي | الإصدار الأولي |
---|---|---|---|---|
29 تشرين الثاني (نوفمبر) 2023 | 1.5.4 | - | الإصدار التجريبي 1.6.0-02 | - |
التركيبة
تشتمل ميزة "الإنشاء" على 7 معرّفات مجموعة Maven في androidx
. تحتوي كل مجموعة على مجموعة فرعية مستهدفة من الوظائف، ولكل منها مجموعة خاصة بها من ملاحظات الإصدار.
يشرح هذا الجدول المجموعات والروابط لكل مجموعة من ملاحظات الإصدار.
مجموعة | الوصف |
---|---|
compose.animation | يمكنك إنشاء صور متحركة في تطبيقات Jetpack Compose لتحسين تجربة المستخدم. |
compose.compiler | يمكنك تحويل الدوال @Composable وتفعيل التحسينات باستخدام المكوِّن الإضافي لبرنامج المحول البرمجي بلغة Kotlin. |
compose.foundation | اكتب تطبيقات Jetpack Compose مع الوحدات الأساسية الجاهزة للاستخدام ووسِّع نطاق الأساس لإنشاء أجزاء نظام التصميم الخاصة بك. |
compose.material | يمكنك إنشاء واجهات مستخدم في Jetpack Compose تتضمّن مكونات جاهزة للاستخدام. هذه هي نقطة الدخول ذات المستوى الأعلى في Compose، والتي تم تصميمها لتوفير مكوّنات تتوافق مع تلك الموضّحة في www.material.io. |
compospos.material3 | أنشئ واجهات مستخدم في Jetpack Compose باستخدام مكونات Material Design 3، وهي التطوّر التالي للتصميم المتعدد الأبعاد. يتضمّن Material 3 تصميمات ومكوّنات محدّثة وميزات تخصيص Material You، مثل الألوان الديناميكية، وهي مصممة لتكون متناسقة مع النمط المرئي الجديد في Android 12 وواجهة مستخدم النظام. |
compose.runtime | الوحدات الأساسية لنموذج برمجة Compose وإدارة الحالة، ووقت التشغيل الأساسي للمكوّن الإضافي Compose Compiler لاستهدافه. |
compose.ui | يلزم استخدام المكونات الأساسية لواجهة المستخدم الإنشاء للتفاعل مع الجهاز، بما في ذلك التخطيط والرسم والإدخال. |
تعريف التبعيات
لإضافة تبعية إلى Compose، يجب إضافة مستودع Google Maven إلى مشروعك. يمكنك الاطّلاع على مستودع Maven الذي يضم أدوات Google للحصول على مزيد من المعلومات.
أضف التبعيات للعناصر التي تحتاجها في ملف build.gradle
لتطبيقك أو وحدتك:
رائع
dependencies { implementation "androidx.compose.material:material:1.5.4" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.5" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.5.4") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.5" } kotlinOptions { jvmTarget = "1.8" } }
ولمزيدٍ من المعلومات عن التبعيات، يُرجى الاطّلاع على مقالة إضافة تبعيات الإصدار.
ملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إخبارنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية من خلال النقر على زر النجمة.
راجع مستندات أداة تتبُّع المشاكل للحصول على مزيد من المعلومات.
الإصدار 1.6
الإصدار 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)
تغييرات واجهة برمجة التطبيقات
- تم تقديم علامة مؤقتة للتحكم في ما إذا كان يجب على Scaffold قياس عناصرها الثانوية أثناء القياس أو أثناء الوضع. سيتم إجراء القياس تلقائيًا في عملية القياس. وإذا كنت تواجه مشاكل في السلوك الجديد، يُرجى الإبلاغ عن المشكلة. (If6e3b)
الإصدار 1.6.0-alpha05
6 أيلول (سبتمبر) 2023
تم إصدار "androidx.compose.material:material-*:1.6.0-alpha05
". يحتوي الإصدار 1.6.0-alpha05 على هذه الالتزامات.
الميزات الجديدة
- تمت إتاحة استخدام الرموز التي تتم عكسها تلقائيًا عند عرضها بتنسيقات من اليمين إلى اليسار. توفّر الرموز في الوحدات الأساسية للرموز الأساسية وتلك التي تم توسيع رموز المواد الآن مجموعات رموز إضافية لإتاحة النسخ المطابق التلقائي عندما يسمح الرمز بذلك. تكون المجموعات الجديدة مسبوقة بـ
Icons.AutoMirrored.Filled...
وما إلى ذلك، ويتم الاحتفاظ بالرموز التي سيتم عكسها تلقائيًا في تنسيقات RTL. راجِع قائمة رموز Material للاطّلاع على قائمة الرموز التي يمكن (وينبغي) عكسها تلقائيًا.
تغييرات واجهة برمجة التطبيقات
- تمت إتاحة استخدام الرموز التي تتم عكسها تلقائيًا عند عرضها بتنسيقات من اليمين إلى اليسار. توفّر الرموز في الوحدات الأساسية للرموز الأساسية وتلك التي تم توسيع رموز المواد الآن مجموعات رموز إضافية لإتاحة النسخ المطابق التلقائي عندما يسمح الرمز بذلك. تكون المجموعات الجديدة مسبوقة بـ
Icons.AutoMirrored.Filled...
وما إلى ذلك، ويتم الاحتفاظ بالرموز التي سيتم عكسها تلقائيًا في تنسيقات RTL. راجِع قائمة رموز Material للاطّلاع على قائمة الرموز التي يمكن (وينبغي) عكسها تلقائيًا. بعد ذلك، يتم الآن تصنيف سمات الرموز التي سبق أن تم تقديمها لهذه الرموز على أنّها متوقّفة، ويتم تقديم اقتراح بقالب بديل للمساعدة في عملية النقل. في حال لم يكن لديك أي تعامل خاص مع رموز النسخ المطابق على 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. على عكس مكونات المواد3، لا تدعم مكونات المواد2 الإدخال الافتراضي ويجب تمرير القيمة يدويًا. ارجع إلى النماذج المقابلة للحصول على إرشادات. (I655e8)
الإصدار 1.6.0-alpha02
26 تموز (يوليو) 2023
تم إصدار "androidx.compose.material:material-*:1.6.0-alpha02
". يحتوي الإصدار 1.6.0-alpha02 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- نحن ننقل تبعية الكثافة إلى مستوى المكوِّن. ينطبق ذلك على المكوّنات التالية:
SwipeToDismiss
والمكوّنات التي تستند إلى جدول بيانات Google. يُرجى استخدام الحمل الزائد الجديد المقدم حيث تكون الكثافة مَعلمة. (I1846e) - تعليقات توضيحية إضافية لتحديد الإدخالات المسموح بها في المحتوى القابل لإعادة الإنشاء (I51109)
- تعديل ملفات واجهة برمجة التطبيقات لإضافة تعليقات توضيحية بشأن إلغاء التوافق (I8e87a، b/287516207)
- تمت إضافة محاذاة بداية جديدة لـ
FabPosition
(Ib7aea، b/170592777) - تم إيقاف
TextFieldColorsWithIcons
نهائيًا في المادة 2 لصالحTextFieldColors
. عند تجاوزleadingIconColor
أوtrailingIconColor
، يمكنك أيضًا إلغاء التحميل الزائد باستخدامinteractionSource
. (Id57ed، b/199377790)
الإصدار 1.6.0-alpha01
21 حزيران (يونيو) 2023
تم إصدار "androidx.compose.material:material-*:1.6.0-alpha01
". يحتوي الإصدار 1.6.0-alpha01 على هذه الالتزامات.
التغييرات في السلوك
- أصبح
includeFontPadding
الآنfalse
تلقائيًا في أسلوب الخط في المادة 2. تم أيضًا تغيير نمط ارتفاع السطر التلقائي إلىTrim.None
وAlignment.Center
. يُرجى الرجوع إلى مستندات واجهة برمجة التطبيقات إذا كنت تريد تخصيص هذه القيم، ويمكنك الاطّلاع على مشاركة المدونة للحصول على شرح تفصيلي لهذه التغييرات. (Icabc3، I3f801، I04c03)
تغييرات واجهة برمجة التطبيقات
- تم إيقاف واجهات برمجة التطبيقات
Swipeable
في Material. يُرجى الاطّلاع على واجهات برمجة التطبيقات في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 في
BottomSheetScaffold
. تمت إعادة تسمية معلمةBottomSheetState
إلىconfirmStateChange
إلى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) - تم تحديث "الأدراج" و"جداول البيانات" لتأخير الضغطات بشكل صحيح في حال تحولت الإيماءات إلى أحداث تمرير.
- تمت إضافة المعلمة
minLines
إلى Material3 وMaterial3 للنص و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
بحيث يظهر أسفل إجراء التأكيد عند تكديس الإجراءات فوق بعضها البعض ليلائم عرض مربّع الحوار. يؤدي هذا الإصلاح إلى توافق عملية التنفيذ مع مواصفات Material Design (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
الجديدة. وبسبب ذلك، لن يتم تحديد واجهات برمجة التطبيقات (APIS) من نوعBottomDrawerState
الآن إلا على مستوى الفئة، ولن يكتسب الطُرق/الخصائص منSwipeableState
. نستخدم مقطوعة موسيقية معSwipeableV2State
داخلي. أصبحت offset الآن خاصية نقطة عائمة قابلة للقيم الفارغة، ولا يزال بالإمكان الوصول إلى القيمة الحالية وقيمة هدف التمرير السريع من خلال سمتَي "currentValue" و"targetValue". أما الطرق السابقة على مستوى الفئة، مثل فتح/توسيع/إغلاق/إغلاق خصائص مثلisOpen/isClosed
، فلا تزال متاحة. (Iad40c، b/178529942، b/220676296)
إصلاح الأخطاء
- تم تعديل البيانات الداخلية لمكوِّن Switch. سيعاين مفتاح التبديل الآن أقرب (الحالة المستهدَفة) عند السحب. (Id90d4)
- تم تحسين محتوى أوراق البيانات المتحركة (مثل
Modifier.animateContentSize
على محتوى الورقة) فيBottomSheetScaffold
ويعمل الآن بسلاسة. (Ia913c، b/270518202، b/254446195) - لن يشارك
BottomSheetScaffold
في التمرير المدمج بعد الآن عند ضبطgesturesEnabled
علىfalse
. (I634f3، b/215403277)
الإصدار 1.5.0-alpha02
5 نيسان (أبريل) 2023
تم إصدار "androidx.compose.material:material-*:1.5.0-alpha02
". يحتوي الإصدار 1.5.0-alpha02 على هذه الالتزامات.
إصلاح الأخطاء
- تم إصلاح الخطأ المتمثل في تعطل
BottomSheetScaffold
عند توفير محتوى فارغ للخانات. (Ib24a5، b/235588730) - إصلاح
PullRefreshIndicator
أحداث اعتراض النقرات / المؤشر (2494256، b/271777421)
الإصدار 1.5.0-alpha01
22 آذار (مارس) 2023
تم إصدار "androidx.compose.material:material-*:1.5.0-alpha01
". يحتوي الإصدار 1.5.0-alpha01 على هذه الالتزامات.
إصلاح الأخطاء
- إضافة نموذج لإعادة تدفق مجموعة الشرائح تعديل المساحة المتروكة الأفقية بين الشرائح الفرعية في عيّنة مجموعة الشرائح ذات السطر الواحد لتتطابق مع المواصفات (I3b155)
- تم إصلاح مشكلة تعطُّل
ModalBottomSheetLayout
في حالة الحافة عند تغيير الاتجاه. تعمل الآن رسوم التخطيط المتحركة (مثلModifier.animateContentSize
) داخل محتوى الورقة أو في محتوى الورقة بسلاسة. (I2f981، b/266780234)
الإصدار 1.4
الإصدار 1.4.3
3 أيار (مايو) 2023
تم إصدار androidx.compose.material:material-*:1.4.3
بدون أي تغييرات (إصدار تجريبي فقط).
الإصدار 1.4.2
19 نيسان (أبريل) 2023
تم إصدار "androidx.compose.material:material-*:1.4.2
". يتضمّن الإصدار 1.4.2 هذه الالتزامات.
الإصدار 1.4.1
5 نيسان (أبريل) 2023
تم إصدار "androidx.compose.material:material-*:1.4.1
". يتضمّن الإصدار 1.4.1 هذه الالتزامات.
الإصدار 1.4.0
22 آذار (مارس) 2023
تم إصدار "androidx.compose.material:material-*:1.4.0
". يحتوي الإصدار 1.4.0 على هذه الالتزامات.
تغييرات مهمة منذ الإصدار 1.3.0
تغييرات واجهة برمجة التطبيقات
- إضافة
Modifier.minimumInteractiveComponentSize
ويمكن استخدامها للاحتفاظ بحجم 48.dp على الأقل لتوضيح تفاعلات اللمس إذا كان حجم العنصر أصغر. (I33f58، b/258495559) - تم تضمين تغييرات في واجهات برمجة التطبيقات القابلة للتمرير السريع في
ModalDrawer
. تم استبدال الإجراءanimateTo
الخاص بـDrawerState
بالطرق المفتوحة والإغلاق وأصبحت الإزاحة الآن قابلة للقيم الفارغة. استخدِمrequireOffset
لطلب الإزاحة. (I3de9e) - تمت إضافة المعلمة
minLines
إلى Material3 وMaterial3 للنص وTextField
وOutlinedTextField
مما يسمح بتعيين الحد الأدنى لارتفاع المكوِّن من حيث عدد الأسطر (I4af1d). - تمت إضافة المَعلمة
minLines
إلى المعلّمتَينBasicText
وBasicTextField
. تسمح بتعيين الحد الأدنى لارتفاع هذه المواد المركبة من حيث عدد الأسطر (I24294، b/122476634)
الإصدار 1.4.0-rc01
8 آذار (مارس) 2023
تم إصدار androidx.compose.material:material-*:1.4.0-rc01
بدون أي تغييرات. يحتوي الإصدار 1.4.0-rc01 على هذه الالتزامات.
الإصدار 1.4.0-beta02
22 شباط (فبراير) 2023
تم إصدار "androidx.compose.material:material-*:1.4.0-beta02
". يتضمّن الإصدار 1.4.0-beta02 هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تم تضمين تغييرات في واجهات برمجة التطبيقات القابلة للتمرير السريع في
BottomSheetScaffold
. تمت إعادة تسمية معلمةBottomSheetState
إلىconfirmStateChange
إلىconfirmValueChange
. يتم عرضprogress
الآن كقيمة عائمة.animateTo
وsnapTo
داخليتان. يمكنك استخدامexpand()
وcollapse()
كبديل. تمت إزالةdirection
وoverflow
. تم استبدال الحقل "offset
" بـ "requireOffset()
". (I323b4)
إصلاح الأخطاء
- تمت إزالة الأدوار الدلالية من مساحات العرض القابلة للنقر والاختيار، وتم تعديل المكوّنات التي استخدمتها لضبط الأدوار باستخدام أداة التعديل.semantics (Ibb4ba).
- تعديل ثانوي على رموز Material الإضافية التي تعمل على تعديل الرموز
desktop_mac
وdirections
وkitchen
المعبأة. (I65f5e)
الإصدار 1.4.0-beta01
8 شباط (فبراير) 2023
تم إصدار "androidx.compose.material:material-*:1.4.0-beta01
". يتضمّن الإصدار 1.4.0-beta01 هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- يعمل على إصلاح المشكلة المتمثلة في عدم استهلاك
pullRefresh
للسرعة، مما يؤدي إلى عرض التمرير الزائد. تم أيضًا تغيير توقيع واجهة برمجة التطبيقات لـonRelease
lambda فيModifier.pullRefresh
لعرض التعويم للسرعة المستهلكة (I7db65، b/266874741) - تمت استعادة الموقع الإلكتروني
LocalMinimuTouchTargetEnforcement
ووضع علامة عليه بأنّه متوقف وإعادة التوجيه إلىLocalMinimumInteractiveComponentEnforcement
. (I60dd5)
الإصدار 1.4.0-alpha05
25 كانون الثاني (يناير) 2023
تم إصدار "androidx.compose.material:material-*:1.4.0-alpha05
". يحتوي الإصدار 1.4.0-alpha05 على هذه الالتزامات.
إصلاح الأخطاء
- تم إصلاح المشكلة المتمثلة في احتساب حالة
ModalBottomSheetLayout's HalfExpanded
بشكل غير صحيح وظهور ورقة البيانات عائمة. (I8c615، b/265610459) - تم إصلاح خطأ في
ModalBottomSheetLayout
يتسبّب في تعطُّل ورقة البيانات عند الانتقال من الوضع المخفي إلى الحالة المرئية في بعض الحالات. (Ia9265، b/265444789)
الإصدار 1.4.0-alpha04
11 كانون الثاني (يناير) 2023
تم إصدار "androidx.compose.material:material-*:1.4.0-alpha04
". يحتوي الإصدار 1.4.0-alpha04 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافتها في سمة دلالات
IsContainer
على "الأسطح". سيتم استخدام هذه السمة في تغيير لاحق يحدِّد ترتيب الاجتياز استنادًا إلى المعنى الدلالي للعناصر، مثل الأسطح. (I63379) - ضع علامة على الدالة
snapTo
في الدرج باعتبارها واجهة برمجة تطبيقات غير تجريبية. (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
. - تم تحديث "الأدراج" و"جداول البيانات" لتأخير الضغطات بشكل صحيح في حال تحولت الإيماءات إلى أحداث تمرير.
إصلاح الأخطاء
- تم إصلاح المشكلة المتمثلة في توقُّف
PullRefreshIndicator
بعد استدعاءonRefresh
، وذلك في حال عدم تغيير حالة إعادة التحميل إلى "صحيح". (Ie2416، b/248274004)
تعديلات التبعية
- تعتمد واجهة المستخدم لإنشاء المحتوى ومواد الإنشاء الآن على دورة الحياة 2.5.1. (I05ab0، b/258038814)
الإصدار 1.4.0-alpha02
تشرين الثاني (نوفمبر) 2022
تم إصدار "androidx.compose.material:material-*:1.4.0-alpha02
". يحتوي الإصدار 1.4.0-alpha02 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- يقبل كل من
awaitFirstDown
وwaitForUpOrCancellation
الآنPointerEventPass
لمزيد من المرونة. (I7579a، b/212091796) - تمت إضافة المعلمة
minLines
إلى Material3 وMaterial3 للنص و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
تشرين الثاني (نوفمبر) 2022
تم إصدار "androidx.compose.material:material-*:1.3.1
". يتضمّن الإصدار 1.3.1 هذه الالتزامات.
الإصدار 1.3.0
24 تشرين الأول (أكتوبر) 2022
تم إصدار "androidx.compose.material:material-*:1.3.0
". يتضمّن الإصدار 1.3.0 هذه الالتزامات.
تغييرات مهمة منذ الإصدار 1.2.0
تغيير قد يؤدي إلى عطل في السلوك
- وتم خفض الحد الأقصى للارتفاع المسموح به في مربّعات الحوار والنوافذ المنبثقة إلى 8 وحدات بكسل مستقلة الكثافة.
تغييرات واجهة برمجة التطبيقات
- أضف مكوِّن السحب لإعادة التحميل إلى Compose (I29168).
- غيِّر اسم المعلمة من قيم إلى قيمة في RangeSlider (I3b79a).
الإصدار 1.3.0-rc01
5 تشرين الأول (أكتوبر) 2022
تم إصدار "androidx.compose.material:material-*:1.3.0-rc01
". يحتوي الإصدار 1.3.0-rc01 على هذه الالتزامات.
الإصدار 1.3.0-beta03
21 أيلول (سبتمبر) 2022
تم إصدار "androidx.compose.material:material-*:1.3.0-beta03
". يتضمّن الإصدار 1.3.0-beta03 هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- إضافة مكوِّن Pull-To-إعادة تحميل إلى Compose (I29168)
الإصدار 1.3.0-beta02
7 أيلول (سبتمبر) 2022
تم إصدار "androidx.compose.material:material-*:1.3.0-beta02
". يتضمّن الإصدار 1.3.0-beta02 هذه الالتزامات.
لم يتم إجراء أي تغييرات منذ استخدام الإصدار 1.3.0-الإصدار التجريبي
الإصدار 1.3.0-beta01
24 آب (أغسطس) 2022
تم إصدار "androidx.compose.material:material-*:1.3.0-beta01
". يتضمّن الإصدار 1.3.0-beta01 هذه الالتزامات.
تغيير قد يؤدي إلى عطل في السلوك
وتم خفض الحد الأقصى للارتفاع المسموح به في مربّعات الحوار والنوافذ المنبثقة إلى 8 وحدات بكسل مستقلة الكثافة.
تم خفض الحد الأقصى للارتفاع المسموح به لمربّعات حوار الإنشاء والنوافذ المنبثقة من 30 بكسل مستقل الكثافة إلى 8 وحدات بكسل مستقلة الكثافة. يؤثر هذا التغيير في كل من مربعات الحوار والنوافذ المنبثقة المخصصة في واجهة المستخدم والمواد. يتم إجراء هذا التغيير للحدّ من أخطاء إمكانية الوصول على إصدارات 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/178013)顭
تمت إضافة
ComposableTarget
وComposableTargetMarker
وComposableOpenTarget
، وهي ميزة تتيح إعداد تقارير وقت التجميع للحالات التي تُسمّى فيها وظيفة قابلة للتكوين استهداف تطبيق لم يتم تصميمه لاستخدامه.في معظم الحالات، يمكن استنتاج التعليقات التوضيحية بواسطة المكوِّن الإضافي لإنشاء التجميع، لذا يجب أن يكون استخدام هذه التعليقات التوضيحية مباشرةً نادر الحدوث . والحالات التي لا يمكن استنتاجها تشمل إنشاء واستخدام محرِّر مخصّص أو دوال مجرّدة قابلة للتعديل (مثل طرق الواجهة) أو حقول أو متغيرات عمومية يمكن إنشاؤها (يتم استنتاج المتغيرات والمعلَمات المحلية) أو عند استخدام
ComposeNode
أو دوال ذات صلة قابلة للتعديل.بالنسبة إلى التطبيقات المخصّصة، يجب إضافة تعليق توضيحي بشأن
CompoableTarget
الدوال القابلة للتعديل والتي تستدعيComposeNode
أوReusableComposeNode
للدالة وأي أنواع من مَعلمات 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)
- تنسيق RTL ثابت في
LazyVerticalGrid
(aosp/1931080، b/207510535)
الإصدار 1.1.0
9 شباط (فبراير) 2022
تم إصدار "androidx.compose.material:material-*:1.1.0
". يحتوي الإصدار 1.1.0 على هذه الالتزامات.
تغييرات مهمة منذ الإصدار 1.0.0
- دعم ثابت لتأثير التمرير الزائد في نظام التشغيل Android 12
- تحسينات على تحديد حجم مساحة اللمس
- تجدر الإشارة إلى أنّه في ما يتعلّق بـ Compose 1.0، ستوسِّع مكوّنات Material من مساحة التنسيق الخاصة بها لاستيفاء إرشادات إمكانية الوصول المتعلّقة بمواد العرض حجم هدف اللمس. على سبيل المثال، سيتم توسيع هدف لمس الزر إلى أدنى حجم يبلغ 48x48dp، حتى في حال ضبط حجم الزر ليكون أصغر. يؤدي هذا إلى مواءمة Compose Material مع السلوك نفسه لمكونات التصميم المتعدد الأبعاد، مما يوفر سلوكًا متسقًا إذا قمت بمزج طرق العرض والإنشاء. ويضمن هذا التغيير أيضًا استيفاء الحد الأدنى من متطلبات إمكانية الوصول إلى مساحة اللمس عند إنشاء واجهة المستخدم باستخدام مكونات مادة الإنشاء.
- دعم ثابت لشريط التنقّل
- تم ترقية عدد من واجهات برمجة التطبيقات التجريبية سابقًا إلى القناة الثابتة
- الدعم مع الإصدارات الأحدث من لغة Kotlin
الإصدار 1.1.0-rc03
26 يناير 2022
تم إصدار "androidx.compose.material:material-*:1.1.0-rc03
". يحتوي الإصدار 1.1.0-rc03 على هذه الالتزامات.
التغييرات في السلوك
تجدر الإشارة إلى أنّه في ما يتعلّق بـ Compose 1.0، ستوسِّع مكوّنات Material من مساحة التنسيق الخاصة بها لاستيفاء حجم هدف اللمس لإرشادات إمكانية الوصول المتعلّقة بمواد العرض. على سبيل المثال، سيتم توسيع هدف لمس الزر إلى أدنى حجم يبلغ 48x48dp، حتى في حال ضبط حجم الزر ليكون أصغر. يؤدي هذا إلى مواءمة Compose Material مع السلوك نفسه لمكونات التصميم المتعدد الأبعاد، مما يوفر سلوكًا متسقًا إذا قمت بمزج طرق العرض والإنشاء. ويضمن هذا التغيير أيضًا استيفاء الحد الأدنى من متطلبات إمكانية الوصول إلى مساحة اللمس عند إنشاء واجهة المستخدم باستخدام مكونات مادة الإنشاء.
إصلاح الأخطاء
- تمت إضافة معلومات تصحيح أخطاء أفضل لأداة فحص التنسيق عند فحص الحدّ الأدنى لمعدِّلات مساحة اللمس. (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
التي تم إيقافها نهائيًا. يتلقّى الموقع الجديد موضع النقر وحدود الارتساء، ما يوفّر تحكّمًا أفضل في ما إذا كان يجب استدعاء onRejectRequest أم لا. على سبيل المثال، قد يكون ذلك مفيدًا لمنع إغلاق المرساة عند لمسها.- تمت إضافة
updateAndroidWindowManagerFlags
إلىPopupProperties
، للتحكُّم بمستوى منخفض من التحكُّم في الإشارات التي يتم تمريرها عبر النافذة المنبثقة إلى Android WindowManager. ستكون مَعلمة lambda هي العلامات التي يتمّ احتسابها من قيم PopupProperties التي تؤدي إلى ظهور علامات WindowManager: على سبيل المثال، searchable. ستكون نتيجة دالة lambda هي العلامات النهائية التي سيتم تمريرها إلى مدير النوافذ في Android. سيؤدي تحديث AndroidWindowManagerFlags تلقائيًا إلى ترك العلامات المحسوبة من المَعلمات بدون تغيير. يجب استخدام واجهة برمجة التطبيقات هذه بحذر، فقط في الحالات التي تنطوي فيها النافذة المنبثقة على متطلبات سلوك محدّدة للغاية. (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 إلى اللون الرئيسي واللون اللاحق. ويتيح هذا إمكانية تعديل مظهر TextField وفقًا لحالة التركيز. (I66923، b/198402662)
الإصدار 1.1.0-alpha04
15 أيلول (سبتمبر) 2021
تم إصدار "androidx.compose.material:material-*:1.1.0-alpha04
". يحتوي الإصدار 1.1.0-alpha04 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تم إيقاف الترميزَين
performGesture
وGestureScope
نهائيًا، وتم استبدالهما بـperformTouchInput
وTouchInjectionScope
. (Ia5f3f، b/190493367) - تمت إضافة السمة
touchBoundsInRoot
إلى السمةSemanticsNode
التي تتضمّن الحد الأدنى لحجم مساحة اللمس ليتمكّن المطوّرون من ضمان استيفاء أهداف اللمس للحدّ الأدنى من متطلبات تسهيل الاستخدام. (I2e14b، b/197751214)
إصلاح الأخطاء
- اسمح للمقطع بتوسيع حدود هدف اللمس إلى ما بعد منطقة المقطع لأغراض الحد الأدنى من أهداف اللمس. (I43e10، b/171509422)
- تم تعديل
Divider
بحيث يتوافق معDp.Hairline
لمَعلمة السُمك لدعم رسم فواصل أحادية البكسل بغض النظر عن كثافة العرض. (I16ffb، b/196840810)
الإصدار 1.1.0-alpha03
1 أيلول (سبتمبر) 2021
تم إصدار "androidx.compose.material:material-*:1.1.0-alpha03
". يحتوي الإصدار 1.1.0-alpha03 على هذه الالتزامات.
الميزات الجديدة
- تم تعديل ميزة الإنشاء
1.1.0-alpha03
للاعتماد على لغة البرمجة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 على هذه الالتزامات.
المساهمة الخارجية
- أصلح سلوك ScrollableState في حال كانت إزاحة التمرير السريع ضمن خطأ تقريبي لعلامة ارتساء. (I03d39، b/191993377)
الإصدار 1.1.0-alpha01
4 آب (أغسطس) 2021
تم إصدار "androidx.compose.material:material-*:1.1.0-alpha01
". يحتوي الإصدار 1.1.0-alpha01 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تم تعديل طريقة
DrawScope#drawImage
التي تستخدم مستطيلات المصدر والوجهة لاستهلاك مَعلمة FilterValue اختيارية. يفيد ذلك في فن البكسل الذي يهدف إلى وحدات البكسل عند تكبيره ليناسب فن البكسل. تم تعديل BitmapPainter + الصورة التي يمكن إنشاؤها أيضًا لاستهلاك مَعلمة Filterquality الاختيارية (Ie4fb0، b/180311607) - تمت إعادة تسمية BadgeBox إلى BadgedBox، وتغيير المعلمات لقبول إنشاء الشارة. تمت إضافة عنصر الشارة الذي يمثّل محتوى الشارة النموذجي لـ BadgedBox. (I639c6)
- تمت إضافة مكوِّن NavigationRail ويمكنك الاطّلاع على المستندات والنماذج للحصول على معلومات الاستخدام (I8de77).
إصلاح الأخطاء
- تمت إضافة نموذج NavigationRail محاذاة إلى أسفل وعرض تجريبي لتطبيق Catalog. (I3cffc)
- تتبع مربّعات الحوار الآن سلوك تغيير حجم النظام الأساسي. اضبط usePlatformDefaultDisplay على "خطأ" لإلغاء هذا السلوك. (Iffaed، b/192682388)
- تمت إضافة الإصدار التجريبي من شريط التنقّل إلى تطبيق الكتالوج. (I04960)
- تمت إضافة العرض التوضيحي للشارة إلى تطبيق الكتالوج. (If285d)
الإصدار 1.0
الإصدار 1.0.5
3 تشرين الثاني (نوفمبر) 2021
تم إصدار "androidx.compose.material:material-*:1.0.5
". يحتوي الإصدار 1.0.5 على هذه الالتزامات.
إصلاح الأخطاء
- تم إصلاح مثيلاتStateOf المستمَدة من تتبُّع الأعطال. (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
. لا يزال إنشاء 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" 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).
إصلاح الأخطاء
- للتوافق مع مواصفات "التصميم المتعدد الأبعاد"، تم إيقاف استخدام لون الخطأ للتصنيف عند استخدام التصنيف كعنصر نائب، وذلك بسبب إدخال بيانات غير صالحة. يكون الخيار الأخير صحيحًا عندما لا يكون هناك نص إدخال في حقل النص ولا يكون حقل النص محل التركيز. نتيجةً لذلك، تم أيضًا تغيير معنى المَعلمة
error:Boolean
في الدالةTextFieldColors.labelColor()
، وسيعرض الآن الخطأfalse
حتى إذا كان الإدخال غير صالح في حال استخدام التصنيف كعنصر نائب. (I45f78)
الإصدار 1.0.0-beta09
16 حزيران (يونيو) 2021
تم إصدار "androidx.compose.material:material-*:1.0.0-beta09
". يتضمّن الإصدار 1.0.0-beta09 هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة معلمة الشكل إلى OutlinedTextField لتتمكن من تخصيص شكل الحد (I8f39e، b/181322957)
- تم تغيير TextOverflow إلى فئة مضمّنة. (I433af)
إصلاح الأخطاء
- سيختفي Scrim in BottomDrawer وBackdropScaffold وModalBottomSheetLayout ثم Color.Unspecifieded (I2d899, b/182063309).
قواعد الملف الشخصي المُضافة
يضيف هذا الإصدار قواعد الملف الشخصي إلى وحدات الإنشاء التالية (I14ed6):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-Formatting
- 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
للإشارة إلى ما إذا كان يجب وضع علامة على هذه الطريقة باعتبارها "Hot" أو "Startup" (بدء التشغيل) أو "Post Startup" (بدء التشغيل).تمثّل السمة
<CLASS_DESCRIPTOR>
واصف الفئة التي تنتمي إليها الطريقة المستهدَفة. على سبيل المثال، يجب أن تتضمن الفئةandroidx.compose.runtime.SlotTable
واصفًا للسمةLandroidx/compose/runtime/SlotTable;
.<METHOD_SIGNATURE>
هو توقيع الطريقة، ويتضمن الاسم وأنواع المعلمات وأنواع الإرجاع للطريقة. على سبيل المثال، تحتوي الطريقةfun isPlaced(): Boolean
فيLayoutNode
على التوقيعisPlaced()Z
.ويمكن أن تحتوي هذه الأنماط على أحرف بدل (
**
و*
و?
) للحصول على قاعدة واحدة تضم طرقًا أو فئات متعددة.
ماذا تفعل القواعد؟
تشير الطريقة التي تتضمّن العلامة
H
إلى أنّ هذه الطريقة هي طريقة "فعالة"، ويجب تجميعها مسبقًا.تشير الطريقة التي تتضمّن العلامة
S
إلى أنّها طريقة يتم استدعائها عند بدء التشغيل، ويجب تجميعها مسبقًا لتجنّب تكلفة التجميع وتفسير الطريقة في وقت بدء التشغيل.تشير الطريقة التي تتضمّن العلامة
P
إلى أنّها طريقة يتم استدعائها بعد بدء التشغيل.تشير الفئة المتوفّرة في هذا الملف إلى أنّه يتم استخدامها أثناء بدء التشغيل ويجب تخصيصها مسبقًا في كومة الذاكرة المؤقتة لتجنُّب تحمُّل تكلفة تحميل الفئة.
آلية العمل
- يمكن للمكتبات تحديد هذه القواعد التي سيتم تجميعها في عناصر AAR. عندما يتم بعد ذلك إنشاء حزمة APK تتضمّن هذه العناصر، يتم دمج هذه القواعد معًا واستخدام القواعد المدمجة لإنشاء ملف شخصي ثنائي مدمج لتطبيق ART يكون خاصًا بحزمة APK. ويمكن لـ ART بعد ذلك الاستفادة من هذا الملف الشخصي عند تثبيت حزمة APK على الأجهزة من أجل تجميع مجموعة فرعية محدّدة من التطبيق مسبقًا لتحسين أداء التطبيق، وخاصةً عند التشغيل الأول. وتجدر الإشارة إلى أنّ هذا الإجراء لن يؤثر في التطبيقات التي يمكن تصحيح الأخطاء فيها.
الإصدار 1.0.0-beta08
2 حزيران (يونيو) 2021
تم إصدار "androidx.compose.material:material-*:1.0.0-beta08
". يتضمّن الإصدار 1.0.0-beta08 هذه الالتزامات.
الميزات الجديدة
تغيير في واجهة برمجة التطبيقات لخرق السلوك
- تعديل السلوك: تستهلك البطاقة الآن النقرات، ما يجعل النقرات التي تتم إضافتها عبر
Card(Modifier.clickable)
بيئة مستقلة. يُرجى استخدام تحميل تجريبي جديد للبطاقة التي تقبل ميزة onClick. (Ia8744، b/183775620)- تمت إضافة "بطاقة إضافية" جديدة تعالج النقرات بالإضافة إلى الوظائف الأخرى القابلة للنقر، مثل المؤشر، ومصدر التفاعل، وتفعيل/إيقاف. لم يكن من الممكن استخدام بطاقة عادية غير قابلة للنقر مع
Modifier.clickable
لأنّ البطاقة لن تقتطع إشارة التموج في تلك الحالات.
- تمت إضافة "بطاقة إضافية" جديدة تعالج النقرات بالإضافة إلى الوظائف الأخرى القابلة للنقر، مثل المؤشر، ومصدر التفاعل، وتفعيل/إيقاف. لم يكن من الممكن استخدام بطاقة عادية غير قابلة للنقر مع
- تعطُّل السلوك: يستهلك السطح الآن النقرات، ما يجعل النقرات التي تتم إضافتها عبر
Surface(Modifier.clickable)
بيئة مستقلة. يُرجى استخدام أحمال تجريبية جديدة على السطح الذي يقبل نقرات على النقر. (I73e6c، b/183775620)- تمت إضافة ميزة "سطح المكتب الزائد" الجديدة التي تعالج النقرات بالإضافة إلى الوظائف الأخرى القابلة للنقر، ومنها "الإشارة" و"مصدر التفاعل" وتفعيل/إيقاف. لم يكن من الممكن استخدام سطح عادي لا يمكن النقر عليه مع
Modifier.clickable
لأنّ "سطح المكتب" لن يلتقط إشارة التموّج في تلك الحالات.
- تمت إضافة ميزة "سطح المكتب الزائد" الجديدة التي تعالج النقرات بالإضافة إلى الوظائف الأخرى القابلة للنقر، ومنها "الإشارة" و"مصدر التفاعل" وتفعيل/إيقاف. لم يكن من الممكن استخدام سطح عادي لا يمكن النقر عليه مع
تغييرات واجهة برمجة التطبيقات
- تم تحويل
FabPosition
إلى فئة مضمّنة من التعداد لدعم التوسع المحتمل في المستقبل (I030fb) - إعادة هيكلة استخدامات التعداد للصفوف المضمّنة لتجنب مشاكل متعلقة بالشاملة عند إضافة قيم تعداد جديدة. (I2b5eb)
- لإضافة مهلة النقر إلى الإعلان القابل للنقر / التبديل لمنع ظهور تمويج أثناء التمرير / السحب (Ia2704، b/168524931)
- لم تعد خصائص ContentDescription و"النص" الدلالي قيمًا فردية بل قوائم. وهذا يتيح دمجها كما هي بدلاً من التسلسلات. تم أيضًا توفير واجهات برمجة تطبيقات اختبارية أفضل للاستفادة من هذه التغييرات (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 هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- لم تعد بحاجة إلى استخدام طرق الامتداد لدعم المسار في ميزة التنقل Compose. (I22beb، b/172823546)
الإصدار 1.0.0-beta06
5 أيار (مايو) 2021
تم إصدار "androidx.compose.material:material-*:1.0.0-beta06
". يتضمّن الإصدار 1.0.0-beta06 هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تم نقل Ripple لاستخدام
RippleDrawable
داخليًا على أجهزة Android. وهذا يعني أنّ الرسوم المتحركة المتموجة ستحدث على RenderThread، وبالتالي ستكون سلسة حتى عندما تكون سلسلة تعليمات واجهة المستخدم قيد التحميل، كما هو الحال عند التنقّل بين الشاشات. ولا يؤدي هذا إلى تغيير سطح واجهة برمجة التطبيقات للتموجات، ولكن قد تكون هناك تغييرات في السلوك نتيجة لهذا التغيير. للمساعدة في عملية النقل، تمت إضافةLocalRippleNativeRendering
. يمكنك تقديم قيمةfalse
إلى PerformanceLocal هذا للرجوع إلى عملية تنفيذ التموج السابقة ضمن AnalyzeLocalProvider. إنّ واجهة برمجة التطبيقات هذه مؤقتة وستتم إزالتها في المستقبل، لذلك إذا واجهت مشاكل تؤدي إلى استخدامها، يُرجى الإبلاغ عن خطأ. (I902f8، b/168777351، b/183019123) - تمت إضافة واجهات برمجة تطبيقات AccessibilityInfo وCollectionItemInfo API التي تسمح بوضع علامة على المجموعة وعناصرها لخدمات تسهيل الاستخدام (Id54ef، b/180479017).
- تمت إضافة واجهة برمجة التطبيقات لتسهيل الاستخدام
error
والتي تسمح بوضع علامة على عقدة تحتوي على إدخال غير صالح (I12997، b/180584804، b/182142737)
إصلاح الأخطاء
- تم تحديث تنفيذ إدخالات كتالوج Compose Material من: https://github.com/google/accompanist/pull/365. (I25dc3)
- لم تعد العناصر الثانوية للصف والأعمدة ذات الوزن(fill = false) تجعل العنصر الرئيسي يملأ مساحة المحور الرئيسي المتاحة بالكامل. (Ied94d، b/186012444، b/184355105)
الإصدار 1.0.0-beta05
21 نيسان (أبريل) 2021
تم إصدار "androidx.compose.material:material-*:1.0.0-beta05
". يتضمّن الإصدار 1.0.0-beta05 هذه الالتزامات.
إصلاح الأخطاء
- تمت إضافة صور مربّعات المكوّنات وأداة اختيار المظاهر وعناوين URL لقوائم أكثر تحديدًا إلى كتالوج Compose Material الحالي. (I9b58e)
الإصدار 1.0.0-beta04
7 نيسان (أبريل) 2021
تم إصدار "androidx.compose.material:material-*:1.0.0-beta04
". يتضمّن الإصدار 1.0.0-beta04 هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تغيير واجهة برمجة التطبيقات: لم تعُد حالة "
DrawerState
" تسمح بتوسيع ميزة ScrollableState التجريبية.- تغيير واجهة برمجة التطبيقات: تم الآن وضع علامة "تجريبي" على
BottomDrawerState
لمطابقة المكوِّن التجريبي BottomDrawer الحالي (I81114، b/181656094)
- تغيير واجهة برمجة التطبيقات: تم الآن وضع علامة "تجريبي" على
- إعادة تسمية
hideSoftwareKeyboard
وshowSoftwareKeyboard
فيSoftwareKeyboardController
إلىhide()
وshow()
على التوالي.- توفير واجهة AnalyzeLocal الكاملة لـ LocalSoftwareKeyboardController حتى يمكن ضبطها (مفيدة بشكل خاص في الاختبارات) (I579a6)
- تمت إضافة واجهة برمجة التطبيقات لإمكانية الوصول إلى LiveRegion. إذا تم وضع علامة على العقدة كمنطقة نشطة، ستُعلِم خدمات تسهيل الاستخدام المستخدم تلقائيًا بالتغييرات التي يتم إجراؤها (Idcf6f، b/172590946)
إصلاح الأخطاء
- تمت إضافة تطبيق كتالوج Compose Material إلى الوحدة الحالية. غير متوفّر حاليًا: صور مربّعات المكوّنات، وأداة اختيار المظاهر (ستتم إضافتها في تغييرات المتابعة). (Ie7a94)
الإصدار 1.0.0-beta03
24 آذار (مارس) 2021
تم إصدار "androidx.compose.material:material-*:1.0.0-beta03
". يتضمّن الإصدار 1.0.0-beta03 هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تم إيقاف
DefaultMonotonicFrameClock
نهائيًا. عند الاتصال بـwithFrameNanos
أوRecomposer.runRecomposeAndApplyChanges
بدونMonotonicFrameClock
، سيتم الآن عرضIllegalStateException
. (I4eb0d) - تمت إضافة واجهة برمجة التطبيقات
LeadingIconTab
جديدة لإتاحة عرض رمز ونص مضمّن في علامة تبويب. (I23267)
المساهمة الخارجية
- [من إعداد جوسي وولف] يلتف تطبيق "
BottomDrawer
" الآن محتوى فتحة اللائحة. لا يوفّرBottomDrawer
القيمةIllegalStateException
عندما يكون ارتفاع الطفل غير محدود. سيتم فتح اللائحة السفلية الآن في حالة موسّعة إذا كانت أصغر من% 50 من المساحة الرئيسية. تم تحديث المستندات حولBottomDrawerState
وModalBottomSheetLayoutState
. تعرض الدالةBottomDrawerState#isOpen
القيمة "صحيح" الآن إذا كانت بالحالة "مفتوحة" أو "موسَّعة". (I87241)
الإصدار 1.0.0-beta02
10 آذار (مارس) 2021
تم إصدار "androidx.compose.material:material-*:1.0.0-beta02
". يتضمّن الإصدار 1.0.0-beta02 هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة واجهة برمجة التطبيقات المحلية الجديدة لتركيب
LocalSoftwareKeyboardController
لاستبدال واجهةSoftwareKeyboardController
السابقة في TextField. (I5951e، b/168778053)
إصلاح الأخطاء
- فرض قيود على الاستخدام العام لواجهات برمجة التطبيقات التجريبية (I6aa29، b/174531520)
- تم تغيير المحاذاة الأفقية التلقائية لـ TopAppBar وBottomAppBar إلى "البدء"، بما يتوافق مع الصف (Ib2dc7).
- تمت إضافة وحدة جديدة وواجهة مستخدم نائبة لكتالوج Compose Material، ومدمجة حاليًا في العروض التوضيحية لاختبار الدمج الحالية. (Idfcb3)
- لم يعُد
androidx.compose.ui:ui
يعتمد على AppCompat أو Fragment. إذا كنت تستخدم ComposeView في تطبيقك، وكنت تستخدم Fragment و/أو AppCompat، تأكّد من استخدام AppCompat الإصدار 1.3 أو الإصدارات الأحدث / الإصدار 1.3 والإصدارات الأحدث من Fragment، فهذه الإصدارات لازمة لضبط مراحل نشاط المستخدم والحفاظ على مالكي الحالة المحفوظين المطلوبين لتطبيق ComposeView بشكلٍ صحيح. (I1d6fa، b/161814404)
الإصدار 1.0.0-beta01
24 شباط (فبراير) 2021
تم إصدار "androidx.compose.material:material-*:1.0.0-beta01
". يتضمّن الإصدار 1.0.0-beta01 هذه الالتزامات.
هذا هو الإصدار الأول من Compose 1.0.0 التجريبي.
تغييرات واجهة برمجة التطبيقات
- تمت إعادة تسمية أدوات تعديل الحجم. تمت إعادة تسمية Modifier.width/height/size إلى requiredSetup/requiredHeight/requiredSize. تمت إعادة تسمية Modifier.PreferredOffer/FavoriteHeight/PreferredSize إلى العرض/الارتفاع/الحجم. (I5b414)
- imageResource و بمزيد من المعلومات هما الآن دالتا إضافة على رفيقتي ImageBitmap وImageVector على التوالي. load{Image,Vector,Font}تم حذف دوال الموارد. (I89130)
- لم تعد مُعدّلات تغيير الحجم حسب القيم الأساسية تجريبية. (I15744)
- تمت إزالة تأكيدات dp (I798d2)
- تمت إزالة معاودة الاتصال SoftwareKeyboardController من جميع الحقول النصية ليتم استبدالها بواجهة برمجة تطبيقات جديدة قريبًا. (Iae869، b/168778053)
- أصبحت الآن قيم lambdas للإجراء "التبديل" و"Checkbox" و"RadioButton" قابلة للقيم الفارغة. تم تحديث نماذج صف قابل للنقر ضمن مربّع الاختيار لاستخدام هذه الميزة. (If601b، b/171819073)
- تم استبدال الحقل "
InteractionState
" بـ "[Mutable]InteractionSource
"- تكون الواجهات مسؤولة عن إصدار أحداث التفاعل أو جمعها.
- وبدلاً من تمرير
interactionState = remember { InteractionState() }
إلى مكوّنات مثلButton
وModifier.clickable()
، استخدِمinteractionSource = remember { MutableInteractionSource() }
. - بدلاً من:
Interaction.Pressed in interactionState
، عليك استخدام دوال الإضافات في InteractionSource، مثل InteractionSource.collectIsPressedAsState(). - في حالات الاستخدام المعقّدة، يمكنك استخدام InteractionSource.interactions لمراقبة تدفق التفاعلات. لمزيد من المعلومات، يمكنك الاطّلاع على مستندات InteractionSource ونماذجها.
- (I85965 وb/152525426 وb/171913923 وb/171710801 وb/174852378)
- إضافة واجهة AccessibilityMananger و LocalAccessibilityMananger في تكوينLocals (I53520)
- تمت إزالة طرق LayoutCoordinates المتوقفة نهائيًا، استخدِم الدالة بدلاً من خاصية positionInParent وboundsInParent (I580ed، b/169874631، b/175142755)
- يتوافق شريط التمرير الآن مع حالة التفعيل/الإيقاف (I6d56b، b/179793072).
- تم إنشاء TextInputSession جديد لجلسات الإدخال من مكونات نصية منخفضة المستوى مثل CoreTextField. (I8817f، b/177662148)
- تمت إزالة AnimationEndStatus.Interrupted. سيتم إلغاء خطوة الإلغاء في حال مقاطعة الرسوم المتحركة. (I2cbbc، b/179695417)
- تمت إزالة
@ExperimentalRippleApi
وتغييرRippleAlpha
ليصبح فئة ذات خصائص بدلاً من واجهة. (I6df7c) - تمت إضافة واجهة TextFieldColors لتمثيل الألوان المختلفة المستخدَمة في TextField وOutdTextField في حالات مختلفة. وبالنسبة إلى التنفيذ المجهول، يُرجى الاطّلاع على TextFieldDefaults.textFieldColors وTextFieldDefaults.outlinedTextFieldColors.
- تمت إعادة تسمية معلمة isErrorValue داخل TextField و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 الآن (I81298).
تم تغيير حزمتَي sample ScrollBy وScrollBy الطرق إلى
androidx.compose.foundation.gestures.*
(I3f7c1 وb/175294473).تمت إعادة تسمية FlingConfig إلى FlingBehavior يمكنها الآن تخصيص تعليق الرسوم المتحركة بدلاً من حالات الانحدار المحددة مسبقًا. (I02b86، b/175294473)
تمت إعادة تسمية أدوات تعديل الحجم. تمت إعادة تسمية Modifier.width/height/size إلى requiredSetup/requiredHeight/requiredSize. تمت إعادة تسمية Modifier.PreferredOffer/FavoriteHeight/PreferredSize إلى العرض/الارتفاع/الحجم. (I5b414)
تمت إعادة تسمية defaultMinSizeConstraints إلى defaultMinSize. (I4eaae)
تم نقل الاتجاه إلى حزمة الأساس. تم نقل VelocirtTracker من ui.gesture إلى ui.input.pointer. (Iff4a8، b/175294473)
يتم الآن تعليق الدالة drawerState.open() و drawerState.Close() . تُستخدَم صانعة تذكّرCoroutineScope() للحصول على نطاق المقطوعة الموسيقية من أجل طلبها (I16f60 ، b/175294473).
تمت إعادة تسمية مقدّمي الخدمات إلى MembershipLocalProvider.
- لم تعُد الدالة الإنشائية للمقطوعة الموسيقية تقبل مَعلمة رئيسية، وقد تم إيقافها نهائيًا.
- تم تحويل ترميز Currents المُركّب إلى سمة من المستوى الأعلى بدلاً من دالة المستوى الأعلى المركّبة.
- تم نقل بيانات التركيبة والمقطوعة الموسيقية إلى مساحة الاسم androidx.compose.runtime.tooling.
- تم تصميم ComposableLambda كواجهة بدلًا من فئة ملموسة، ولم تعد تحتوي على معلمات النوع.
- تم تصميم ComposableLambdaN كواجهة بدلًا من فئة ملموسة، ولم تعد تحتوي على معلمات النوع.
- تم نقل دالة drawFlow إلى مساحة الاسم androidx.compose.runtime.
- لم تعُد طريقة دمج SnapshotMutationPolicy تجريبية
- تمت إزالة دالة clearRoots ذي المستوى الأعلى
@TestOnly
. لم يعد من الضروري. - تمت إزالة الدالتين keySourceInfoOf وresetSourceInfo. لم تعد ضرورية.
- تمت إزالة Composer.collectKeySourceInformation. لم يعد من الضروري.
- تمت إزالة طرق 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التنقلItem إلى ما بعدselected
وonClick
. - تمت إعادة تسمية المعلَمة
alwaysShowLabels
في Bottom NavigationItem إلىalwaysShowLabel
. - تمت إعادة تسمية المعلَمات
bodyContent
في بعض المكوّنات لتصبحcontent
فقط. - المَعلمات المُعاد ترتيبها في
ButtonDefaults.buttonColors()
تجدر الإشارة إلى أنّ نوع المَعلمات لم يتغيّر ولن يتسبب في حدوث خطأ في الرمز. يُرجى التأكّد من استخدام المَعلمات المُسمّاة أو تعديل الترتيب يدويًا، وإلا لن يعمل الرمز بالطريقة نفسها كما كان في السابق. - تمت إضافة مَعلمة
secondaryVariant
إلىdarkColors()
. عادةً ما يكون هذا اللون هو نفسهsecondary
في المظهر الداكن، ولكن لتحقيق التناسق والمزيد من التخصيص. - تمت إزالة ElevationDefaults وanimateElevation() من سطح واجهة برمجة التطبيقات العامة لأنهما لم يتم استخدامهما بشكل شائع أو مفيدين.
- تمت إعادة تسمية
onValueChangeEnd
فيSlider
إلىonValueChangeFinished
وجعلها قابلة للقيم الفارغة. - تمت إعادة تسمية المعلَمة
text
فيSnackbar
إلىcontent
لتحقيق التناسق. - تمت إضافة المعلمة
contentPadding
إلىDropdownMenuItem
للسماح بتخصيص المساحة المتروكة التلقائية وجعلcontent
إضافة فيRowScope
. - تمت إعادة تسمية
ModalDrawerLayout
إلىModalDrawer
. - تمت إعادة تسمية
BottomDrawerLayout
إلىBottomDrawer
. - (I1cc66)
يقبل BasicTextField الآن استخدام الفرشاة بدلاً من اللون للحصول على تخصيص أفضل (I83a36)
imageResource و بمزيد من المعلومات هما الآن دالتا إضافة على رفيقتي ImageBitmap وImageVector على التوالي. load{Image,Vector,Font}تم حذف دوال الموارد. (I89130)
تم تغيير Indexation#createIndexation() إلى Indexation#rememberupdated فعِّل(InteractionState)، وتُزيل مَعلمة InteractionState من التحقّق من Instance#draw فيديوهات التصنيف(). يجب أن يكون IndexationInstance مسؤولاً فقط عن رسم التأثيرات المرئية، وليس عن تشغيل الرسوم المتحركة / حالة الكتابة استجابةً للتغييرات التي تطرأ على InteractionState. يجب أن تتم هذه الرسوم المتحركة وكتابات الحالة ضمن
rememberUpdatedIndication()
بدلاً من ذلك. وتم أيضًا تغيير المَعلمةindication
فيModifier.indication
لتصبح مَعلمة مطلوبة. (Ic1764، b/152525426)
إصلاح الأخطاء
- تمت إضافة واجهة برمجة التطبيقات المحلية الجديدة لتكوين LocalSoftwareKeyboardController بدلاً من واجهة SoftwareKeyboardController السابقة في TextField. (I658b6، b/168778053)
الإصدار 1.0.0-alpha12
10 شباط (فبراير) 2021
تم إصدار "androidx.compose.material:material-*:1.0.0-alpha12
". يحتوي الإصدار 1.0.0-alpha12 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- يتطلب Modifier.pointerInput الآن تذكُّر مفاتيح للإشارة إلى الوقت الذي يجب فيه إعادة تشغيل الكوروتين الخاص برصد إدخالات المؤشر في التبعيات الجديدة. (I849cd)
- تم وضع علامة على BottomDrawerLayout وListItem بالرمز @PersonalMaterialApi (Id766e).
- تمت إضافة PaddingValues.Absolute ويمكن استخدامه في واجهات برمجة التطبيقات التي تقبل PaddingValues. (Ia5f30)
- تم إيقاف onImeActionPerform نهائيًا. يُرجى استخدام Keyboard Actions بدلاً من ذلك (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)
- تم تغيير Registration#createInstance ليصبح @Composable وغيَّر مؤشر اللغة المحلية ليحتوي على مؤشر، وليس () -> مؤشر. (I5eeea، b/157150564)
- تم نقل "مربع حوار التنبيه" و"القائمة المنسدلة" إلى نظام التشغيل Android فقط في الوقت الحالي. تمت إضافة معلمة PopupProperties إلى القائمة المنسدلة لإجراء مزيد من التكوين للنافذة المنبثقة الأساسية. (I9c443)
- تم إيقاف uploadFontResource. استخدِم fontResource بدلاً من ذلك. تم إيقاف "imageResource" وloadImageResource و"fontResource" و"loadVectorResource" نهائيًا. استخدم PainterResource بدلاً من ذلك. (I6b809)
- تمت إزالة المعلَمة
toggle
وtoggleModifier
من القائمة المنسدلة، وتمت إعادة تسميةdropdownModifier
وdropdownOffset
وdropdownContent
إلىmodifier
وoffset
وcontent
على التوالي. تتصرف قائمة Dropdown Menu الآن بشكل متوافق مع السمةPopup
، حيث يتم استخدام التنسيق الرئيسي لموضع القائمة. في معظم الحالات، يمكنك نقلtoggle
ليكون عنصر تابع لـDropdownMenu
ووضع كلا التنسيقَين فيBox
. يُرجى الاطّلاع على النموذج المعدّل في المستندات للحصول على مزيد من المعلومات عن استخدام واجهة برمجة التطبيقات هذه. (I884fb) - تمت إعادة تسمية toIntPx() إلى roundToPx(). (I9b7e4، b/173502290)
- تمت إعادة تسمية IntBounds إلى IntRect وتم تحسين واجهة برمجة التطبيقات. (I1f6ff)
- تمت إضافة إجراءات دلالات "توسيع وتصغير". تمت إضافة عرض "عرض" و"أفني موسّعة" في ModalBottomSheetState (Ib5064)
- تم إيقاف واجهة برمجة التطبيقات Modifier.dragActivityFilter نهائيًا. يمكنك استخدام
Modifier.pointerInput { detectDragGestures (...)}
كبديل. بدلاً من ذلك، استخدِم Modifier.draggable لسحب محور واحد (I0ba93، b/175294473). - تمت إعادة تسمية "وضع الإضاءة السينمائية" لتتناسب مع إعادة تسمية "وضع الاستراحة" -> تكوين محلية. كان يُطلق اسم "أمبيانت" على البيئة المحيطة، أما الآن يُطلق اسم EnvironmentLocals على اسم LocalFoo. (I2d55d)
- تم نقل التحديد إلى الأساس. (I7892b)
- سنزيل
savedInstanceState { 0 }
كتلك التي تتضمنها فيديوهاتك، وذلك مثلما أزلناstate { 0 }
كتلك التي كانت تُستخدَم في السابق، ونحن نعمل حاليًا على الترويج للاستخدام، مثلremember { mutableStateOf(0) }
. يجب استخدامrememberSaveable { mutableStateOf(0) }
بدلاً من ذلك، وسيتم الحفظ والاستعادة تلقائيًا إذا كان النوع المستخدَم داخل MutableState مخزّنًا في الحزمة. إذا كنت تُمرِّر في السابق كائن توفير مخصّص، يجب الآن استخدام حمل زائد جديد للتذكر المحفوظ في الملف الذي يحتوي على معلَمةstateSaver
. سيظهر الاستخدام على النحو التالي:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26، b/177338004) - تمت إضافة ProgressBarRangeInfo.Indeterminate لوضع علامة على أشرطة التقدم غير المحددة لإمكانية الوصول (I6fe05)
تم إيقاف @ComposableContract لتحل محلها ثلاثة تعليقات توضيحية أكثر تحديدًا.
- تم تغيير دور "
@ComposableContract(restartable = false)
" إلى "@NonRestartableComposable
". - تم تغيير دور "
@ComposableContract(readonly = true)
" إلى "@ReadOnlyComposable
". - تم تغيير دور "
@ComposableContract(preventCapture = true)
" إلى "@DisallowComposableCalls
". - تمّت إزالة
@ComposableContract(tracked = true)
. - (I60a9d)
- تم تغيير دور "
تم إيقاف أداتَي الخدمات
emptyContent()
و(@Composable () -> Unit).orEmpty()
نهائيًا لأنّه لم يعُد لهما أي تأثير إيجابي في الأداء أو القيمة (I0484d).renameSavedInstanceState() (I1366e، b/177338004)
تم نقل Saver وlistSaver() وmapSaver() والحفظ التلقائي من androidx.compose.runtime.savedinstancestate إلى androidx.compose.runtime.saveable (I77fe6)
تمت إعادة تسمية معلمات RounderCornerShape وCutCornerShape وCornerBasedShape من اليسار/اليمين إلى البداية/النهاية من أجل دعم النسخ المطابق التلقائي للشكل في اتجاه rtl. تم تقديم AbsoluteRounderCornerShape وAbsoluteCutCornerShape للحالات التي لا يكون فيها النسخ المطابق التلقائي مطلوبًا. (I61040، b/152756983)
تم تغيير المَعلمتَين
text
وicon
في علامة التبويب والمعلَمةlabel
في Bottom NavigationItem بحيث تكون قابلة للقيم الفارغة، وذلك لنقل سلوك المكوِّن بشكلٍ أفضل عند توفير أو عدم توفير هاتين المَعلمتَين، لأنّهما يؤثران في حجم المكوِّن وتنسيقه. إذا كنت تمررemptyContent()
حاليًا لعدم تمثيل أي نص أو رمز أو تصنيف، يجب استخدامnull
بدلاً من ذلك. (I57ed4)تمت إعادة تسمية contentColorFor معلمة اللون إلى colorColor (I5bb67)
تم إيقاف TabDefaults واستبدلته بـ TabRowDefaults. (I0f189)
تم تقديم واجهة برمجة التطبيقات ColorMatrix API المستخدمة لتعديل قيم rgb لمحتوى المصدر Refactored ColorFilter API لتكون واجهة ومطابقة تنفيذ PathEffect. (Ica1e8)
نتيجةً لذلك، تم الآن إيقاف العمل بميزة "الرسوم المتحركة/العائمة". يُرجى استخدام رسوم متحركة بدلاً من ذلك. (I71345، b/177457083)
إضافة واجهة برمجة التطبيقات SemanticsProperties.PaneTitle (I20d5a)
تمت إضافة المعلمات المفعّلة إلى Tab وBottomالتنقلItem، لمنع النقر عليهما. تم تغيير Bottom NavigationItem إلى RowScope.Bottom NavigationItem للتعبير بشكلٍ أفضل عن متطلبات التنسيق في واجهة برمجة التطبيقات الخاصة به. (Id683d)
تم إيقاف clickOptionFilter وDoubleTap إِلَىFilterFilter وlongPressOptionFilter و press متصفِّحaitonAnimationFilter نهائيًا. ويمكنك استخدام Modifier.clickable أو Modifier.pointerInput مع وظيفة revealTapالإيماءات بدلاً من ذلك. (I6baf9، b/175294473)
أضف معلمة schemaDirection إلى سمة createOutline في الشكل. يسمح هذا بإنشاء أشكال تراعي اتجاه التخطيط. (I57c20، b/152756983)
تمت إزالة
Recomposer.current()
. [Abstract]ComposeView الآن يتم إنشاؤها تلقائيًا على أدوات إعادة الإنشاء على مستوى النافذة والتي يتم إنشاؤها بشكل كسول والمستندة إلى ViewTreeLifecycleOwner للنافذة. يتم إيقاف علامات الرسوم المتحركة المستندة إلى FrameNanos وإعادة الإنشاء مؤقتًا أثناء إيقاف دورة حياة المضيف. (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 لتصبح
@Experimental
(I5d20e) - تمت إضافة معلمة وصف المحتوى إلى الصورة والرمز. ويُستخدَم في تقديم وصف لخدمات تسهيل الاستخدام (I2ac4c).
- يغيّر هذا الإعداد واجهات مَعلمات متعدّدة الحالة لتتضمّن دوال @Composable التي تعرض
State<T>
. تتم إضافةAnimatable.asState()
لتسهيل عملية تحويل صورة متحركة إلى حالة. ويتم أيضًا تغيير animateElevation لتصبح إضافة تعليق على Animatable. (If613c) - لم تعُد Snackbar وSnackbarHost وSnackbarHostState
@ExperimentalMaterialAPI
بعد الآن (Id1fb5) - تغيير أسلوب الخط والأشكال وموضع التبويب لم يعد فئات بيانات. تضيف دالة نسخ لأسلوب الخط والأشكال بدلاً من الأشكال التي تم إنشاؤها. (I40037)
- حذف بعض واجهات Material API التي تم إيقافها سابقًا (Ifaa25)
إصلاح الأخطاء
- تم إيقاف onCommit وonDispose وonActive لتصبح واجهات برمجة تطبيقات SideEffect وDeposableEffect (If760e)
- تم إيقاف النقل المستند إلى تعريف TransitionDefinition نهائيًا (I0ac57)
- الحالة الأولية في updateTransition متاحة الآن (Ifd51d)
- تمت إعادة صياغة WithConstraints باسم BoxWithConstraints، وتم نقلها إلى Foundation.Layout. (I9420b، b/173387208)
إيقاف التمرير - بدون تعليق ، إزالة التمرير إلى
نوصي الآن باستخدام دوال التعليق للتحكم في التمرير والانتظار حتى انتهاء التمرير. نحن بصدد إيقاف و/أو إزالة الإصدارات غير المعلّقة من هذه الدوال كجزء من عملية الانتقال هذه. (Ie9ced)
إيقاف وضع التمرير السلس "غير تعليق" ننصحك الآن باستخدام دوال التعليق للتحكّم في التمرير والانتظار إلى حين انتهاء التمرير. وسنوقف نهائيًا الإصدارات غير المعلّقة لهذه الدوال كجزء من عملية الانتقال هذه. (I12880)
تم طرح السمة
ComposeContentTestRule
، وهي السمة التي توسّع نطاقComposeTestRule
وتحدّد السمةsetContent
، التي تمت إزالتها من السمةComposeTestRule
. تمت إضافة طريقة المصنعcreateEmptyComposeRule()
التي تؤدي إلى إرجاعComposeTestRule
ولا تُطلق نشاطًا لك. استخدم هذا عندما تريد بدء نشاطك أثناء الاختبار، على سبيل المثال، باستخدامActivityScenario.launch
(I9d782، b/174472899)لم يعُد من الممكن تخصيص الموجة المستخدَمة في الزرّ وFloatingActionButton من خلال توفير "إشارة جديدة" من خلال "الإشارة المحيطة"، لم يكن الغرض من ذلك أبدًا أن تكون طريقة لتخصيص هذه المكوّنات، ما يجعل هذه المكوّنات متوافقة مع مكوّنات Material الأخرى. لتخصيص الأمواج عبر أحد التطبيقات، راجع RippleTheme. (I546c5)
animateAsState هي الآن animateFooAsState، حيث يمثل Foo نوع المتغير الذي يقوم بالرسوم المتحركة. على سبيل المثال، Float، Dp، Offset، إلخ (Ie7e25)
تلقّى BasicTextField مَعلمة جديدة باسم
decorationBox
. ويسمح بإضافة الزخارف مثل الرموز والعنصر النائب والتسمية وما شابه ذلك لحقل النص وزيادة المنطقة المستهدفة للنتيجة منه. (I16996)إصلاح خطأ جعل من غير الممكن ضبط عرض حقل نص المادة على أقل من 280.dp (I78373)
تمت إزالة مَعلمة canDrag من Modifier.draggable (Ic4bec، b/175294473).
عليك إزالة ميزة DisplaySize التي يجب تجنّبها. عادةً ما يكون من الأفضل استخدام حجم onRoot() أو حجم النافذة على الأقل. (I62db4)
يمكن أن يحتوي السطح الآن على العديد من عناصر التصميم الثانوية. (I66a92، b/144488459)
تم الآن إيقاف الحلّ المستقل والمؤلف من () الدمج ()) الحاليَين لصالح العنصرَين الحاليَّين الحاليَين (currentRecomposeScope) و"تذكُّر حساب التركيب" ( باعث) على التوالي. (I583a8)
تغيير PopupPositionProvider لاستخدام الإحداثيات المتعلقة بالنافذة، وليس الإحداثيات العمومية. إعادة تسمية parentGlobalBounds إلى anchorBounds، وتغيير windowGlobalBounds ليصبح
windowSize: IntSize
(I2994a)سيتم استبدال "المدة" و"وقت التشغيل" بالمللي ثانية الطويلة، وستزيل هذه الخطوة اعتمادية مدخلات المؤشر على هذه الفئات. (Ia33b2 وb/175142755 وb/177420019)
تمت إزالة صورة متحركة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)
تمت إعادة تسمية SemanticsProperty إعلانيr.hidden إلى invisibleToUser وتم وضع علامة عليه @PersonalComposeUiApi. تمت إعادة تسمية AccessibilityRangeInfo إلى ProgressBarRangeInfo. تمت إعادة تسمية StateDescriptionRange لتصبح progressBarRangeInfo. تمت إعادة تسمية Accessibility ScrollState إلى 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() إلى Color.takeOrElse() (Ifdcf5)
- إضافة مفتاح التبديل إلى Foundation Strings.kt (I4a5b7، b/172366489)
- تم إيقاف FlowRow وFlowColumn نهائيًا. يُرجى استخدام تنسيق مخصص بدلاً من ذلك. (I09027)
- تم إيقاف Modifier.focus() وModifier.focusRequester() نهائيًا. استخدِم Modifier.focusModifier() وModifier.focusReference() بدلاً من ذلك. (I75a48 وb/175160751 وb/175160532 وb/175077829)
- تم نقل تقنية originalClass إلى وحدة واجهة المستخدم وجعلها داخلية. تم تحديث استخدامات NativeClass في عمليات تنفيذ تساوي استخدام "is MyClass" بدلاً من ذلك. (I4f734)
إصلاح الأخطاء
- تمت إضافة دعم للحقول النصية غير المفعّلة والحقول المخصّصة للقراءة فقط (I35279 وb/171040474 وb/166478534).
- تم استبدال
animate()
الآن بـanimateAsState()
، التي تعرضState<T>
بدلاً منT
. ويتيح ذلك أداءً أفضل، لأنّه يمكن تضييق نطاق الإبطال إلى المكان الذي تتم فيه قراءة قيمة "الحالة". (Ib179e) - أضِف واجهة برمجة تطبيقات دور دلالات الألفاظ، وأضِف الدور كمَعلمة إلى أداة تعديل SemanticsModifier القابلة للنقر والقابلة للاختيار والتبديل. تم تغيير تعديل Modifier.progressSemantics بحيث يمكن لتطبيق Slider استخدامه أيضًا. (I216cd)
الإصدار 1.0.0-alpha09
16 كانون الأول (ديسمبر) 2020
تم إصدار "androidx.compose.material:material-*:1.0.0-alpha09
". يحتوي الإصدار 1.0.0-alpha09 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة واجهة برمجة تطبيقات لتشغيل الرسوم المتحركة للتسوية يدويًا والسحب في Modifier.sميةable (Iaa17a ، b/162408885)
- تمت إعادة تسمية كائنات *Constants، مثل ButtonConstants لتنتهي بالقيم التلقائية بدلاً من ذلك، مثل ButtonDefaults. تتم أيضًا إزالة بادئات
default
غير الضرورية من المواقع في هذه العناصر الجديدة. (Ibb915 ، b/159982740) يدعم Compose أدوات الحصول على الخصائص التي يمكن أن تنشئ استدعاءات قابلة للإنشاء. لن يتم إيقاف هذه الميزة، ولكن ستتغيّر بنية الإعلان عن دالة getter على أنّها @Composable.
كانت البنية التي تم إيقافها نهائيًا لإجراء ذلك هي من خلال إضافة تعليق توضيحي إلى السمة نفسها:
@Composable val someProperty: Int get() = ...
بناء الجملة الصحيح الآن للقيام بذلك هو من خلال التعليق التوضيحي على القيمة getter للخاصية:
val someProperty: Int @Composable get() = ...
ستعمل كلتا التركيبات لبعض الوقت، ولكن بناء الجملة السابق الذي تم إيقافه سيصبح في النهاية خطأ في التحويل البرمجي. (Id9197)
تمت إضافة مكتبة
androidx.compose.material:material-ripple
التي تحتوي على واجهات برمجة تطبيقات تموّجات للسماح بإنشاء مكونات تفاعلية بدون الحاجة إلى بقية مكتبة Material. وقد تم إيقاف SpeakRipple لمعالجةation نهائيًا واستبداله بـ SpeakRipple. (Ibdf11)
إصلاح الأخطاء
- تعرض منصات Lambdas في معدِّلات الإزاحة الآن IntOffset بدلاً من Float. (Ic9ee5 وb/174137212 وb/174146755)
ShaderBrush، بطريقة كسولة، لإنشاء مثيل تظليل عند توفر معلومات تحديد حجم بيئة الرسم. ويفيد هذا في تحديد التدرجات التي تشغل حدود الرسم الكاملة للمادة قابلة للإنشاء في وقت التركيب، بدون الحاجة إلى تنفيذ عمليات تنفيذ DrawModifier مخصّصة.
تم إيقاف واجهات برمجة التطبيقات لإنشاء دالة التدرج لصالح أساليب المصنع على كائن التدرج. (I511fc، b/173066799)
تم إيقاف Modifier.focusMonitorer نهائيًا. استخدِم Modifier.onFocusChanged أو Modifier.onFocusEvent بدلاً من ذلك (I30f17 أو b/168511863 أو b/168511484)
أغلق LazyColumnFor وLazyRowFor وLazyColumnForIndexed وLazyRowForIndexed. استخدِم LazyColumn وLazyRow بدلاً من ذلك (I5b48c).
تم نقل Dp.Vector Conversioner وPosition.Vectorconversioner وما إلى ذلك إلى نواة متحركة، وإيقاف استخدام VectorConveters القديم (If0c4b)
أصبحت واجهة برمجة التطبيقات للملء التلقائي الآن واجهة برمجة تطبيقات تجريبية وتتطلّب الحصول على موافقة (I0a1ec)
إضافة إعلانات تدميرية لإنشاء مثيلات FocusRequester (I35d84، b/174817008)
تمت إعادة تسمية AccessibilityLabel إلى contentDescription. تمت إعادة تسمية AccessibilityValue إلى StateDescription. (I250f2)
دالة infiniteRepeatable جديدة لإنشاء InfiniteRepeatableSpec (I668e5)
تم إدخال تغييرات طفيفة على سلوك تحديد موضع Dropdown Menus وفقًا لمواصفات المادة (I34c72 ، b/168594123).
تمت إضافة دعم InteractionState إلى حقل TextFields. (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 الآن يحدد الألوان الصحيحة لمقابض التحديد وخلفية التحديد. يمكن للتطبيقات غير المستنِدة إلى مواد مختلفة استخدام ألوان EntertainmentTextSelectionColors يدويًا لتخصيص الألوان التي يتم استخدامها للاختيار. (I1e6f4، b/139320372، b/139320907)
- تمت إضافة التحقق من الوبر لتحديد تسمية مَعلمات lambda وموضعها للتأكّد من توافقها مع إرشادات الإنشاء.
تم أيضًا نقل بيانات بعض واجهات برمجة التطبيقات باستخدام
children
كاسم لدالة lambda اللاحقة إلىcontent
، وفقًا لعمليات التحقّق من الوبر والإرشادات. (Iec48e) - تم تغيير اسم VectorAsset ليصبح ImageVector تم نقل الاسم وإعادة تسمية VectorAsset إلى Builder لتكون فئة داخلية من ImageVector وفقًا لإرشادات مجلس واجهة برمجة التطبيقات. تمت إضافة typealias لـ VectorAssetBuilder للربط بـ ImageVector.Builder للمطابقة. (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 بدلاً من "الحالة". (Ic3021، b/173594846)
- تم تقديم واجهات برمجة تطبيقات SweepGRadentShader وSweepGRadentBrush. (Ia22c1)
- تمت إضافة التحقق من الوبر لمعلمات التعديل في الدوال القابلة للتعديل. تتحقّق عملية التحقّق من الوبر هذه من التسمية ونوع العرض والقيمة التلقائية وترتيب المَعلمة من أجل التوافق مع إرشادات الإنشاء. (If493b)
- واجهة برمجة تطبيقات TextFieldValue المعدَّلة
- تم جعل TextFieldValue.composition للقراءة فقط
- تمت إزالة الاستثناء لنطاق التحديد غير الصالح (I4a675، b/172239032)
- تمت إضافة حمل
Modifier.drawLayer()
زائد جديد. حيث يأخذ كتلة lambda في GraphicsLayerScope الجديدة، حيث تُحدِّد معلَمات الطبقة بطريقة تسمح بتخطي إعادة الإنشاء وإعادة التنسيق عند حدوث تغيير الحالة. أصبح DrawLayerModifier الآن داخليًا استعدادًا لنقل منطقه إلى طريقةplaceable.placeWithLayer()
في LayoutModifier (I15e9f، b/173030831) - تم إيقاف ميزات "وضع عدم النشاط" التي تحمل اسم "
Ambient
" كلاحقة لها، واستبدلتها بسمات جديدة مسبوقة بعبارة "وضع عدم النشاط"، وذلك باتّباع إرشادات أخرى حول عناصر المحيط والكتابة في واجهة برمجة التطبيقات. (I33440) - تمت إضافة فحص الوبر للتأكّد من أنّ مصانع المعدّل يستخدم
androidx.compose.ui.composed {}
داخليًا، بدلاً من وضع علامة@Composable
عليه. (I3c4bc) - تمت إعادة تسمية وسيطة Sementics integrationAllDescendants إلى mergeDescendants. (Ib6250)
- التحكم في الوقت في الاختبارات (TestAnimationClock واستخداماتها) أصبح تجريبيًا الآن (I6ef86، b/171378521)
- إزالة وحدة اختبار واجهة المستخدم القديمة وملفاتها (I3a7cb)
- تمت إعادة تسمية TextUnit.Inherited إلى TextUnit.غير محدَّد للتناسق مع الوحدات الأخرى. (Ifce19)
- تم تحديث واجهة المحاذاة وجعلها تعمل. (I46a07، b/172311734)
- تمت إعادة تسمية المعرّف إلى formatId لـ LayoutIdParentData. تمت إعادة تسمية Measurable.id إلى Measurable.lookupId. (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 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تم إيقاف ميزة "التوكيد" نهائيًا واستبدالها بـ EnvironmentContentAlpha. أمّا amtdContentAlpha، فهو أسلوب تجريدي مبسّط يمثّل ألفا المحتوى المفضّل لجزء من التدرج الهرمي، على غرار الطريقة التي يتم بها تمثيل "واجهة برمجة التطبيقات AdaptiveContentColor" بلون المحتوى المفضّل. يستهلك الآن تطبيق "النص" و"الرموز" القيمة الحالية من EnvironmentalContentAlpha بشكل تلقائي، ويمكنك يدويًا تنفيذ ما يلي:
color.copy(alpha = AmbientContentAlpha.current)
للحصول على التأثير نفسه في المكونات. بدلاً من استخدام OfferEmphasis، يمكنك فقط توفير قيمة بشكل مباشر من خلال alphaContentAlpha، واستخدام المستويات التلقائية الجديدة في ContentAlpha بدلاً من EmphasisLevels القديم. (Idf03e، b/159017896) - لإضافة androidx.compose.material.َمستبعد اللون ليحل محل androidx.compose.foundation.أمبيانتContentColor (I84f7b، b/172067770)
- يمكن إضافة androidx.compose.material.Text لاستبدال androidx.compose.foundation.Text كمكوِّن نص عالي المستوى وموضوعي. بالنسبة إلى المكوِّن النصي الأساسي الذي لا يستخدم نمط اللون / النص من المظهر، استخدم BasicText. (Ie6ae0)
- تمت إضافة maxLines إلى الحقول النصية (Ib2a5b).
- عدِّل TextFields لقبول خيارات لوحة المفاتيح (Ida7f3)
- يستخدم السطح الآن الارتفاع المطلق (الإجمالي) عند حساب تراكبات الارتفاع، لذلك سيستخدم سطح متداخل في سطح آخر الارتفاع المجمّع لرسم التراكب. (I7bd2b، b/171031040)
إصلاح الأخطاء
- تم نقل
captureToBitmap
إلىcaptureToImage
. (I86385) - تم إيقاف ميزات الأساس EntertainmentTextStyle و<توفير_النص_اللوني_والألوان وبيان اللون المحيطات. وبدلاً من ذلك، يمكنك استخدام الإصدارات الجديدة المتوفّرة في مكتبة Material. بالنسبة إلى التطبيقات غير Material، يجب عليك إنشاء بيئة محيطة محددة لنظام التصميم الخاص بك والتي يمكن استخدامها في المكونات الخاصة بك. (I74acc، b/172067770)
- Foundation.Text تم إيقاف العمل به واستبداله بـmaterial.Text. للحصول على واجهة برمجة تطبيقات خاصة بنص أساسي ولا تستخدم قيمًا من مظهر، يمكنك الاطّلاع على androidx.compose.foundation.BasicText. (If64cb)
- إعادة تسمية KeyboardOptions بتنسيق ImeOptions (I82f36)
- تم نقل KeyboardType وImeAction إلى KeyboardOptions (I910ce).
- تم إيقاف BaseTextField نهائيًا. يمكنك استخدام BasicTextField بدلاً من ذلك. (I896eb)
- تمت إزالة التعليق التوضيحي experimentSubcomposeLayoutApi. يمكن الآن استخدام SubcomposeLayout بدون إضافة @OptIn (I708ad)
- تم نقل FirstBaseline وLastBaseline إلى حزمة androidx.compose.ui.لاستخدامها (Ied2e7)
- تم تحديث واجهة برمجة التطبيقات للأيقونة لتتحول إلى اللون.غير محدد كلون تلوين محتمل سيرسم الأصل أو الرسّاش المقدم بدون ColorFilter. حاولنا في السابق تجاهل التلوين باستخدام اللون، غير محدد قد يؤدي إلى التلوين إلى لون شفاف ينتهي به الأمر بدون عرض أي شيء على الإطلاق. (I049e2، b/171624632)
- تمت إعادة تسمية AppSheetPaddingFrom إلى addingFrom تمت إضافة المعدِّل ROWSFromBaseline لتسهيل تحديد المسافات من حدود التصميم إلى الأسس النصية الأساسية. (I0440a، b/170633813)
- تمت إعادة تسمية LaunchedTask إلى LaunchedEffect لتحقيق التناسق مع واجهة برمجة تطبيقات SideEffect وDisableEffect. لا يُسمح بـ LaunchedEffect بدون مَعلمات موضوع لتشجيع أفضل الممارسات. (Ifd3d4)
- تم نقل MeasurementResult خارج MeasurementScope. (Ibf96d، b/171184002)
- تم نقل العديد من الرموز ذات الصلة بالتنسيق من androidx.compose.ui إلى androidx.compose.caption.ui. (I0fa98، b/170475424)
الإصدار 1.0.0-alpha06
28 تشرين الأول (أكتوبر) 2020
تم إصدار androidx.compose.material:material:1.0.0-alpha06
وandroidx.compose.material:material-icons-core:1.0.0-alpha06
وandroidx.compose.material:material-icons-extended:1.0.0-alpha06
. يحتوي الإصدار 1.0.0-alpha06 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تم نقل رمز androidx.compose.foundation.Icon إلى androidx.compose.material.Icon. يمكنك أيضًا استخدام مكوِّن الصورة / Modifier.paint() مع برنامج "Painter" إذا كنت لا تريد استخدام مكتبة Material. (I9f622)
- إضافة FloatingActionButtonElevation لتمثيل الارتفاع المستخدم من قِبل زر الإجراء الرئيسي (FAB) في حالات مختلفة راجع FloatingActionButtonConstants.defaultElevation() للتعرف على طريقة التنفيذ التلقائية (I2d4f5)
- لإضافة واجهة SwitchColors لتمثيل الألوان التي يستخدمها مفتاح التبديل في حالات مختلفة. يُرجى الاطّلاع على SwitchConstants.defaultColors لتخصيص هذه الألوان. (I93805)
- لإضافة واجهتي ButtonElevation وButtonColors لتمثيل المسقط الرأسي والألوان التي تستخدمها الأزرار في حالات مختلفة. اطّلع على الدوال الافتراضية في ButtonConstants لتخصيص هذه المعلمات. (Ic5b7b)
- لإضافة واجهة RadioButtonColors لتمثيل الألوان التي يستخدمها "زر الاختيار" في حالات مختلفة. راجع RadioButtonConstants.defaultColors() لتخصيص الألوان المستخدمة في حالات مختلفة. (I74130)
- لإضافة واجهة CheckboxColors لتمثيل الألوان المستخدمة في مربّع اختيار في حالات مختلفة. راجع CheckboxConstants.defaultColors() لتخصيص الألوان المستخدمة في حالات مختلفة. (I7dbdb)
إصلاح الأخطاء
- مكونات المواد لم تعد تحدد الارتفاع على zIndex. وهذا يعني أنه لن يتم رسم الطفل الذي له حجم ظل أكبر ضمن العنصر الرئيسي نفسه على العنصر الأصغر تلقائيًا. إذا كنت لا تزال بحاجة إلى مثل هذا السلوك، يُرجى ضبط Modifier.zIndex() يدويًا عند الحاجة (I70417، b/170623932).
- استبعد VectorPainter لتفضّل تذكرVectorPainter للإشارة بشكل أفضل إلى أن واجهة برمجة التطبيقات القابلة للتكوين "تتذكر" الاحتفاظ بالبيانات عبر التركيبات. (Ifda43)
- يمكنك تفعيل عمليات الانتقال في ComposeTestRule، وإزالة خيار تفعيل المؤشر الوامض من ComposeTestRule. (If0de3)
- تمت إضافة خيار لوحة المفاتيح ذات السطر الواحد إلى CoreTextField (I72e6d).
- تمت إعادة تسمية واجهة برمجة تطبيقات Radius إلى CornerRadius للتعبير بشكل أفضل عن كيفية استخدامه في 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.s الإحصاءاتable ضِمن 56.dp (Iab825، b/168610267).
- تم نقل جميع حالات السقالة التي تم وضع علامة عليها كـ @Stable. drawerActivitysEnabled في ScaffoldState إلى Scaffold نفسها. (I36645، b/168297016)
- لإزالة النوع القابل للقيم الفارغة من مَعلمات Scaffold lambda، يمكنك استخدام فارغContent() لتمثيل عدم وجود محتوى لمَعلمة معيّنة. (I2b318، b/157633857، b/158551084)
يتم إيقاف واجهات برمجة التطبيقات contentColor() وcurrentTextStyle() واستبدالها بـ آمبيانت ContentColor وتوقيت المحيط الهادئ باستياب على التوالي. يمكنك الوصول إلى القيمة الحالية باستخدام
.current
في سمة "وضع عدم النشاط"، كما هو الحال مع أيّ عنصر آخر في "وضع الإضاءة السينمائية". تم إجراء هذا التغيير من أجل الاتساق وتجنب وجود طرق متعددة لإنجاز نفس الشيء. بالإضافة إلى ذلك، تتم إعادة تسمية بعض الخصائص المحيطة لوصف الغرض منها بشكل أفضل على النحو التالي:- ContentColor بيّن -> ألوان نابضة بالحياة
- TextStyle<b> (نمط النص) -> "amtifTextStyle" (نمط النص المحيط)
- المؤشر المحيط -> المؤشر المحيطي
- EmphasisIntus -> amphasisDomains ->
- RippleThemePartner -> EntertainmentRippleTheme (I37b6d)
لإضافة ampElevationOverlay، ما يسمح بتخصيص أو إيقاف تركيب الارتفاع التلقائي الذي يتم تطبيقه على "الأسطح" في المظهر الداكن. (I5b74d)
إصلاح الأخطاء
- كجزء من توحيد قيم العنوان للفئات المضمّنة، يمكنك إعادة تسمية اللون.Unset to Color.غير محدد لالاتساق مع الفئات المضمّنة الأخرى (I97611، b/169797763)
- تم تقديم TextOverflow.لا يتم تقديم أي شيء. عندما تكون قيمة overflow هذه بدون قيمة، لن يتعامل Text مع تجاوز overflow بعد ذلك، وسيبلغ حجمه الفعلي إلى LayoutNode. (I175c9، b/158830170)
- تمت إعادة تسمية changeInconfiguration إلى LaunchedTask لمطابقة إرشادات Compose API (I99a8e).
- تمت إعادة تسمية OnPositionedModifier إلى OnGloballyPositionedModifier و تمت إعادة تسمية onPositioned() إلى onGloballyPositioned(). (I587e8، b/169083903)
الإصدار 1.0.0-alpha04
1 تشرين الأول (أكتوبر) 2020
تم إصدار androidx.compose.material:material:1.0.0-alpha04
وandroidx.compose.material:material-icons-core:1.0.0-alpha04
وandroidx.compose.material:material-icons-extended:1.0.0-alpha04
. يحتوي الإصدار 1.0.0-alpha04 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تعرض معلَمات InteractionState في مكوّنات Material ذات الحالة للسماح برفع الحالة وقراءة / التحكم فيها. (Iaca5f، b/168025711، b/167164434)
- تعمل هذه السياسة على تغيير المَعلمتَين
*color
في RadioButton وTriStateCheckbox للسماح بالتخصيص الكامل للألوان في كلّ ولاية، بالإضافة إلى تغيير كيفية تحريك الألوان بين الحالات إذا أردت ذلك. لمعرفة مزيد من المعلومات، يمكنك الاطّلاع على دوال ألوان animateDefault* الجديدة في CheckboxConstants وRadioButtonConstants. (I1c532) - تمت إعادة تسمية تذكرBackdropState لتذكر BackdropScaffoldState وإضافة معلمة إضافية لساعة الرسوم المتحركة. تمت إعادة تسمية المعلمةbackdropScaffoldState of BackdropScaffold إلى scaffoldState فقط. تمت إعادة تسمية BackdropConstants إلى BackdropScaffoldConstants. (Ib644d)
- تمت إضافة مكوِّن BottomSheetScaffold التجريبي. (Ie02f0، b/148996320)
- تمت إضافة المكوِّن التجريبي ModalBottomSheetLayout. (Ic209e، b/148996320)
- تتم إعادة تسمية ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation إلى defaultElevation، ويتم الآن عرض قيمة Dp بدلاً من NaturalValue. (I5f3ed)
إصلاح الأخطاء
- تم تحديث العديد من واجهات برمجة التطبيقات للرسومات
- تم تحديث واجهات برمجة التطبيقات للمقياس والتدوير لاستهلاك معلمة الإزاحة واحدة لتمثيل الإحداثي المحوري بدلاً من المعلَمات العائمة المنفصلة للإحداثيات x/y في DrawScope وDrawTransform
- تمت إزالة طريقتي Rect.expandToFrom وRect.join
- تم تحديث وثائق نصف القطر بحيث تشير إلى الشكل البيضاوي بالإضافة إلى جهاز الحركة البيضاوية
- تمت إضافة وثائق للإشارة إلى أن المنشئ العام لفئة نصف القطر المضمَّن لا يتم استدعاءه مباشرةً ولكن يجب إنشاء مثيل لكائنات نصف القطر من خلال الدالة الإنشائية للدوال
- وتمت إزالة واجهات برمجة تطبيقات RoundRect للاستعلام عن topRight وbottomRight وbottomCenter وما إلى ذلك.
- تم إيقاف Rect.shift نهائيًا لصالح Rect.translate
- تمت إزالة واجهات برمجة تطبيقات RoundRect.grow وRect.shrink
- إعادة تسمية RoundRect.outerRect إلى Rect.boundingRect
- تمت إزالة طريقتي RoundRect.midRect/tallMiddleRect/wideMiddleRect وRect.isStadium.
- تمت إعادة تسمية RoundRect.longestSide إلى RoundRect.maxDimension
- تمت إعادة تسمية RoundRect.shortestSide إلى RoundRect.min متصفّح
- تم تغيير RoundRect.center إلى خاصية بدلاً من دالة
- تم تحديث الدالة الإنشائية RoundRect لاستهلاك خصائص نصف القطر بدلاً من المعلمات الفردية لقيم نصف القطر x/y
- تمت إزالة واجهات برمجة التطبيقات للحجم التي افترضت أنها كانت مستطيلة بالمصدر 0,0
- تمت إضافة واجهة برمجة تطبيقات تخريبي إلى نصف القطر.
- تم نقل دوال إضافات RoundRect المختلفة إلى مواقع بدلاً من ذلك
- (I8f5c7، b/168762961)
- تم إيقاف Foundation.Box نهائيًا. يُرجى استخدام Foundation.Layout.Box بدلاً من ذلك. (Ie5950، b/167680279)
- تمت إعادة تسمية الحزمة إلى Box. سيتم إيقاف الإصدار السابق من Box لصالح Box الجديد في compose.foundation.Formatting. يتمثل سلوك Box الجديد في تكديس العناصر الثانوية واحدة فوق الأخرى إذا كان لديها عدة عناصر فرعية - يختلف هذا عن Box السابق، الذي كان يعمل مشابهًا لعمود. (I94893، b/167680279)
- تم إيقاف مَعلمات زخرفة المربّع نهائيًا. إذا أردت إضافة زخارف أو مساحة متروكة في المربّع، استخدِم "معدلات تعديل" بدلاً من ذلك (Modifier.background أو Modifier.border أو Modifier.adding) (Ibae92 وb/167680279)
- تم تحديث العديد من واجهات برمجة التطبيقات للرسومات
- تم تحديث واجهات برمجة تطبيقات DrawScope بأساليب تحويل النطاق للإشارة إلى أنّه يتم تطبيق التحويل فقط ضمن رد الاتصال وتتم إزالته بعد استدعاء الاستدعاء
- تم تحديث وثائق cutPath للإشارة إلى "المسار" بدلاً من المستطيل الدائري
- التباعد الثابت في وثائق المعلمة اليمنى في ClapPath
- تمت إعادة تسمية DrawScope.drawCanvas إلى drawIntoCanvas وإزالة معلمة الحجم
- تمت إعادة تسمية معلمات dx/dy في طريقة الإدراج إلى أفقي وعمودي
- تمت إضافة التحميل الزائد للداخل الذي يوفر نفس قيمة الإدخال لجميع الحدود الأربعة
- تمت إزالة الوثائق المتعلقة بطريقة الإدراج التي تشير إلى أنه سيتم تطبيقه على جميع الجوانب الأربعة
- مستندات معدَّلة لفئة Rect
- تم تحديث التعليقات على معلمات Rect لتتطابق مع نمط kdoc
- تمت إزالة Rect.join وRect.expandToتضمين
- تم إنشاء الحمل الزائد لـ Rect.translate(offset) وإيقاف Rect.shift
- (If086a، b/167737376)
- لقد منعنا الاستيراد الثابت لمحتويات نطاقات التنسيق (على سبيل المثال، alignWithSiblings في RowScope). يجب استخدام بديل النطاق الصريح بدلاً من ذلك:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be، b/166760797)
الإصدار 1.0.0-alpha03
16 أيلول (سبتمبر) 2020
تم إصدار androidx.compose.material:material:1.0.0-alpha03
وandroidx.compose.material:material-icons-core:1.0.0-alpha03
وandroidx.compose.material:material-icons-extended:1.0.0-alpha03
. يحتوي الإصدار 1.0.0-alpha03 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- يعيد تسمية المعلَمة
onSelect
فيBottomNavigationItem
إلىonClick
(I91925، b/161809324). - لإضافة مَعلمة InteractionState إلى Bottom NavigationItem وTab، ما يسمح برفع هذه الحالة وتعديل كيفية ظهور المكوِّن في حالات مختلفة. (Ia3e9e، b/168025711)
- إزالة المَعلمتَين
disabledBackgroundColor
وdisabledContentColor
من الأزرار يجب عليك بدلاً من ذلك استخدام دوال اللون الافتراضية الجديدة داخل ButtonConstants. إذا سبق لك تعيين contentColor / backColor بشكل صريح، يجب عليك استخدام هذه الدوال الافتراضية وتخصيص بعض أو كل المعلمات لتجنب استبدال اللون لكل من الحالات المفعّلة أو غير المفعّلة. (If9b52) - لم يعد لون خلفية Textfield يطبق ألفا الشفافية ضمنيًا بعد الآن. وبدلاً من ذلك، سيتم تطبيق أي لون يتم توفيره من خلال معلمة colorColor مباشرةً. (Iecee9، b/167951441)
- تمت إعادة تسمية InnerPadding إلى PaddingValues. (I195f1، b/167389171)
- تم استبدال المَعلمتَين
resistanceFactorAtMin
وresistanceFactorAtMax
فيModifier.swipeable
بمَعلمة مقاومة واحدة. تمت إضافة طريقةdefaultResistanceConfig
جديدة فيSwipeableConstants
. (I54238) - يضيف هذا الإعداد دعمًا متحركًا للمسقط الرأسي للزر وFloatingActionButton. يتحرك الارتفاع الآن بين الحالات التلقائية والحالات المضغوطة. لتخصيص المسقط الرأسي بين الحالات، يُرجى استخدام
ButtonConstants.defaultAnimatedElevation()
وFloatingActionButtonConstants.defaultAnimatedElevation()
بدلاً من ضبط قيمة ثابتة لنقطة الكثافة في جميع الحالات. (I37925) - أصبح التصنيف معلَمة اختيارية في TextField وOutdTextField (I267f6، b/162234081).
إصلاح الأخطاء
- تم إيقاف وظائف الاختبار العالمية مثل
onNode
أوwaitForIdle
نهائيًا. يُرجى الانتقال إلى نظيراتها الجديدة المحدّدة في ComposeTestRule (I7f45a) - تم نهائيًا إيقاف DpConstraints وواجهات برمجة التطبيقات التي تستخدمها. (I90cdb، b/167389835)
- تمت إعادة تسمية المعلمتين minالعرض وmaxOffer of widthIn إلى min وmax. وبالمثل بالنسبة إلى المفضَّلة widthIn و heightIn وPreferredHeightIn. (I0e5e1، b/167389544)
- إزالة إجراءات دلالات التمرير للأمام/للخلف. تمت إضافة خطوات في AccessibilityRangeInfo. (Ia47b0)
- وتمت إعادة تسمية استخدامات الجاذبية باستمرار للمحاذاة أو المحاذاة في واجهات برمجة تطبيقات التخطيط. (I2421a، b/164077038)
- ستتم إضافة onNode والطرق العامة الأخرى إلى ComposeTestRule، حيث سيتم إيقاف الأساليب العامة الحالية. (Ieae36)
- تم نقل
createAndroidComposeRule
وAndroidInputDispatcher
منandroidx.ui.test.android
إلىandroidx.ui.test
(Idef08، b/164060572)
الإصدار 1.0.0-alpha02
2 أيلول (سبتمبر) 2020
تم إصدار androidx.compose.material:material:1.0.0-alpha02
وandroidx.compose.material:material-icons-core:1.0.0-alpha02
وandroidx.compose.material:material-icons-extended:1.0.0-alpha02
. يحتوي الإصدار 1.0.0-alpha02 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة مكوّن BackdropScaffold التجريبي. (Iad908)
إصلاح الأخطاء
- تم استبدال المصفوفة 4 بالمصفوفة. تمت إزالة جميع الأجزاء الأخرى من حزمة المتجه. (Ibd665، b/160140398)
الإصدار 1.0.0-alpha01
26 آب (أغسطس) 2020
تم إصدار androidx.compose.material:material:1.0.0-alpha01
وandroidx.compose.material:material-icons-core:1.0.0-alpha01
وandroidx.compose.material:material-icons-extended:1.0.0-alpha01
. يحتوي الإصدار 1.0.0-alpha01 على هذه الالتزامات.
مشكلة معروفة
= لا يمكن إزالة الحرف الأول في المادة TextField
باستخدام مسافة للخلف (b/165956313)
الإصدار 0.1.0-dev
الإصدار 0.1.0-dev17
19 آب (أغسطس) 2020
تم إصدار androidx.compose.material:material:0.1.0-dev17
وandroidx.compose.material:material-icons-core:0.1.0-dev17
وandroidx.compose.material:material-icons-extended:0.1.0-dev17
. يحتوي الإصدار 0.1.0-dev17 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تمت إزالة RadioGroup وRadioGroupItems المتوقفين سابقًا. استخدام Row وRadioBotton بدلاً من ذلك (I381b7، b/163806637)
- تمت إزالة onFocusChanged لمعاودة الاتصال من TextField. استخدِم Modifier.focusMonitorer بدلاً من ذلك. (I51089، b/161297615)
- تم إيقاف Modifier.drawBorder نهائيًا. يمكنك استخدام Modifier.الحد بدلاً من ذلك. تم استبدال فئة البيانات الحدودية بـ BorderStroke (I4257d, b/158160576).
- تمت إعادة تسمية بعض الخصائص في ScrollableState: ScrollTarget -> targetValue وreturnProgress -> progress و بأنهreعجل -> اتجاه. تمت إضافة دالة cleanableStates لإنشاء التمرير السريع. (I2fc9c، b/163129614، b/163132293)
- تمّت إضافة ميزة دعم Snackbar مع تحديد الموضع والإضافة إلى قائمة المحتوى التالي بشكل مناسب. يمكن الوصول إليه من خلال دالة التعليق
SnackbarHostState.showSnackbar
. علاوةً على ذلك:- تمت إضافة مكوّنات SnackbarHost. وتستضيف Snackbars بناءً على الحالة وهي مسؤولة عن الانتقال بين أشرطة الإعلام المنبثق.
- تمت إضافة SnackbarHostState للسماح بالتحكّم في أشرطة الوجبات الخفيفة ومضيفي الأشرطة الخفيفة ولفصلها عن ScaffoldState. يمكنك أيضًا الوصول إلى هذه الحالة من خلال
scaffoldState.snackbarHostState
. - تمت إضافة الحمل الزائد على شريط Snackbar لدعم الواجهة المشتركة بين cloudbarHostState وشريط الإعلامات الخفيفة نفسها. (I79aaa)
- إضافة المعلمة المفعّلة إلى IconButton، وإعادة ترتيب المعلمات في IconToggleButton (I0a941، b/161809385، b/161807956)
- تمت إزالة إصدار ListItem مع واجهة برمجة التطبيقات المستندة إلى السلسلة. استخدِم إصدار الخانة بدلاً من ذلك. (Ib8f57، b/161804681)
- تمت إزالة المكوِّن ملء حقل النصوص المتوقّف نهائيًا. يُرجى استخدام "TextField" بدلاً من ذلك لتنفيذ "التصميم المتعدد الأبعاد" لحقل النص المعبّأ. (I5e889)
- يستخدم تطبيقalertDialog الآن FlowRow للأزرار (I00ec1، b/161809319، b/143682374)
- تمت إضافة المعلّمات في Modifier.sميةable لتغيير مقدار المقاومة عند التمرير سريعًا خارج الحدود. تمت إزالة مَعلمات القيمة [min/max]. (I93d98)
- تمت إضافة معلمة colorColor إلى مؤشر LinearProgressIndex وإزالة المساحة المتروكة الداخلية من CircularProgressIndexator. تمت إضافة Progress IndiatorConstants.DefaultProgressAnimationSpec الجديدة التي يمكن استخدامها كقيمة AnimationSpec التلقائية عند تحريك التقدُّم بين القيم (If38b5 وb/161809914 وb/161804677)
- تمت إضافة مَعلمة velocityThreshold الاختيارية إلى Modifier.sرصدable. (I698ba)
- وbottomBarSize وfabSize وغيرها ولم تعد متوفرة في ScaffoldState. استخدِم Modifier.onPosition بدلاً من ذلك على المكوِّن الذي تريد معرفة حجمه. تمت إضافة contentColor وModifier pamatere إلى Scaffold (Ic6f7b وb/161811485 وb/157174382).
- إعادة تسمية بعض المَعلمات في علامة التبويب وإعادة ترتيبها بشكل متناسق مع واجهات برمجة التطبيقات الأخرى (Ia2d12، b/161807532)
- تعمل هذه الدالة على تقسيم TabRow إلى TabRow وS ScrollableTabRow، وتتم إزالة الحقل is Scrollable من TabRow. كما يعرض EdgePadding في ScrollableTabRow، مما يسمح بالتحكم في المساحة الخالية قبل علامات التبويب أو بعدها. (I583e8، b/161809544)
- تمت إزالة الكائن
TabRow
، واستبداله بـ TabConstants. تم نقل TabRow.TabPosition إلى المستوى الأعلى (TabPosition)، وتمت إعادة تسمية المؤشرContainer إلىindicator
. يُرجى الاطّلاع على النماذج والوثائق للحصول على معلومات تفصيلية حول كيفية استخدام واجهة برمجة التطبيقات المُحدَّثة والإعدادات التلقائية. (I54d45، b/161809544) - تم تعديل مَعلمة الحدود في Modifier.ssurveyable، وأصبحت الآن تأخذ زوجًا من الحالات (من النوع T) وتعرِض الحدّ الأدنى بينهما على شكل ThresholdConfig. تمت إضافة مَعلمة RejectThresholds إلى ScrollToSurface، وهي مَعلمة lambda (ConfirmDirection) -> ThresholdConfig. (Ie1080)
- يحتوي شريط التمرير على المزيد من الألوان للتخصيص بدقة (I73e64، b/161810475).
- تمت إعادة تسمية معلَمة اللون في البطاقة إلى colorcolor (I01fc1 ، b/161809546).
- يتميّز Snackbar الآن بخلفية قابلة للتخصيص وألوان محتوى قابلة للتخصيص (I238f2 ، b/161804381).
- تمت إضافة مَعلمات التخصيص لخيار التعديل، والخلفية، وcontentColor، وscrimColor إلى الأدراج (I23655، وb/161804378).
- تم إيقاف واجهة برمجة التطبيقات
state { ... }
نهائيًا بهدف إرسال طلبات فاضحة إلىremember { mutableStateOf(...) }
بغرض التوضيح. ويؤدي ذلك إلى تقليل المساحة الإجمالية لواجهة برمجة التطبيقات وعدد المفاهيم لإدارة الحالة، كما يتطابق مع نمطby mutableStateOf()
لتفويض خصائص الفئة. (Ia5727) - تمت إعادة تسمية معلمة المساحة المتروكة للزر إلى contentPadding (Id252e، b/161809394)
- أضف مكون مادة تجريبية ScrollToSurface. (I129e5)
إصلاح الأخطاء
- تمت إزالة إذنَي
onChildPositioned
وOnChildPositionedModifier
. على المطوّرين استخدامonPositioned
وOnPositionedModifier
في التنسيق الفرعي بدلاً من ذلك. (I4522e، b/162109766) - تمت إضافة integrationPolicy lambda إلى SemanticsPropertyKey. ويمكن استخدام هذا لتحديد سياسة مخصّصة لدمج دلالات الدمج AllDescendants. والسياسة التلقائية هي استخدام القيمة الرئيسية إذا كانت موجودة من قبل، وإلا تكون القيمة الفرعية. (Iaf6c4، b/161979921)
- أصبحت IntSize الآن فئة مضمّنة (I2bf42).
- تمت إعادة تسمية
PlacementScope.placeAbsolute()
إلىPlacementScope.place()
، كما تمت إعادة تسميةPlacementScope.place()
السابق إلىPlacementScope.placeRelative()
. ونتيجةً لذلك، لن تُظهر طريقةPlacementScope.place()
الموضع تلقائيًا في السياقات من اليمين إلى اليسار بعد الآن. ويمكنك استخدامPlacementScope.placeRelative()
بدلاً من ذلك إذا كنت تريد ذلك. (I873ac، b/162916675) - PxBounds المتوقف لصالح Rect. تم تحديث جميع استخدامات 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 إلى "ColorPalette" من أجل ربطها بنظام ألوان Material بشكل أفضل وإزالة الالتباس الذي واجهه بسبب كون ColorPalette كائنًا "عامًا" في المظاهر، بدلاً من كونها تطبيقًا محددًا لنظام ألوان Material. بالإضافة إلى ذلك، تتم إعادة تسمية LightColorPalette وdarkColorPalette إلى فاتح اللون وdarkColors على التوالي. (I9e976، b/161812111)
- تتم إعادة تسمية المعلَمة
text
في Bottom NavigationItem إلىlabel
وتحويلonSelected
إلىonSelect
ومنactiveColor
إلىselectedContentColor
وinactiveColor
إلىunselectedContentColor
وتعديل ترتيب المَعلمات لمطابقة الإرشادات. (Icb605, b/161809324) - وتمت إعادة صياغة
Modifier.stateDraggable
بالكامل وإعادة تسميته إلى Modifier.sميةable. تم تقديم فئة ScrollableState جديدة، وتمت إعادة هيكلة DrawerState وBottomDrawerState ليكتسب منه. [Modal/Bottom]DrawerLayout لم يعد يقبل معلمة onStateChange. (I72332، b/148023068) - Foundation.shape.curer تم دمجه في حزمة Foundation.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 API
- تم نقل طريقة NativeCanvas خارج واجهة Canvas لمساعدة المستهلكين في إنشاء مثيلات Canvas الخاصة بهم
- تم إنشاء فئة stub BlankCanvas لإعادة ضبط DrawScope ليكون معلَمة غير فارغة بدلاً من lateinit مع ضمان عدم إمكانية القيم الفارغة للحقل
- تمت إعادة تسمية تعدادات ClipOp لتصبح حالة Pascal
- تمت إعادة تسمية تعدادات FilterValue لتصبح حالة Pascal
- تمت إعادة تسمية تعدادات Stroke Join إلى حالة Pascal
- تمت إعادة تسمية تعدادات PointMode إلى حالة Pascal
- تمت إعادة تسمية تعدادات PaintingStyle لتصبح Pascal Case
- تمت إعادة تسمية تعدادات PathFillType إلى حالة Pascal
- تمت إعادة تسمية تعدادات StrokeCap لتصبح حالة Pascal
- تم تحديث تنفيذ DrawCache بحيث لا يتم استخدام مَعلمات lastinit بعد ذلك
- تم تحديث DrawScope بحيث لا يستخدم التفويض الكسول للمعلمات الداخلية fillPaint وCTRLPaint
- إمكانية إنشاء صورة معدَّلة لتجنُّب استخدام Box مع تكاليف أقل
- تم تعديل صف Outline لتتضمّن التعليقات التوضيحية @Immutable.
- تم تحديث PathNode ليتضمن تعليقات توضيحية @Immutable لكل تعليمة مسار
- تم تحديث الطفرة الفرعية لـ Vector لإزالة عمليات التحقق الشرطية المتكررة للمساواة حيث يعالجها الإنشاء بالفعل
- طرق إنشاء دالة إنشاء مرافقة مستطيلة تم إيقافها لصالح الدوال الإنشائية للدوال
- تم تحديث فئات Brush ودوال إنشاء الدوال باستخدام واجهات برمجة التطبيقات @Immutable و @Stable.
- تم تعديل تعداد VertexMode ليصبح PascalCase
- تم تحديث طريقة Drawscope selectPaint لاستبدال معلمات الحد الخارجي بشكل مشروط على الطلاء إذا كانت قد غيّرت
- تم تحديث الحجم لإضافة واجهة برمجة تطبيقات تدمير، ثم إعادة تسمية UnspecifiedSize إلى Unspecified وإزالة الطرق غير المستخدمة
- نقل مربع الحوار إلى واجهة المستخدم (I47fa6)
- تمت إزالة
SemanticsNodeInteraction.performPartialGesture
. يمكنك استخدامSemanticsNodeInteraction.performGesture
كبديل. (Id9b62) - تمت إعادة تسمية
SemanticsNodeInteraction.getBoundsInRoot()
إلىSemanticsNodeInteraction.getUnclippedBoundsInRoot()
(Icafdf، b/161336532) - تم تحديث واجهات برمجة التطبيقات للدعم من اليمين إلى اليسار. تمت إضافة ميزة LayoutDirection الإضافية التي يمكن استخدامها لقراءة اتجاه التنسيق وتغييره. تمت إزالة Modifier.rtl وModifier.ltr. (I080b3)
- تمت إعادة تسمية Modifier.deternimateProgress إلى Modifier.progressSemantics (I9c0b4)
- تحديثات Material-icons-extended مع أحدث الرموز المُضافة إلى Material.io/icons (I4b1d3)
- طلب تحديد النوع T بشكل صريح لتعريفtransitDefinition. (I1aded)
- تم إيقاف Modifier.plus نهائيًا، لذا استخدِم Modifier.ثم بدلاً من ذلك. تقدّم علامة "بعد ذلك" إشارة أقوى للطلب، بينما تحظر أيضًا كتابة
Modifier.padding().background() + anotherModifier
، ما يعطّل السلسلة ويصعب قراءتها (Iedd58، b/161529964) - تمت إعادة تسمية AndroidComposeTestList لإنشاء AndroidComposeRule. (I70aaf)
- أضف isFocused() وisNotFocused() SemanticsMatcher. (I0b760)
- تمت إزالة
BaseGestureScope.globalBounds
، والتي لا ينبغي استخدامها من الاختبارات. استخدم الإحداثيات المحلية للعقدة التي تتفاعل معها بدلاً من ذلك. (Ie9b08) - موضع النافذة المنبثقة ثابت على الشاشات المقصوصة. (Idd7dd)
- تمت إعادة تسمية Modifier.drawBack إلى 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
التوضيحي نهائيًا. استخدم الحالة و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/923163}b/143163}
معاودة الاتصال onFocusChange في الحقول النصية التي تمت إعادة تسميتها إلى onFocusChanged (Ida4a1)
تمت إضافة معلمة الحدود في StateDraggable لتحديد الحدود بين علامات الارتساء. تم استخدام هذه الميزة لضبط حدّ أدنى يبلغ 56 بكسل مستقل الكثافة في الدرج السفلي. يستخدم أيضًا BottomDrawerLayout الآن تعدادًا منفصلاً BottomDrawerState. (I533fa)
سيزيل عنصر Modifier.ripple الذي تم إيقافه نهائيًا سابقًا. تستخدم ميزة "قابل للنقر" الآن تمويج كإشارة افتراضية (إذا كان لديك MaterialTheme {} التي تم تعيينها في تطبيقك) لذا في معظم الحالات يمكنك فقط استخدام قابلة للنقر والحصول على مؤشر تمويج مجانًا. إذا كنت بحاجة إلى تخصيص معلمة اللون / الحجم / المحددة للتمويج، يمكنك إنشاء إشارة موجة يدويًا وتمريرها إلى أن تصبح قابلة للنقر كمعامل إشارة. (I663b2، b/155375067)
تمت إزالة التجاوز المتوقف لـ filledTextField composable (I7f8f8).
إعادة تسمية كائن الزر (الذي يحتوي على الإعدادات التلقائية المستخدمة بواسطة وظيفة الزر) إلى ButtonConstants (I7c5f7، b/159687878)
تعمل خانة محتوى الزر الآن كصف (يكون مفيدًا عندما تحتاج إلى رمز به نص، يمكنك الاطّلاع على نماذج على الزر "كيفية كتابته") (I0ff10، b/158677863)
تم إيقاف RadioGroup وRadioGroupItem نهائيًا. استخدام "مربع" مع "Modifier.selectable" و"الصف والعمود" لإجراء مجموعة مناسبة من اختيارات زر الاختيار حسب التصميم (I7f5cf، b/149528535)
حقل نصي مفصل للمواد (I1a518)
تم إيقاف androidx.ui.foundation.TextFieldValue وandroidx.ui.input.EditorValue نهائيًا. تم أيضًا إيقاف العناصر النصية TextField وFilledTextField وCoreTextField التي تستخدم هذا النوع. يُرجى استخدام androidx.ui.input.TextFieldValue بدلاً من ذلك (I4066d، b/155211005).
لا يحتوي TabRow.TabPosition على موضع في Dp، وليس في IntPx (I34a07، b/158577776)
تم استبدال استخدام IntPx بـ IntPxPosition بدلاً من IntOffset. تم استبدال IntPxSize بـ IntSize. (Ib7b44)
من أجل دمج عدد الفئات المستخدمة لتمثيل معلومات المقاسات، عليك توحيد استخدام فئة المقاس بدلاً من PxSize. يوفر هذا مزايا الفئة المضمنة للاستفادة من القيمة الطويلة للحزمة والقيمتين العائمتين لتمثيل العرض والارتفاع ممثلين كعدد عشري. (Ic0191)
لإيقاف Modifier.ripple. تستخدم ميزة "قابل للنقر" الآن تمويج كإشارة افتراضية (إذا كان لديك MaterialTheme {} التي تم تعيينها في تطبيقك) لذا في معظم الحالات يمكنك فقط استخدام قابلة للنقر والحصول على مؤشر تمويج مجانًا. إذا كنت بحاجة إلى تخصيص معلمة اللون / الحجم / المحددة للتمويج، يمكنك إنشاء إشارة موجة يدويًا وتمريرها إلى أن تصبح قابلة للنقر كمعامل إشارة. (I101cd، b/155375067)
تمت إعادة صياغة واجهة برمجة تطبيقات Scaffold: غيَّرت بعض المعلمات اسمها، وأضافت معلمات جديدة للحصول على تخصيص أفضل. تمت إضافة دالة getter إلى أحجام طلبات البحث لـ Fab وTopBar وBottomBar (I0e7ce).
تمت إضافة مكون DropdownList في واجهة المستخدم (ui-material)، وهو تنفيذ قائمة في Material Design. (I9bb3d)
السماح بإظهار/إخفاء لوحة المفاتيح البرمجية يدويًا باستخدام SoftwareKeyboardController (Ifb9d6، وb/155427736)
تمت إضافة Modifier.indction إلى حزمة الأساس. يمكنك استخدام هذا الزر لإظهار مؤشر الماوس/السحب/غير ذلك على العناصر المخصّصة القابلة للتفاعل (I8425f ، b/155287131).
عمليات تنفيذ CanvasScope موحّدة، لذلك أصبح هناك الآن فقط DrawScope وContentDrawScope تم تغيير اسم CanvasScope إلى DrawScope. تم تحديث DrawScope لتنفيذ واجهة Density وتوفير فئة LayoutDD Deleted DrawScope في ContentDrawScope تم تعديل Painterainter وPainterModifier لعدم صيانته بعد ذلك بخاصية من اليمين إلى اليسار (RTL) لأنّ DrawScope يوفّر ذلك بدون تقديمه يدويًا (I1798e)
إعادة تسمية Emphasis.confirm() إلى Emphasis.applyEmphasis() (Iceebe)
تتبع الأزرار التي تم إيقافها الآن مواصفات Material Design (I47dcb ، b/155076924)
يحصل تطبيق ملء حقل النص على إجراء مباشر وتحويل مرئي ودعم نوع لوحة المفاتيح (I1f9cf، b/155075201)
لإضافة معلمة عرض السُمك إلى CircularProgressIndexator (مؤشر عرض السير) لتخصيص حجم الحد الخارجي. لتغيير حجم الخط (الارتفاع) لـ LinearProgressIndexator، يمكنك استخدام Modifier.PreferredHeight() أو أداة تعديل حجم أخرى. (Icea16، b/154919081)
لإضافة معلمة عرض السُمك إلى CircularProgressIndexator (مؤشر عرض السير) لتخصيص حجم الحد الخارجي. لتغيير حجم الخط (الارتفاع) لـ LinearProgressIndexator، يمكنك استخدام Modifier.PreferredHeight() أو أداة تعديل حجم أخرى. (Icea16، b/154919081)
تمت إضافة واجهة برمجة تطبيقات للخانة البادئة واللاحقة في الحقل "FilledTextField" والتعامل مع حالة الخطأ (Ic12e0).
تم تغيير اللون التلقائي لكل من FAB وExtended FAB إلى MaterialTheme.colors.secondary. (I3b9b9، b/154118816)
تم استبدال جميع استخدامات الألوان القابلة للقيم الفارغة في واجهة برمجة التطبيقات باستخدام قيمة غير قابلة للقيم الفارغة واستخدام Color.Unset بدلاً من null (Iabaa7)
تمت إعادة تسمية مجموعات EdgeInsets إلى InnerPadding. تمت إعادة تسمية معلمة innerPadding لأزرار المواد إلى Paddding. (I66165)
تم إيقاف "شريط التمرير" بدون حالة. على المستخدمين تمرير الحالة وتعديلها بأنفسهم، تمامًا كما هو الحال في أي عنصر تحكّم آخر. (Ia00aa)
تمت إزالة StaticDrawer. إذا كنت في حاجة إليه، استخدِم بدلاً من ذلك Box بعرض خاص بمواصفات المواد (I244a7).
تمت إضافة تنفيذ تصميم متعدد الأبعاد لحقل النص المعبّأ (Ic75cd)
تمت إضافة معلمة التعديل إلى ListItem والمَعلمات المُعاد ترتيبها لتحسين نص دالة lambda اللاحقة (I66e21).
لإضافة معلمة دالة إنشاء الخط defaultFontFamily إلى أسلوب الخط، مما يسمح بتحديد مجموعة الخطوط الافتراضية التي سيتم استخدامها لأي من أنماط النص المقدمة التي لا تحتوي على مجموعة عائلة. (I89d07)
تمت إزالة جداول بيانات المادة مؤقتًا من مساحة عرض واجهة برمجة التطبيقات. (Iaea61)
مَعلمات مُعاد تسميتها في شكل فاصل زمني (Ic4373)
الأطفال (Ia6d19)
لإزالة MaterialTheme.emphasisLevels، يمكنك بدلاً من ذلك استخدام Emphasis ambia.current لاسترداد مستويات التوكيد (Ib5e40)
يتم تحديث نظام تحديد مواضيع الأشكال وفقًا لمواصفات Material Design. يمكنك الآن توفير أشكال صغيرة ومتوسطة وكبيرة لاستخدامها في معظم المكوّنات (Ifb4d1).
تم تغيير واجهات برمجة تطبيقات MaterialTheme، مثل MaterialTheme.colors() وMaterialTheme.typography() لتكون خصائص بدلاً من الدوال. عليك إزالة الأقواس من الطلبات الحالية، ولا يُتوقَّع أي تغيير في السلوك. (I3565a)
واجهات برمجة التطبيقات FloatingActionButton المُعاد تصميمها لقبول قيم lambda المكونة بدلاً من العناصر الأولية. ويمكنك الاطّلاع على النماذج المحدَّثة للحصول على معلومات الاستخدام. (I00622)
إضافة المعلمة
enabled
إلى مربّع الاختيار ومفتاح التبديل والتبديل (I41c16)أصبح تطبيق Ripple الآن "معدِّل". بينما لم يتم تحويل العنصر القابل للنقر بعد، فالاستخدام المقترح هو
Clickable(onClick = { ... }, modifier = ripple())
(Ie5200، b/151331852، b/150060763)تم نقل مساحات العرض والبطاقة من androidx.ui.material.surface إلى androidx.ui.material (I88a6d، b/150863888)
يتوفّر الآن لكل من الزر وFloatingActionButton والزر "قابل للنقر" مَعلمة
enabled
منفصلة. تمت إعادة تسمية بعض المعلمات على "الزر" أو إعادة ترتيبها. (I54b5a)تمت إعادة تسمية الصورة إلى ImageAsset للتمييز بشكل أفضل بين بيانات Image وصورة الصورة القادمة التي يمكن إنشاؤها للمشاركة في التخطيط والرسم. _Body:تم إنشاء طريقة إضافة على android.graphics.Bitmap، "Bitmap.asImageAsset() ، لإنشاء مثيل لـImageAsset مفيد للجمع بين تطوير تطبيق Android التقليدي وإطار عمل الإنشاء (Id5bbd)
تمّت إزالة واجهة برمجة تطبيقات Snackbar API التي تتضمّن معلَمات السلسلة بدلاً من استخدام الحمل الزائد الذي يقبل ملفات lambda القابلة للتعديل راجع النماذج المحدثة للحصول على معلومات الاستخدام (I55f80)
تمت إعادة تكوين واجهات برمجة تطبيقات علامة التبويب لتقبل
text
وicon
lambdas، (Ia057e)تمت إضافة مكون Bottomالتنقل، راجع المستندات والنماذج للحصول على معلومات الاستخدام (I731a0)
تمت إضافة الرمز، IconButton وiconToggleButton، لإزالة AppBarIcon. يمكنك استبدال التطبيقات الحالية لـ AppBarIcon مباشرةً بالرمز IconButton، وسيصبح لديهم الآن هدف اللمس الصحيح. ويمكنك الاطّلاع على نماذج للحصول على معلومات عن الاستخدام، والاطّلاع على الرموز الخاصة برموز المواد المقدَّمة التي يمكنك استخدامها مباشرةً مع هذه المكوّنات. (I96849)
تم استبدال ButtonStyle بدوال مميزة وإزالة الحمل الزائد للنص (السلسلة). يمكنك الاطّلاع على النماذج المحدَّثة للحصول على معلومات الاستخدام. (If63ab وb/146478620 وb/146482131)
إعادة تسمية مفتاح التعديل
Border
إلىDrawBorder
(I8ffcc)لم تعد ميزة LayoutCoordinates سمة موضع. لا معنى لخاصية الموضع عند التفكير في LayoutModifiers أو التدوير أو الضبط. بدلاً من ذلك، يجب على المطورين استخدامparentCoordinates وchildToLocal() لحساب التحويل من أحد LayoutCoordinate إلى آخر.
تستخدم LayoutCoordinates IntPxSize لخاصية الحجم بدلاً من PxSize. تستخدم التخطيطات أحجام البكسل الصحيحة للتخطيطات، لذلك يجب أن تستخدم جميع أحجام التخطيط أعدادًا صحيحة وليس قيم النقطة العائمة. (I9367b)
تغييرات قد تؤدي إلى أعطال في واجهة برمجة تطبيقات Accessibilitys يمكنك الاطّلاع على سجلّ ومستندات
Ambient<T>
لمعرفة التفاصيل (I4c7ee، b/143769776).تمت إضافة مكوّن مادة السقالات. عمليات تنفيذ السقالات (I7731b)
تم استبدال DrawBorder بمعدِّل الحدود (Id335a).
إصلاح الأخطاء
- تم إيقاف FocusModifier لصالح Modifier.focus وModifier.focusRequester وModifier.focusMonitorer" تم إيقاف FocusState وFocusAdvancedState لصالح FocusState2 (I46919، b/160822875، b/160922136)
- تم إيقاف هذين التطبيقين. ويمكنك استخدام ScrollableColumn و ScrollableRow للحصول على تجربة استخدام مضمّنة مع سلوك العمود/الصف ومعلَماته، أو Modifier.vertical Scroll وModifier.horizontal Scroll على عنصرك. وبالمثل، تم إيقاف ScrollerPosition لصالح ScrollState (I400ce ، b/157225838، b/149460415، b/154105299)
- تم إعادة صياغة واجهات برمجة التطبيقات Modifier.draggable وModifier.scrollable. تمت إزالة DragDirection لصالح ميزة "الاتجاه". تم تبسيط الحالة المطلوبة لإتاحة الانتقال. تمت إعادة تسمية ScrollableState إلى ScrollableController (Iab63c ، b/149460415).
- تمت إعادة تسمية
runOnIdleCompose
إلىrunOnIdle
(I83607) - تستخدم الآن خصائص الدلالة ذات القيمة الفردية نمط استدعاء. على سبيل المثال، تمت كتابة 'semantics { مخفية = true }' الآن على النحو التالي: 'semantics {hidden() }'. (Ic1afd, b/145951226, b/145955412)
- تمت إعادة تسمية العديد من واجهات برمجة التطبيقات للاختبار لكي تكون أكثر سهولة. تمت إعادة تسمية جميع واجهات برمجة تطبيقات FindXYZ لتصبح onNodeXYZ تمت إعادة تسمية جميع واجهات برمجة تطبيقات doXYZ إلىperformXYZ. (I7f164)
- تم تغيير Transition API لعرض حالة TransitionState بدلاً من تمرير TransitionState إلى الأطفال. هذا يجعل واجهة برمجة التطبيقات أكثر اتساقًا مع واجهات برمجة تطبيقات ananimate(). (I24e38)
- تمت إضافة فئة وحدة IntBounds، التي تمثل حدود وحدات بكسل صحيحة من التنسيق. تم تعديل واجهة برمجة التطبيقات لـ PopupPositionProvider لاستخدامها. (I0d8d0، b/159596546)
- تمت إضافة علامة اختيارية جديدة تستخدم UnmergedTree لاختبار الباحثين. (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.lookupId، وذلك لتجنّب حدوث أي التباس مع Modifier.testTag. (I995f0)
- مواضع خط المحاذاة Int التي تم إرجاعها من Placeable#get(AlignmentLine) أصبحت الآن غير فارغة. إذا كان خط المحاذاة الذي تم الاستعلام عنه مفقودًا، سيتم عرض ProtectedLine.غير محدد (I896c5، b/158134875)
فئة نصف القطر المعاد تصميمها لتكون فئة مضمنة. تمت إزالة طرق الإنشاء المصاحب لصالح الدالة الإنشائية للدالة ذات المعلمة الافتراضية للحصول على نصف القطر على المحور ص الذي يتطابق مع معلمة نصف القطر الإلزامية للمحور x.
تم تحديث DrawScope.drawRoundRect لاستهلاك معلَمة Radius واحدة بدلاً من قيمتين عائمتين منفصلتين لنصف القطر على طول المحورين "x" و"y" (I46d1b)
من أجل دمج عدد الفئات المستخدمة لتمثيل معلومات تحديد الموضع، عليك توحيد استخدام فئة Offset بدلاً من PxPosition. يوفر هذا فوائد فئة مضمّنة للاستفادة من قيمة طويلة للحزمة عائمة 2 لتمثيل إزاحة س وص ممثلة كأعداد عشرية. (I3ad98)
تم استبدال استخدام فئة Px في فئات إنشاء مختلفة كجزء من الجهود الكبيرة لإعادة البناء للاعتماد فقط على الأنواع الأولية لمعاملات البكسل. تم حذف فئة Px بالكامل (I3ff33).
تم إيقاف المكوِّن القابل للتبديل نهائيًا. استخدام Modifier.toggleable بدلاً من ذلك (I35220، b/157642842)
استخدام فئة Px في مختلف فئات الإنشاء كجزء من الجهود الكبيرة لإعادة البناء للاعتماد فقط على الأنواع الأساسية لمعلمات البكسل (I086f4)
استخدام فئة Px في مختلف فئات الإنشاء كجزء من الجهود الكبيرة لإعادة البناء للاعتماد فقط على الأنواع الأساسية لمعلمات البكسل (Id3434)
استخدام فئة Px في مختلف فئات الإنشاء كجزء من الجهود الكبيرة لإعادة البناء للاعتماد فقط على الأنواع الأساسية لمعلمات البكسل (I97a5a)
عدم استدعاء onClick لـ DropdonListItems (I3998b، b/157673259)
تم إيقاف ميزة MutuallyousSetItem نهائيًا. استخدِم Modifier.selectable بدلاً من ذلك. (I02b47، b/157642842)
تم إيقاف TestTag نهائيًا الآن. استخدِم Modifier.testTag بدلاً من ذلك. (If5110، b/157173105)
مؤشر حقل النص يحتوي على صورة متحركة وامضة (Id10a7)
استخدام فئة Px في مختلف فئات الإنشاء كجزء من الجهود الكبيرة لإعادة البناء للاعتماد فقط على الأنواع الأساسية لمعلمات البكسل (I19d02)
يوفر Vertical Scroller الآن ميزة "العمود" خارج المربع. يوفر شريط التمرير الأفقي الآن ميزة "الصف" خارج الصندوق. (Ieca5d، b/157020670)
استخدام فئة Px في مختلف فئات الإنشاء كجزء من الجهود الكبيرة لإعادة البناء للاعتماد فقط على الأنواع الأساسية لمعلمات البكسل (Iede0b)
تم إيقاف Modifier.semantics نهائيًا للسماح باستخدام المكوّنات العالية المستوى. (I4cfdc)
تم تغيير واجهة برمجة التطبيقات لمُعدِّلات DrawLayer: تمت إعادة تسمية outlineShape إلى شكل الشكل وأصبح له القيمة التلقائية RectangleShape وهي الآن غير قابلة للقيم الفارغة، وتمت إعادة تسمية KapToOutline إلى مقطع، وتمت إزالةClipToBounds بسبب تشابهه مع المقطع == true مع RectangleShape (I7ef11، b/155075735).
تم تحديث واجهات برمجة التطبيقات ذات المستوى الأعلى التي تعرض "لوحة الرسم" لعرض "CanvasScope" بدلاً من ذلك. فهذا يلغي حاجة المستهلكين إلى الحفاظ على كائنات الطلاء الخاصة بهم. بالنسبة إلى المستهلكين الذين ما زالوا يطلبون الوصول إلى لوحة الرسم، يمكنهم استخدام طريقة الإضافة drawCanvas التي توفّر استدعاءً لإصدار أوامر الرسم باستخدام لوحة الرسم الأساسية. (I80afd)
تم نهائيًا إيقاف العنصر القابل للضبط لمحاذاة LineOffset. يُرجى استخدام مفتاح التعديل الترفيهي recognizedPaddingFrom() بدلاً من ذلك. تمت إزالة CenterAlignmentLine الذي تم إنشاؤه. (I60107)
تم تغيير واجهة برمجة التطبيقات اللاحقة lambda API لـ WithConstraints. بدلاً من معلَمتين، تتضمن الآن نطاق مستلم، بالإضافة إلى القيود وLayoutDirection، توفر خصائص min width وmax width وminHeight وmaxHeight في Dp (I91b9a وb/149979702).
تمت إضافة معدِّل التصميم defaultMinSizeConstraints الذي يضبط قيود الحجم على التنسيق الملتف فقط عند عدم تحديد القيود المقابلة الواردة (0 لقيود الحد الأدنى واللانهاية للقيود القصوى). (I311ea، b/150460257)
تمت إزالة FocusManagerManager. استخدم FocusModifier.requestFocus للحصول على التركيز. (Ic4826)
تم إنشاء واجهة برمجة تطبيقات CanvasScope التي تلفّ عنصر لوحة الرسم لعرض سطح واجهة برمجة تطبيقات للرسم التعريفي وبدون حالة. ويتم تضمين التحويلات ضمن نطاق المستلم الخاص بها وتحديد حجم معلومات التحجيم أيضًا إلى الحدود الداخلية المقابلة. وهي لا تتطلب من المستهلك الاحتفاظ بكائن حالة الطلاء الخاص به لتكوين عمليات الرسم.
تمت إضافة CanvasScopeعيّن وتم تحديث التطبيق التجريبي لتضمين عرض توضيحي للرسومات (Ifd86d)
إضافة تخصيص لون المؤشر إلى حقل النص (I6e33f)
يمكن الآن أن تصبح قيمة TextFieldValue المستخدَمة مع TextField بمثابة إعادة إنشاء نشاط عند استخدامها على النحو التالي:
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
(I5c3ce، b/155075724)تم تغيير اسم LayoutModifier2 ليصبح LayoutModifier. (Id29f3)
تمت إزالة واجهة LayoutModifier المتوقفة. (I2a9d6)
تم استبدال المعلمة CoreTextField/TextField بدءًا من المعلمة FocusNode للدمج مع النظام الفرعي للتركيز. (I7ea48)
تتضمّن دوال القياسات الأساسية في "التنسيق" و"LayoutModifier2" جهاز استقبال IntrinsicmeasureScope حاليًا الذي يوفّر واجهة برمجة تطبيقات طلبات البحث الأساسية مع اتجاه التصميم المنتشر بشكل ضمني. (Id9945)
تمت إضافة ميزة Modifier.zIndex() الجديدة للتحكم في ترتيب الرسم للعناصر الثانوية داخل نفس التنسيق الرئيسي. وتمت إعادة تسمية خاصية الارتفاع في DrawLayerModifier إلى shadowElevation ولم تعُد تلك الخاصية تتحكّم في ترتيب الرسم. تم تغيير ترتيب المعلمات لـ DrawShadow: الارتفاع هو الآن الأول والشكل هو الشكل الثاني مع ضبط بشكل تلقائي على شكل RectangleShape. (I20150، b/152417501)
تم نقل شكل الشكل المستطيل من androidx.ui.foundation.shape.* إلى androidx.ui.graphics.* (Ia74d5، b/154507984)
تحديث واجهة برمجة تطبيقات TextField - تم دمج استدعاءات onFocus وonBlur في استدعاء onFocusChange(Boolean) واحد مع مَعلمة (I66cd3)
تمت إضافة المعاملينvertical Gravity وhorizontalGravity إلى "الصف والعمود" على التوالي. (I7dc5a)
تم تعديل wrapContentDisplay وwrapContentLength لتوقُّع محاذاة رأسية أو أفقية بدلاً من أي محاذاة. تم تحديث مُعدِّل الجاذبية لقبول المحاذاة العمودية أو الأفقية. تم تعديل الصف والعمود والحزمة لإتاحة عمليات المحاذاة المستمرة المخصّصة. (Ib0728)
تم إنشاء واجهة برمجة تطبيقات PixelMap لدعم الاستعلام عن معلومات البكسل من ImageAsset. (I69ad6)
ستتم إزالة ميزة OfferContentColor، ولكن يمكنك بدلاً من ذلك استخدام ContentColor الاقتراحات مباشرةً مع
Providers
(Iee942).تمت إعادة تسمية وحدة إنشاء نص ui-text إلى ui-text. يحتوي ui-text الآن على CoreText وCoreTextField composables (Ib7d47).
تمت إعادة تسمية وحدة ui-text لتصبح ui-text-core (I57dec).
تم نقل ui-framework/CoreText، تم إنشاء CoreTextField من إنشاء المحتوى ضمن ui-text-compose. قد ترغب في تضمين إنشاء نص ui في مشروعك. (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.PreferredSize(width, height).drawخلفيات(color)) بدلاً من ذلك. (I499fa، b/152753731)
تمت إعادة تسمية LayoutResult إلى MeasurementResult. (Id8c68)
تمت إضافة LayoutModifier2، وهي واجهة برمجة تطبيقات جديدة لتحديد معدِّلات التنسيق، وتم إيقاف LayoutModifier (If32ac) نهائيًا
تم استبدال المشغّل بالإضافة إلى عامل التشغيل بوظائف الإضافة على الإعدادات الأصلية (I225e4).
تم نقل السحب إلى مفتاح التعديل (Id9b16، b/151959544)
تم إيقاف ميزة ParentData التي تم إنشاؤها نهائيًا. عليك إنشاء معدِّل لتنفيذ واجهة ParentDataModifier، أو استخدام أداة التعديل LayoutTag إذا كنت تحتاج إلى وضع علامة على عناصر التنسيق الثانوية للتعرّف عليها داخل وحدة القياس. (I51368، b/150953183)
تم إنشاء مركز متوقّف نهائيًا. يجب استبداله إما بمعدِّل LayoutSize.Fill + Layout Align.Center أو باستخدام عنصر مركّب Box أو Stack مع تطبيق معدِّلات مناسبة (Idf5e0).
تمت إضافة واجهة برمجة التطبيقات VectorPainter لاستبدال واجهة برمجة التطبيقات للتركيب الفرعي الحالية للرسومات المتجهة. نتيجة الإنشاء الفرعي هي كائن VectorPainter بدلاً من DrawModifier. تم إيقاف مواد DrawVector السابقة لصالح VectorPainter.
تمت إعادة تسمية واجهة برمجة التطبيقات Image(Painter) إلى PaintBox(Painter) إنشاء عنصر Vector القابل للإنشاء الذي يعمل كعنصر قابل للإنشاء باستثناء عنصر VectorAsset بدلاً من ImageAsset (I9af9a، b/149030271)
تم تغيير اسم التخطيط المرن إلى وزن التخطيط. تمت إعادة تسمية المعلمة الضيقة للتعبئة. (If4738)
تمت إزالة RepaintBoundary لصالح DrawLayerModifier (I00aa4).
تم تغيير DrawVector من دالة قابلة للتعديل عادية إلى عرض دالة Modifier drawVector() التي سترسم المتجه كخلفية إلى التخطيط. (I7b8e0)
تم استبدال دالة التعتيم القابلة للتغير بمعدِّل تعتيم الرسم البياني. (I5fb62)
استبدل الدالة المركبة Clip بأداة التعديل drawClip(). يعتبر DrawClipToBounds معدِّل مناسب للاستخدام عندما تحتاج فقط إلى الاقتصاص إلى حدود الطبقة ذات شكل مستطيل. (If28eb)
تم استبدال دالة DrawShadow المركبة بمعدِّل drawShadow() . يتم الآن رسم الظلال كجزء من معدِّل الطبقة. (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.dispose نهائيًا. يمكنك استخدام الإجراءdispose
علىComposition
الذي يعرضهsetContent
بدلاً من ذلك. تم نقل androidx.compose.Compose.subcomposeInto إلى androidx.ui.core.subcomposeInto تمت إعادة تسمية ComponentNode#emitInsertAt إلى ComponentNode#insertAt ComponentNode#emitRemoveAtتم إنشاء صورة قابلة للتعديل للتعامل مع الحجم/التخطيط بالإضافة إلى رسم ImageAsset معين على الشاشة. يتيح تركيب هذا العنصر أيضًا رسم أي مثيل رسام عشوائي يحترم حجمه الأساسي، بالإضافة إلى دعم حجم ثابت أو حد أدنى معيّن للحجم (Ibcc8f)
تم إنشاء ملف التفاف متوقّف نهائيًا. ويمكن استبداله إما بمعدِّل محاذاة التصميم أو بعنصر التجميع القابل للتعديل (Ib237f).
حصلت شركة WithConstraints على معلمة LayoutDirection (I6d6f7)
تم جعل اتجاه التنسيق من عقدة التنسيق الرئيسية إلى العناصر الثانوية. تمت إضافة معدِّل اتجاه التنسيق. (I3d955)
- .
يتوافق مكوِّن التكدس مع الاتجاه من اليمين إلى اليسار (Ic9e00)
تمت إزالة عنصر DrawShape الذي تم إنشاؤه. استخدِم مفتاح التعديل "رسم الخلفية" بدلاً من ذلك. (I7ceb2)
إتاحة الاتجاه من اليمين إلى اليسار في أداة تعديل LayoutPadding (I9e8da)
تمت إضافة AdapterList، وهو مكون قائمة تمرير يتكون فقط من العناصر المرئية ويخطط لها. تتضمن المشكلات المعروفة حاليًا أنه يتم إعداده بالوضع العمودي فقط ولا يعالج بشكل كامل جميع حالات التغييرات التي تطرأ على عناصره الثانوية. (Ib351b)
تم تعديل علامة
ComposeFlags.COMPOSER_PARAM
لتصبحtrue
، ما سيؤدي إلى تغيير استراتيجية إنشاء الرمز في المكوّن الإضافي لإنشاء المحتوى. يؤدي هذا إلى إنشاء دوال @Composable باستخدام مَعلمة اصطناعية إضافية يتم تمريرها إلى استدعاءات @Composable اللاحقة لكي يتمكن وقت التشغيل من إدارة عملية التنفيذ بشكل صحيح. ومع ذلك، فإن هذا تغيير كبير يؤدي إلى كسر ثنائي، ومن المفترض أن يحافظ على التوافق على مستوى المصدر في جميع استخدامات الإنشاء الخاضعة للعقوبات. (I7971c)تمت إضافة مكون "لوحة الرسم". يأخذ هذا العنصر القابل للإنشاء حجمًا معيّنًا (يوفّره المستخدم) ويتيح لك الرسم باستخدام CanvasScope (I0d622).
تم دمج الكثافة ونطاق الكثافة في واجهة واحدة. ويمكنك الآن استخدام DensitySPACE.current بدلاً من إلغاء appdensity() . بدلاً من withDensity(density) (الكثافة) فقط مع(density) (I11cb1)
تم تغيير LayoutCoordinates لجعل availableAlignmentLines مجموعة بدلاً من خريطة وجعل LayoutCoordinates يقوم بتنفيذ عامل التشغيل get() بدلاً من استرداد القيمة. يسهّل ذلك على المعدِّلات تعديل قيمة واحدة أو أكثر من المجموعة بدون إنشاء مجموعة جديدة لكل معدِّل. (I0245a)
تعرض برامج التمرير الآن سلوكًا أصليًا على أجهزة Android للحركة. (I922af، b/147493715)
تحسينات على واجهة برمجة التطبيقات للقيود (I0fd15)