مادة الإنشاء
يمكنك إنشاء واجهات المستخدم في Jetpack Compose باستخدام عناصر التصميم المتعدد الأبعاد. وهي نقطة الدخول ذات المستوى الأعلى في Compose، والتي تم تصميمها لتوفير مكونات تطابق العناصر المذكورة في www.material.io.
التعديل الأخير الإصدار المستقر سحب المرشح الإصدار التجريبي إصدار أولي
26 يونيو 2024 1.6.8 - 1.7.0-beta04 -

البنية

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

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

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

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

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

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

رائع

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.14"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.14"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

ملاحظات

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

إنشاء عدد جديد

راجِع مستندات "أداة تتبُّع المشاكل" للحصول على مزيد من المعلومات.

الإصدار 1.7

الإصدار 1.7.0-beta04

26 يونيو 2024

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

الإصدار 1.7.0-beta03

12 يونيو 2024

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

الإصدار 1.7.0-beta02

29 مايو 2024

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

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

  • تحديث واجهة برمجة التطبيقات لتنسيق الروابط: تم نقل TextLinkStyles إلى TextStyle وإزالة TextDefaults من المادة (I5477b).

الإصدار 1.7.0-beta01

14 مايو 2024

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

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

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

الإصدار 1.7.0-alpha08

1 مايو 2024

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

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

  • حل مشكلة عدم انطباق backgroundColor على TextFieldDecorationBox وOutlinedTextFieldDecorationBox. تقبل مربّعات الديكور الآن مَعلمة shape. (I371c2، b/307694651)
  • تمت إزالة الحقل "RippleConfiguration#isEnabled"، وتم جعل LocalRippleConfiguration قابلاً للإلغاء. لإيقاف التموّج، بدلاً من توفير RippleConfiguration مع isEnabled = false، قدِّم null إلى LocalRippleConfiguration. (I22725)
  • تحتوي الروابط النصية على خيار تصميم حالة يتم الضغط عليه، بالإضافة إلى النمط العادي، حيث يتم تمرير مؤشر الماوس فوقها والتركيز عليها. تحتوي كل طريقة من TextDefaults طريقة على وسيطة pressedStyle لدعم ذلك. (Ic473f، b/139312671)

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

  • تمثل المساحة المتروكة العلوية OutlinedTextField للتصنيف الآن حجم خط النظام. (Idc781)

الإصدار 1.7.0-alpha07

17 أبريل 2024

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

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

  • تم تفعيل خيار تصميم حالة الضغط على الروابط النصية بالإضافة إلى النمط العادي، حيث تم التمرير والتركيز على الروابط النصية. (I5f864، b/139312671)
  • تمت إضافة عنصر TextDefaults يحتوي على طرق لإنشاء LinkAnnotation وتحليل السلسلة التي تحمل علامة HTML والتي تطبّق MaterialTheme على الروابط. (I98532، b/139312671)

الإصدار 1.7.0-alpha06

3 أبريل 2024

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

إشعار

  • لم تعُد هذه المجموعة المتخصّصة تتطلب استخدام الإصدار نفسه من كل عناصر androidx.compose.material. يمكن للمستخدمين دمج ومطابقة إصدارات مكتبات إنشاء الرسائل الأساسية (Ie5fba)

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

  • تم نقل المزيد من ModalDrawer وBottomDrawer تلقائيًا إلى عنصر DrawerDefaults. (Ib5b2e)

الإصدار 1.7.0-alpha05

20 مارس 2024

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

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

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

الإصدار 1.7.0-alpha04

‫6 مارس 2024

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

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

الإصدار 1.7.0-alpha03

21 فبراير 2024

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

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

  • تمت ترقية BottomDrawer من تجريبية إلى ثابتة. تعرض الدالة BottomDrawerState الآن التقدم كدالة، ما يسمح بطلب التقدّم بين أهداف محددة. يسمح BottomDrawerState الآن بتخصيص مواصفات الصور المتحركة، ولم يعُد confirmStateChange علامة lambda لاحقة. (I9c029، b/261423850)
  • تمت ترقية BackdropScaffold من تجريبية إلى ثابتة. أصبحت مواصفات الصور المتحركة الآن ضمن مواصفات tween وفقًا للإرشادات. لم تعد المعلمة snackbarHost الخاصة بـ BackdropScaffold هي المعلمة الأخيرة لتجنُّب الالتباس مع لاحقة lambdas. تعرض الدالة BackdropScaffoldState واجهة برمجة تطبيقات progress(from, to) لتقدم طلب البحث بين علامات الارتساء. (I73f48، b/261423218)
  • تمت ترقية الأوراق السفلية العادية من تجريبية إلى ثابتة. تمت إزالة دوال الإنشاء المتوقفة نهائيًا. أصبحت مواصفات الصور المتحركة الآن من مواصفات الأطفال ما قبل سن المراهقة وفقًا للإرشادات. (I3c1a8، وb/278692145، وb/261409034)
  • تمت ترقية الأوراق السفلية المشروطة من مرحلة تجريبية إلى ثابتة. تمت إزالة دوال الإنشاء المتوقفة نهائيًا. أصبحت مواصفات الصور المتحركة الآن ضمن مواصفات tween وفقًا للإرشادات. (Ic53f4 وb/278692145 وb/266780235 وb/261409034)

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

  • تم إصلاح مشكلة تعطُّل BackdropScaffold في سيناريوهات معيّنة بالإضافة إلى LookaheadScope. (I51396)
  • تمت إزالة التركيب الفرعي داخل BottomSheetScaffold لتحسين الأداء. تم إصلاح مشكلة تعطُّل BottomSheetScaffold في سيناريوهات معيّنة بالإضافة إلى LookaheadScope. (I2f90c)
  • تمت إزالة التركيبة الفرعية داخل ModalBottomSheetLayout لتحسين الأداء. (I7a025)

الإصدار 1.7.0-alpha02

7 فبراير 2024

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

الإصدار 1.7.0-alpha01

24 يناير 2024

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

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

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

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

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

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

الإصدار 1.6

الإصدار 1.6.8

12 يونيو 2024

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

الإصدار 1.6.7

1 مايو 2024

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

الإصدار 1.6.6

17 أبريل 2024

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

الإصدار 1.6.5

3 أبريل 2024

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

الإصدار 1.6.4

20 مارس 2024

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

الإصدار 1.6.3

‫6 مارس 2024

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

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

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

الإصدار 1.6.2

21 فبراير 2024

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

الإصدار 1.6.1

7 فبراير 2024

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

الإصدار 1.6.0

24 يناير 2024

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

الإصدار 1.6.0-rc01

10 يناير 2024

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

الإصدار 1.6.0-beta03

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

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

الإصدار 1.6.0-beta02

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

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

الإصدار 1.6.0-beta01

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

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

الإصدار 1.6.0-alpha08

18 تشرين الأول (أكتوبر) 2023

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

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

  • يمكنك إيقاف دالة materialIcon نهائيًا لصالح حِملها الزائد الذي يستخدم مَعلمة autoMirror. (Ia338d)

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

الإصدار 1.6.0-alpha07

‫4 أكتوبر 2023

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

  • الإشعارات بشأن التبعية

الإصدار 1.6.0-alpha06

20 أيلول (سبتمبر) 2023

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

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

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

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

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

الإصدار 1.6.0-alpha05

6 أيلول (سبتمبر) 2023

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

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

  • تمت إضافة دعم الرموز التي تتم مزامنتها تلقائيًا عند عرضها بتنسيقات من اليمين إلى اليسار. توفر الأيقونات في الوحدات المخصصة لتشكيلات المادة الأساسية والأشكال الممتدة حاليًا مجموعات رموز إضافية لدعم النسخ المطابق التلقائي عندما يسمح الرمز بذلك. تبدأ المجموعات الجديدة بـ Icons.AutoMirrored.Filled...، وما إلى ذلك، وتحمل رموزًا تتم مزامنتها تلقائيًا مع تنسيقات من اليمين إلى اليسار. اطّلع على قائمة رموز المواد للحصول على قائمة بالرموز التي يمكن (ويجب) مزامنتها على الجهاز وفي السحابة الإلكترونية.

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

  • تمت إضافة دعم الرموز التي تتم مزامنتها تلقائيًا عند عرضها بتنسيقات من اليمين إلى اليسار. توفر الأيقونات في الوحدات المخصصة لتشكيلات المادة الأساسية والأشكال الممتدة حاليًا مجموعات رموز إضافية لدعم النسخ المطابق التلقائي عندما يسمح الرمز بذلك. تبدأ المجموعات الجديدة بـ Icons.AutoMirrored.Filled...، وما إلى ذلك، وتحمل رموزًا تتم مزامنتها تلقائيًا مع تنسيقات من اليمين إلى اليسار. اطّلع على قائمة رموز المواد للحصول على قائمة بالرموز التي يمكن (ويجب) مزامنتها على الجهاز وفي السحابة الإلكترونية. تم وضع علامة على خصائص الرموز التي سبق تقديمها لهذه الرموز على أنّها متوقّفة نهائيًا، ويتم تقديم اقتراح لمجموعة بديلة للمساعدة في عملية نقل البيانات. في حال لم تتوفّر لك أي معالجة خاصة للرموز على النسخ المطابق في الوقت الفعلي (RTL)، ننصحك بالانتقال إلى المجموعة الجديدة من الرموز. على سبيل المثال، يجب إعادة ضبط قيمة Icons.Filled.ArrowBack إلى Icons.AutoMirrored.Filled.ArrowBack. (I4b511)

الإصدار 1.6.0-alpha04

23 آب (أغسطس) 2023

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

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

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

الإصدار 1.6.0-alpha03

9 آب (أغسطس) 2023

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

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

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

الإصدار 1.6.0-alpha02

26 تموز (يوليو) 2023

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

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

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

الإصدار 1.6.0-alpha01

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

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

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

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

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

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

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

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

الإصدار 1.5

الإصدار 1.5.4

18 تشرين الأول (أكتوبر) 2023

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

الإصدار 1.5.3

‫4 أكتوبر 2023

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

الإصدار 1.5.2

27 أيلول (سبتمبر) 2023

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

الإصدار 1.5.1

6 أيلول (سبتمبر) 2023

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

الإصدار 1.5.0

9 آب (أغسطس) 2023

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

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

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

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

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

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

الإصدار 1.5.0-rc01

26 تموز (يوليو) 2023

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

الإصدار 1.5.0-beta03

28 حزيران (يونيو) 2023

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

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

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

الإصدار 1.5.0-beta02

7 حزيران (يونيو) 2023

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

الإصدار 1.5.0-beta01

24 أيار (مايو) 2023

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

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

  • إزاحة DrawerState وBottomDrawerState لم تعد قابلة للقيم الفارغة. بدلاً من ذلك، تعرض Float.NaN للإشارة إلى عدم توفُّر الإزاحة. (Ie9855)
  • تمت إضافة خيار للتمرير في ScrollState عند إنشاء DropdownMenu أو ExposedDropdownMenu للتحكّم في حالة التمرير العمودي للعناصر المعروضة في القائمة. (Idb009، b/185304441)
  • يمكنك إضافة دعم لتفعيل/إيقاف إيماءة "ModalBottomSheetLayout" كي يتمكّن المستخدم من ضبط هذه الميزة في بطاقة المعلومات السفلية الأكثر تميزًا (I40af0).
  • تمت إضافة مَعلمة لون إلى BasicText للسماح بتحريك النص أو ضبطه بكفاءة. (Iffd88 وb/246961787)
  • إعادة تسمية سمة دلالات isContainer إلى isTraversalGroup (I121f6)

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

  • تم إصلاح إجراء الإغلاق AlertDialog ليظهر أسفل إجراء التأكيد عند تكديس الإجراءات فوق بعضها البعض لتلائم عرض مربع الحوار. يعمل هذا الإصلاح على مواءمة التنفيذ مع مواصفات التصميم المتعدد الأبعاد. (I029de، b/235454277)

الإصدار 1.5.0-alpha04

10 أيار (مايو) 2023

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

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

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

الإصدار 1.5.0-alpha03

19 نيسان (أبريل) 2023

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

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

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

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

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

الإصدار 1.5.0-alpha02

5 نيسان (أبريل) 2023

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

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

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

الإصدار 1.5.0-alpha01

22 آذار (مارس) 2023

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

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

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

الإصدار 1.4

الإصدار 1.4.3

3 أيار (مايو) 2023

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

الإصدار 1.4.2

19 نيسان (أبريل) 2023

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

الإصدار 1.4.1

5 نيسان (أبريل) 2023

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

الإصدار 1.4.0

22 آذار (مارس) 2023

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

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

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

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

الإصدار 1.4.0-rc01

8 آذار (مارس) 2023

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

الإصدار 1.4.0-beta02

22 شباط (فبراير) 2023

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

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

  • تم تضمين التغييرات في واجهات برمجة التطبيقات القابلة للتمرير السريع في BottomSheetScaffold. تمت إعادة تسمية معلَمة confirmStateChange الخاصة بـ BottomSheetState إلى confirmValueChange. تعرض الدالة progress الآن كقيمة عائمة. "animateTo" و"snapTo" داخليان. يمكنك استخدام expand() وcollapse() بدلاً منها. تمّت إزالة كلّ من direction وoverflow. تم استبدال الحقل "offset" بالعنوان "requireOffset()". (I323b4)

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

  • تمت إزالة الأدوار الدلالية من مساحات العرض القابلة للنقر والاختيار، والمكوّنات المعدَّلة التي استخدمت هذه الأدوار لضبط الأدوار باستخدام edit.semantics (Ibb4ba).
  • تحديث بسيط لرموز المواد الموسّعة التي تغيّر رموز desktop_mac وdirections وkitchen التي تم تعبئتها (I65f5e)

الإصدار 1.4.0-beta01

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

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

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

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

الإصدار 1.4.0-alpha05

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

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

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

  • تم إصلاح مشكلة تمثَّلت في احتساب حالة ModalBottomSheetLayout's HalfExpanded بشكل غير صحيح وظهور ورقة البيانات وكأنها عائمة. (I8c615، b/265610459)
  • تم إصلاح خطأ في "ModalBottomSheetLayout" كان يؤدي إلى تعطُّل ورقة البيانات عند الانتقال من الحالة المخفية إلى الحالة المرئية في بعض الحالات. (Ia9265، b/265444789)

الإصدار 1.4.0-alpha04

11 كانون الثاني (يناير) 2023

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

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

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

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

  • يبلغ الحد الأقصى لعرض ورقة بيانات ModalBottomSheetLayout الآن 640 وحدة بكسل مستقلة الكثافة. (I71a4f، b/234927577)
  • تم إصلاح المشكلة المتمثلة في عدم تحديث rememberPullRefreshState لـ refreshThreshold وrefreshingOffset بمرور الوقت. (Ifed10، b/263159832)
  • تم ربط التقدم المحرز في مؤشرات التقدم بشكل صحيح بنطاقه المتوقع. (I8a7eb، b/262262727)
  • إذا لم يتلقَ ModalBottomSheetState أي علامات ارتساء حتى الآن، سيتم تعديل currentValue بدون صورة متحركة عند استدعاء snapTo أو animateTo بدلاً من طرح استثناء. (I2c91b)
  • تم إصلاح حالة التفعيل في تنفيذ المادة 2 FilterChip. (Id326a، b/261329817)
  • تم إصلاح الخطأ الذي كان يؤدي إلى تعطُّل "ModalBottomSheetLayout" عند تغيير القيمة إلى "HalfExpanded" عند التبديل من الوضع العمودي إلى الوضع الأفقي. يُرجى التأكّد من إدخال initialValue الصحيح، من خلال التحقّق من الإعدادات على سبيل المثال. (Ie8df7، b/182882364)
  • تم إصلاح مشكلة تعطُّل ModalBottomSheetLayout إذا كان محتوى ورقة البيانات فارغًا. تسمح ميزة ModalBottomSheetLayout الآن بمحتوى ورقة البيانات الفارغة. إذا كان محتوى ورقة البيانات فارغًا، ستظهر الحالة "مخفية" فقط. (Ic2288، وb/200980998، وb/216693030)

مشكلة معروفة

  • عند التحديث من androidx.compose.foundation:1.4.0-alpha03 إلى androidx.compose.foundation:1.4.0-alpha04، قد يظهر لك الخطأ java.lang.NoSuchFieldError. إليك المكان الذي تم الإبلاغ فيه عن المشكلة في الأصل. تم إرسال إصلاح وسيكون متاحًا في تحديث Compose التالي. لحلّ هذه المشكلة، عليك تحديث مكتبتَي androidx.compose.material وandroidx.compose.material3 إلى أحدث إصدار(1.1.0-alpha04) أو الرجوع إلى إصدار سابق من androidx.compose.foundation إلى 1.4.0-alpha03.

الإصدار 1.4.0-alpha03

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

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

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

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

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

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

التحديثات المتعلقة بالاعتمادية

  • تعتمد واجهة مستخدم Compose ومواد Compose الآن على Lifecycle 2.5.1. (I05ab0، b/258038814)

الإصدار 1.4.0-alpha02

9 تشرين الثاني (نوفمبر) 2022

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

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

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

الإصدار 1.4.0-alpha01

24 تشرين الأول (أكتوبر) 2022

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

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

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

الإصدار 1.3

الإصدار 1.3.1

9 تشرين الثاني (نوفمبر) 2022

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

الإصدار 1.3.0

24 تشرين الأول (أكتوبر) 2022

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

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

تغيير قد يؤدي إلى كسر السلوك

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

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

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

الإصدار 1.3.0-rc01

5 تشرين الأول (أكتوبر) 2022

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

الإصدار 1.3.0-beta03

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

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

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

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

الإصدار 1.3.0-beta02

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

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

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

الإصدار 1.3.0-beta01

24 آب (أغسطس) 2022

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

تغيير قد يؤدي إلى كسر السلوك

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

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

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

الإصدار 1.3.0-alpha03

10 آب (أغسطس) 2022

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

الإصدار 1.3.0-alpha02

27 تموز (يوليو) 2022

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

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

  • حلّ مشكلة واحدة (AnimatedVisibility) متعلّقة بـ FloatingActionButton في Scaffold (I3a0ae، b/224005027)

الإصدار 1.3.0-alpha01

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

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

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

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

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

  • يُرجى تعديل نموذج الشارة لتقديم وصف أكثر وضوحًا للمحتوى. (I10b9d)

الإصدار 1.2

الإصدار 1.2.1

10 آب (أغسطس) 2022

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

الإصدار 1.2.0

27 تموز (يوليو) 2022

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

الإصدار 1.2.0-rc03

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

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

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

الإصدار 1.2.0-rc02

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

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

الإصدار 1.2.0-rc01

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

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

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

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

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

  • "تعديل شارة" مع علامة تبويب رمز بادئة لإضافة شارة إلى التصنيف بدلاً من الرمز (I90993)

الإصدار 1.2.0-beta03

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

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

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

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

الإصدار 1.2.0-beta02

18 أيار (مايو) 2022

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

الإصدار 1.2.0-beta01

11 أيار (مايو) 2022

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

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

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

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

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

الإصدار 1.2.0-alpha08

20 نيسان (أبريل) 2022

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

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

  • تم إيقاف الاستهلاك الجزئي (الموضع أو الموضع) نهائيًا في PointerInputChange. ويمكنك استخدام consume() لاستهلاك التغيير بالكامل. يمكنك استخدام السمة isConsumed لتحديد ما إذا كان شخص آخر قد استخدم التغيير من قبل أم لا.
  • يصنع PointerInputChange::copy() الآن نسخة سطحية. ويعني ذلك أنّه سيتم استهلاك نُسخ من PointerInputChange بعد استهلاك إحدى النُسخ. إذا أردت إنشاء PointerInputChange غير مرتبطة، استخدِم الدالة الإنشائية بدلاً منها. (Ie6be4، b/225669674)

الإصدار 1.2.0-alpha07

6 نيسان (أبريل) 2022

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

الإصدار 1.2.0-alpha06

23 آذار (مارس) 2022

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

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

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

الإصدار 1.2.0-alpha05

9 آذار (مارس) 2022

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

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

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

الإصدار 1.2.0-alpha04

23 شباط (فبراير) 2022

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

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

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

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

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

الإصدار 1.2.0-alpha03

9 شباط (فبراير) 2022

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

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

الإصدار 1.2.0-alpha02

26 يناير 2022

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

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

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

الإصدار 1.2.0-alpha01

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

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

التحديثات المتعلقة بالاعتمادية

  • تعتمد الآن على لغة 1.6.10 بلغة Kotlin.

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

  • يتضمّن ModalBottomSheetState الآن علامة isSkipHalfExpanded. ويمكن ضبط هذه السمة من خلال الدالة الإنشائية أو تعديلها لاحقًا من خلال ضبط السمة isSkipHalfExpanded في ModalBottomSheetState على true. يؤدي تعديل قيمة isSkipHalfExpanded إلى إعادة تركيب ورقة البيانات. (I18b86، b/186669820)

الإصدار 1.1

الإصدار 1.1.1

23 شباط (فبراير) 2022

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

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

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

الإصدار 1.1.0

9 شباط (فبراير) 2022

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

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

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

الإصدار 1.1.0-rc03

26 يناير 2022

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

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

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

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

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

الإصدار 1.1.0-rc01

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

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

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

الإصدار 1.1.0-beta04

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

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

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

  • تم التعديل للتوافق مع لغة "1.6.0" بلغة Kotlin.

الإصدار 1.1.0-beta03

17 تشرين الثاني (نوفمبر) 2021

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

الإصدار 1.1.0-beta02

3 تشرين الثاني (نوفمبر) 2021

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

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

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

الإصدار 1.1.0-beta01

27 تشرين الأول (أكتوبر) 2021

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

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

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

الإصدار 1.1.0-alpha06

13 تشرين الأول (أكتوبر) 2021

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

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

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

الإصدار 1.1.0-alpha05

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

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

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

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

الإصدار 1.1.0-alpha04

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

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

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

  • تم إيقاف العمليّتين performGesture وGestureScope واللذين تم استبدالهما بـ performTouchInput وTouchInjectionScope. (Ia5f3f، b/190493367)
  • تمت إضافة touchBoundsInRoot إلى SemanticsNode يتضمّن الحد الأدنى لحجم ناحية اللمس المستهدفة، كي يتأكد المطوّرون من أنّ مساحات اللمس المستهدفة تستوفي الحدّ الأدنى من متطلبات تسهيل الاستخدام. (I2e14b، b/197751214)

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

  • اسمح للمقطع بتوسيع حدود ناحية اللمس المستهدفة، وذلك بهدف الحدّ الأدنى من أهداف اللمس. (I43e10، b/171509422)
  • تم تعديل السمة Divider القابلة للإنشاء لتتوافق مع Dp.Hairline لمعلَمة السماكة لإتاحة رسم فواصل أحادية البكسل بغض النظر عن كثافة العرض. (I16ffb، b/196840810)

الإصدار 1.1.0-alpha03

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

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

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

  • تم تعديل سياسة ComposeAllowed التي تم تحديثها 1.1.0-alpha03 للاعتماد على لغة 1.5.30 في لغة Kotlin. (I74545)

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

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

الإصدار 1.1.0-alpha02

18 آب (أغسطس) 2021

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

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

  • إصلاح سلوك FastableState في حال وجود إزاحة التمرير ضمن خطأ تقريب إلى ارتساء. (I03d39، b/191993377)

الإصدار 1.1.0-alpha01

4 آب (أغسطس) 2021

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

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

  • تم تعديل طريقة DrawScope#drawImage التي تستهلك ساحات المصدر والوجهة لاستهلاك مَعلمة Filterquality الاختيارية. يفيد ذلك في فن البكسل المراد تقطيعه عند تحجيمه مع الفن القائم على البكسل. تم تحديث BitmapPainter + الصور القابلة للإنشاء لاستهلاك معلَمة Filterquality الاختيارية أيضًا (Ie4fb0، وb/180311607)
  • تمت إعادة تسمية BadgeBox إلى BadgedBox، وتغيير المَعلمات لقبول إنشاء الشارة. تمت إضافة مكوّن الشارة الذي يمثّل محتوى الشارة العادي لـ BadgedBox. (I639c6)
  • تمت إضافة مكوّن NavigationRail، ويمكنك الاطّلاع على المستندات والنماذج للحصول على معلومات الاستخدام (I8de77).

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

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

الإصدار 1.0

الإصدار 1.0.5

3 تشرين الثاني (نوفمبر) 2021

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

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

  • تم إصلاح مثيلات الحالة المستمدة من تتبُّع الأعطال. (aosp/1792247)

الإصدار 1.0.4

13 تشرين الأول (أكتوبر) 2021

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

التحديثات المتعلقة بالاعتمادية

  • تم التعديل لكي تعتمد على 1.5.31 بلغة Kotlin.

الإصدار 1.0.3

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

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

التحديثات المتعلقة بالاعتمادية

  • تم التعديل لكي تعتمد على 1.5.30 بلغة Kotlin.

الإصدار 1.0.2

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

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

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

الإصدار 1.0.1

4 آب (أغسطس) 2021

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

التحديثات المتعلقة بالاعتمادية

  • تم التعديل لكي تعتمد على 1.5.21 بلغة Kotlin.

الإصدار 1.0.0

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

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

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

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

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

  • إذا كنت تستخدم Android Studio Bumblebee Canary 4 أو AGP 7.1.0-alpha04/7.1.0-alpha05، قد يحدث العُطل التالي:

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

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

الإصدار 1.0.0-rc02

14 يوليو 2021

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

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

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

الإصدار 1.0.0-rc01

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

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

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

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

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

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

الإصدار 1.0.0-beta09

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

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

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

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

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

  • ستختفي Scrim في BottomDrawer وBackdropScaffold وModalBottomSheetLayout ثم يتم تمرير قيمة Color.Unspecified (I2d899 وb/182063309).

قواعد الملف الشخصي المضافة

يضيف هذا الإصدار قواعد الملف الشخصي إلى وحدات الإنشاء التالية (I14ed6):

  • androidx.compose.animation
  • androidx.compose.animation-core
  • .androidx.compose.foundation
  • androidx.compose.foundation-layout
  • androidx.compose.material
  • androidx.compose.material-ripple
  • androidx.compose.runtime.
  • androidx.compose.ui
  • androidx.compose.ui.geometry
  • androidx.compose.ui.graphics
  • androidx.compose.ui.text
  • androidx.compose.ui.text
  • androidx.compose.ui.unit
  • .androidx.compose.ui.util

ما هي قواعد الملف الشخصي؟

  • تم تحديد قواعد الملف الشخصي لمكتبة في ملف نصي baseline-prof.txt في src/main أو في دليل مكافئ. يحدد الملف قاعدة في كل سطر، حيث تكون القاعدة في هذه الحالة نمطًا للمطابقة مع الطرق أو الفئات في المكتبة. تعتبر بنية هذه القواعد جزءًا رئيسيًا من تنسيق الملف الشخصي ART الذي يمكن للمستخدمين قراءته، والذي يتم استخدامه عند استخدام adb shell profman --dump-classes-and-methods .... تتخذ هذه القواعد أحد الشكلين لاستهداف الطرق أو الفئات.

  • سيكون لقاعدة الطريقة النمط التالي:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • وسيكون لقاعدة الفئة النمط التالي:

    <CLASS_DESCRIPTOR>
    
  • تتضمّن <FLAGS> حرفًا واحدًا أو أكثر من الرموز H وS وP للإشارة إلى ما إذا كان يجب وضع علامة على هذه الطريقة على أنّها "سريعة" أو "بدء تشغيل" أو "ما بعد بدء التشغيل".

  • تمثّل السمة <CLASS_DESCRIPTOR> وصفًا للفئة التي تنتمي إليها الطريقة المستهدَفة. على سبيل المثال، يجب أن يكون للفئة androidx.compose.runtime.SlotTable واصف للقيمة Landroidx/compose/runtime/SlotTable;.

  • تمثّل السمة <METHOD_SIGNATURE> توقيع الطريقة وتتضمّن الاسم وأنواع المَعلمات وأنواع النتائج التي تتضمنها الطريقة. على سبيل المثال، تحتوي الطريقة fun isPlaced(): Boolean في LayoutNode على التوقيع isPlaced()Z.

  • يمكن أن تشتمل هذه الأنماط على أحرف بدل (** و* و?) لكي تشتمل قاعدة واحدة على طرق أو فئات متعددة.

ما هي وظيفة القواعد؟

  • تشير الطريقة ذات العلامة H إلى أن هذه الطريقة هي طريقة "سريعة"، ويجب تجميعها مسبقًا.

  • تشير الطريقة التي تحمل العلامة S إلى أنّها طريقة يتم استدعاؤها عند بدء التشغيل، ويجب تجميعها مسبقًا لتجنُّب تكلفة التجميع وتفسير الطريقة في وقت بدء التشغيل.

  • تشير الطريقة التي تحمل العلامة P إلى أنّ هذه الطريقة يتم طلبها بعد بدء التشغيل.

  • تشير الفئة المتوفّرة في هذا الملف إلى أنّه يتم استخدامها أثناء بدء التشغيل ويجب تخصيصها مسبقًا في الذاكرة لتجنُّب تحمُّل تكلفة تحميل الفئة.

آلية العمل

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

الإصدار 1.0.0-beta08

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

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

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

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

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

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

  • تم تحويل FabPosition إلى فئة مضمّنة من enum لإتاحة توسيع محتمل في المستقبل (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 على عمليات التنفيذ هذه.

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

  • لم تعد بحاجة إلى استخدام طرق الإضافات لدعم المسار في ميزة "إنشاء التنقل". (I22beb، b/172823546)

الإصدار 1.0.0-beta06

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

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

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

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

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

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

الإصدار 1.0.0-beta05

21 نيسان (أبريل) 2021

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

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

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

الإصدار 1.0.0-beta04

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

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

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

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

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

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

الإصدار 1.0.0-beta03

24 آذار (مارس) 2021

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

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

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

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

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

الإصدار 1.0.0-beta02

10 آذار (مارس) 2021

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

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

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

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

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

الإصدار 1.0.0-beta01

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

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

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

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

  • تمت إعادة تسمية معدِّلات الحجم. تمت إعادة تسمية Modifier.width/height/size لتصبح مطلوبةwidth/requiredHeight/requiredSize. تمت إعادة تسمية Modifier.FavoriteDetails/FavoriteHeight/FavoriteSize إلى العرض/الارتفاع/الحجم. (I5b414)
  • تُعد imageResource وectResource الآن دالتَين إضافة على الأدوات المصاحبة لـ ImageBitmap وImageVector على التوالي. load{Image,Vector,Font}تم حذف وظائف المورد. (I89130)
  • لم تعد معدِّلات الحجم إلى الأساسيات تجريبية. (I15744)
  • تأكيدات dp التي تمت إزالتها (I798d2)
  • تمت إزالة معاودة الاتصال لبرنامج SoftwareboardController من جميع الحقول النصية لاستبدالها بواجهة برمجة تطبيقات جديدة قريبًا. (Iae869، b/168778053)
  • أصبحت الآن رموز إجراء التبديل ومربّع الاختيار وزر الاختيار قابلة للقيم الفارغة. تم تحديث نماذج مربّعات الاختيار القابلة للنقر في الصف لاستخدام هذه الميزة. (If601b، وb/171819073)
  • تم استبدال InteractionState بـ [Mutable]InteractionSource
    • تؤدي الواجهات إلى إصدار / جمع أحداث التفاعل.
    • بدلاً من تمرير interactionState = remember { InteractionState() } إلى مكونات مثل Button وModifier.clickable()، استخدم interactionSource = remember { MutableInteractionSource() }.
    • بدلاً من: Interaction.Pressed in interactionState، يجب عليك استخدام وظائف الإضافة في InteractionSource، مثل InteractionSource.collectIsPressedAsState().
    • بالنسبة إلى حالات الاستخدام المعقّدة، يمكنك استخدام InteractionSource.interactions لمراقبة تدفق التفاعلات. راجع الوثائق والأمثلة لـ InteractionSource للحصول على مزيد من المعلومات.
    • (I85965، وb/152525426، وb/171913923، وb/171710801، وb/174852378)
  • إضافة واجهة AccessibilityMananger وLocalAccessibilityMananger إلى SurfaceLocals (I53520)
  • تمت إزالة طرق LayoutCoordinates، ويمكنك استخدام الدالة بدلاً من السمة for positionInParent وboundsInParent (I580ed وb/169874631 وb/175142755)
  • يتوافق شريط التمرير الآن مع حالة التفعيل/الإيقاف (I6d56b، b/179793072)
  • إنشاء TextInputSession جديد لجلسات الإدخال من مكونات نصية منخفضة المستوى مثل CoreTextField. (I8817f، b/177662148)
  • AnimationEndreason.تمت إزالة انقطاع. سيتم طرح استثناء الإلغاء في حال انقطاع الصورة المتحركة. (I2cbbc، b/179695417)
  • تمت إزالة @ExperimentalRippleApi وتغيير RippleAlpha ليصبح فئة تحتوي على خصائص بدلاً من واجهة. (I6df7c)
  • تمت إضافة واجهة TextFieldColors لتمثيل الألوان المختلفة المستخدَمة في TextField وOutdTextField في حالات مختلفة. للتنفيذ التلقائي، يُرجى الاطّلاع على TextFieldDefaults.textFieldColors وTextFieldDefaults.outlinedTextFieldColors.
    • تمت إعادة تسمية معلمة isErrorValue داخل حقل Text وOutdTextField إلى isError. (I831f9، وb/171305338، وb/168004067)
  • إضافة معدِّل selectGroup يسمح بوضع علامة على مجموعة علامات التبويب أو أزرار الاختيار لأغراض تسهيل الاستخدام (Ie5c29)
  • إضافة LazyListState.animate scrollToItem

    تؤدي هذه الطريقة إلى الانتقال بشكل سلس إلى عنصر معيّن في القائمة. (I4bfd7)

  • تمت إعادة تسمية "ScrollableState.smoothScrollBy()" إلى "animateScrollBy()" ثم تغيّر اسم "LazyListState.snapToItemIndex()" إلى "scrollToItem()" تم تغيير اسم "ScrollState.smoothScrollTo()" إلى "animateScrollTo()" (I35ded)

  • يتم الآن التحقّق من صحة وقت التجميع لأي عناصر قابلة للإنشاء تم وضع علامة @ReadOnlyComposable عليها للتأكد من أنّها تُجري طلبات فقط إلى @ReadOnlyComposables الأخرى (I58961).

  • تمت إزالة واجهة برمجة تطبيقات TargetAnimation. (If47d1، وb/177457083)

  • يتم تمثيل موضع التمرير في Modifier.vertical scroll()/horizontal scroll() باستخدام Ints now (I81298).

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

  • تمت إعادة تسمية FlingConfig ليصبح FlingBehavior يتيح الآن تخصيص الرسوم المتحركة المعلّقة بدلاً من التراجع المحدد مسبقًا. (I02b86، b/175294473)

  • تمت إعادة تسمية معدِّلات الحجم. تمت إعادة تسمية Modifier.width/height/size لتصبح مطلوبةwidth/requiredHeight/requiredSize. تمت إعادة تسمية Modifier.FavoriteDetails/FavoriteHeight/FavoriteSize إلى العرض/الارتفاع/الحجم. (I5b414)

  • تمت إعادة تسمية defaultMinSizeConstraints إلى defaultMinSize. (I4eaae)

  • تم نقل التوجيه إلى حزمة الأساس. تم نقل أداة VelocirtTracker من ui.gesture إلى ui.input.pointer. (Iff4a8 وb/175294473)

  • drawerState.open() و drawerState.Close() يؤديان الآن إلى تعليق الدوال. استخدِم meetCoroutineScope() للحصول على نطاق المقطوعة الموسيقية ليتم استدعاؤها (I16f60, b/175294473).

  • تمت إعادة تسمية مقدّمي الخدمات إلى HeadlineLocalProvider.

    • لم تعد طريقة إنشاء المقطوعة الموسيقية تقبل معلَمة رئيسية، وتم إيقافها نهائيًا.
    • تم تحويل currentCompositeKeyHash إلى سمة مستوى أعلى قابلة للإنشاء بدلاً من دالة مستوى أعلى قابلة للإنشاء.
    • تم نقل GenreData وSurfaceGroup إلى مساحة الاسم androidx.compose.runtime.tooling
    • تم إنشاء واجهة ComposableLambda بدلاً من فئة خرسانة ولم تعد تحتوي على معلمات من النوع.
    • تم إنشاء واجهة ComposableLambdaN بدلاً من فئة خرسانية ولم تعد تحتوي على معلمات من النوع.
    • تم نقل الدالة sampleFlow إلى مساحة الاسم androidx.compose.runtime.
    • فطريقة دمج SnapshotMutationPolicy لم تعد تجريبية
    • تمت إزالة دالة clearRoots ذات المستوى الأعلى في @TestOnly. لم يعد من الضروري استخدامه.
    • تمت إزالة الدالتين keySourceInfoOf وresetSourceInfo. لم تعد ضرورية.
    • تمت إزالة Composer.collectKeySource Information. لم يعد من الضروري استخدامه.
    • تمت إزالة طرق isJOINedKey وjoinKeyLeft وjoinKeyRight. لم تعد ضرورية.
    • تم نقل العديد من واجهات برمجة التطبيقات ذات المستوى الأعلى وإعادة تنظيمها في ملفات مختلفة. وبسبب دلالات فئة الملف في Kotlin، سيؤدي ذلك إلى تعطيل التوافق الثنائي ولكن ليس التوافق مع المصدر، لذا من المفترض ألا يمثّل ذلك مشكلة لمعظم المستخدمين.
    • (I99b7d، b/177245490)
  • تمت إعادة صياغة Modifier.scrollable. وهي تستخدم الآن واجهة قابلة للتمرير بدلاً من فئة ScrollableController (I4f5a5 وb/174485541 وb/175294473).

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

  • تُعد ZoomableController.smoothScaleBy و ZoomableController.stopAnimation وظيفتين يتم تعليقهما الآن. (I7f970، b/177457083)

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

  • تم إجراء التغييرات التالية على Material API:

    • تمت إضافة مَعلمة contentPadding إلى Top/BottomAppBar للسماح بتخصيص المساحة المتروكة التلقائية.
    • المعلَمات المُعاد ترتيبها في BackdropScaffold لاتّباع إرشادات واجهة برمجة التطبيقات للمَعلمات المطلوبة قبل المَعلمات الاختيارية.
    • تم نقل المعلمة icon في Bottom NavigationItem ليكون بعد selected وonClick.
    • تمت إعادة تسمية المعلَمة alwaysShowLabels في Bottom NavigationItem إلى alwaysShowLabel.
    • تمت إعادة تسمية معلَمات bodyContent في بعض المكوّنات لتصبح content فقط.
    • تم إعادة ترتيب المعلمات في ButtonDefaults.buttonColors(). تجدر الإشارة إلى أنّه نظرًا لعدم تغيير نوع المَعلمات، لن يتسبب ذلك في حدوث خطأ في الرمز، لذا يُرجى التأكد من استخدام المَعلمات المُسَمّاة أو تعديل الترتيب يدويًا، وإلا لن يعمل الرمز كما كان في السابق.
    • تمت إضافة المَعلمة secondaryVariant إلى darkColors(). عادةً ما يكون هذا اللون هو نفسه اللون secondary في المظهر الداكن، ولكنّه تتم إضافته لتوفير المزيد من الاتّساق وتخصيص المحتوى.
    • تمت إزالة EliffationDefaults وanimateEliffation() من واجهة برمجة التطبيقات العامة نظرًا لعدم استخدامهما بشكل شائع أو الاستفادة منهما.
    • تمت إعادة تسمية onValueChangeEnd في Slider إلى onValueChangeFinished وجعله قابلاً للقيم الفارغة.
    • تمت إعادة تسمية المعلَمة text في Snackbar إلى content لتحقيق الاتساق.
    • تمت إضافة المَعلمة contentPadding إلى DropdownMenuItem للسماح بتخصيص المساحة المتروكة التلقائية وتم جعل content إضافة في RowScope.
    • تمت إعادة تسمية "ModalDrawerLayout" إلى "ModalDrawer".
    • تمت إعادة تسمية "BottomDrawerLayout" إلى "BottomDrawer".
    • (I1cc66)
  • يقبل BasicTextField الآن استخدام الفرشاة بدلاً من اللون لتخصيص أفضل (I83a36).

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

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

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

  • تمت إضافة واجهة برمجة تطبيقات محلية جديدة لتأليف LocalSoftwareControllerController لاستبدال واجهة SoftwareControlController السابقة على TextField. (I658b6، b/168778053)

الإصدار 1.0.0-alpha12

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

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

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

  • الآن، يتطلّب Modifier.pointerInput استخدام مفاتيح التذكّر للإشارة إلى الوقت الذي يجب فيه إعادة تشغيل الكوروتين في رصد مدخلات المؤشر للتبعيات الجديدة. (I849cd)
  • تم وضع علامة BottomDrawerLayout وListItem كـ @experimentalMaterialApi (Id766e)
  • تمت إضافة PaddValues.Absolute ويمكن استخدامها في واجهات برمجة التطبيقات التي تقبل PaddingValues. (Ia5f30)
  • تم إيقاف onImeActionPerformed نهائيًا. يمكنك استخدام "إجراءات لوحة المفاتيح" بدلاً منها (If0bbd وb/179071523).
  • لمطابقة اصطلاحات التسمية بشكل أفضل مع ImageBitmap وImageVector، تمت إعادة تسمية ImagePainter إلى BitmapPainter إلى VectorPainter. (Iba381، b/174565889)
  • Animatable.snapTo وAnimatable.stop هما الآن دالتان تعليق (If4288).
  • تم نقل ComponentActivity.setContent إلى androidx.activity.compose.setContent في وحدة androidx.activity:activity-compose. (Icf416)
  • تمت إزالة طرق التدمير وcopy() من عدة فئات نادرًا ما تم استخدامها. (I26702، b/178659281)
  • تنفيذ نصف التوسعة() و"التوسيع" () في ModalBottomSheetState داخليًا (Ic914e)
  • تم تغيير الإشارتي#createInstance ليصبح @Composable، وتغيير LocalIndiization ليحتوي على مؤشر، وليس () -> مؤشر. (I5eeea، b/157150564)
  • تم نقل مربع حوار التنبيه وقائمة القائمة المنسدلة ليكونا Android في الوقت الحالي فقط. تمت إضافة المعلمة PopupProperties إلى Dropdown Menu (قائمة منسدلة) لإجراء مزيد من الإعدادات في النافذة المنبثقة الأساسية. (I9c443)
  • تم إيقافloadFontResource نهائيًا. استخدِم fontResource بدلاً من ذلك. يُرجى استخدام PainterResource بدلاً من ذلك. (I6b809)
  • تمت إزالة المعلَمة toggle وtoggleModifier من القائمة المنسدلة، وإعادة تسمية dropdownModifier وdropdownOffset وdropdownContent إلى modifier وoffset وcontent على التوالي. تعمل القائمة المنسدلة الآن بشكل متّسق مع Popup، حيث يتم استخدام التنسيق الرئيسي لموضع القائمة. في معظم الحالات، يمكنك نقل toggle ليكون تابعًا لـ DropdownMenu والتفاف كل منهما في Box. يمكنك الاطّلاع على النموذج المعدَّل في المستندات للحصول على مزيد من المعلومات حول استخدام واجهة برمجة التطبيقات هذه. (I884fb)
  • تمت إعادة تسمية toIntPx() إلىRoundToPx() (I9b7e4, b/173502290).
  • تم تغيير اسم IntBounds إلى IntRect وتحسين واجهة برمجة التطبيقات. (I1f6ff)
  • تمت إضافة إجراءات الدلالة لتوسيع وتصغيرها. تمت إضافة expand وHalfexpand في ModalBottomSheetState (Ib5064)
  • تم إيقاف Modifier.dragالإيماءاتFilter نهائيًا. يمكنك استخدام Modifier.pointerInput { detectDragGestures (...)} كبديل. بدلاً من ذلك، يمكنك استخدام Modifier.draggable لسحب محور واحد (I0ba93، وb/175294473).
  • أُعيدت تسمية "أصوات محيطة" لتُطابق "أصوات محيطة" -> ChocolateLocal. كان يُطلق على "الأحياء" اسم AmbientFoo، وأصبح اسم GenreLocals هو LocalFoo. (I2d55d)
  • تم نقل الاختيار إلى الأساس. (I7892b)
  • وعلى غرار الطريقة التي أزلنا بها سابقًا عنصر state { 0 } القابل للإنشاء، ونعمل الآن على تعزيز الاستخدام، مثل remember { mutableStateOf(0) }، سنزيل savedInstanceState { 0 } قابل للإنشاء. يجب استخدام rememberSaveable { mutableStateOf(0) } بدلاً من ذلك، وسيتم تلقائيًا حفظها واستعادتها إذا كان النوع المستخدَم في MutableState مخزّنًا في الحزمة. إذا كنت تمرر عنصر حفظ مخصّص في السابق، ستحتاج إلى استخدام حمل زائد جديد من العناصر التي سيتم حفظها من "محفظتك" والتي تحتوي على مَعلمة stateSaver. سيظهر الاستخدام على النحو التالي: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26، b/177338004)
  • تمت إضافة ProgressBarRangeInfo.Indeterminate لوضع علامة على أشرطة تقدّم غير محددة لإمكانية الوصول (I6fe05)
  • تم إيقاف @Composable أهدافك نهائيًا لصالح ثلاثة تعليقات توضيحية أكثر تحديدًا.

    • تغيّر اسم "@ComposableContract(restartable = false)" إلى "@NonRestartableComposable"
    • تغيّر اسم "@ComposableContract(readonly = true)" إلى "@ReadOnlyComposable"
    • تغيّر اسم "@ComposableContract(preventCapture = true)" إلى "@DisallowComposableCalls"
    • تمت إزالة @ComposableContract(tracked = true).
    • (I60a9d)
  • تم إيقاف برامج الخدمات emptyContent() و(@Composable () -> Unit).orEmpty() نهائيًا لأنّها لم تعُد لها أي تأثير أو قيمة إيجابية في الأداء (I0484d).

  • تم تغيير اسم SavedInstanceState() لتذكُّر Saveable() ونقله إلى الحزمة androidx.compose.runtime.saveable. (I1366e، b/177338004)

  • تم نقل Saver وlistSaver() وmapSaver() وautoSaver من androidx.compose.runtime.savedinstancestate إلى androidx.compose.runtime.saveable (I77fe6).

  • تمت إعادة تسمية المعلمات على RounderCornerShape وCutCornerShape وCornerbasedShape من اليسار/اليمين إلى البداية/النهاية لدعم الانعكاس التلقائي للشكل في الاتجاه rtl. تم تقديم AbsoluteRounderCornerShape وAbsoluteCutCornerShape للحالات التي لا تكون فيها ميزة "المزامنة التلقائية" مطلوبة. (I61040، b/152756983)

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

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

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

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

  • تم إيقاف ميزةAnimationValue/Float (القيمة العائمة) نهائيًا الآن. يُرجى استخدام صورة متحركة بدلاً من ذلك. (I71345، b/177457083)

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

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

  • تم نهائيًا إيقاف بكل من AccessibilityFilter و Double TapشيءFilter وlongPressTokenFilter وPressIndicaiton بتطبيقFilter. يمكنك استخدام Modifier.clickable أو Modifier.pointerInput مع وظيفتَي الرمز ExploreTapالإيماءات بدلاً من ذلك. (I6baf9، b/175294473)

  • أضِف مَعلمةLayoutDirection إلى CreateOutline في الشكل. يسمح ذلك بإنشاء أشكال تراعي اتجاه التخطيط. (I57c20، b/152756983)

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

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

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

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

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

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

  • لم يعُد من الممكن تخصيص التموّج المستخدَم في الزرّ Button وFloatingActionButton من خلال توفير مؤشر جديد من خلال AmbientIndision، لم يكن الهدف منه مطلقًا تخصيص هذه المكوّنات، ما يجعل هذه المكوّنات متوافقة مع مكوّنات 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)

  • تم إيقافableate وCompateReference() نهائيًا لصالح currentRecomposeScope و"تذكُّر لبطاقة تحكُّم مستخدمة" على التوالي. (I583a8)

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

  • سيتم استبدال "المدة" و"مدة التشغيل" بالملي ثانية الطويلة، وتزيل هذه الخطوة اعتماد إدخال المؤشر على هاتين الفئتين. (Ia33b2، b/175142755، b/177420019)

  • تمت إزالة{/6}Float.fling التي تقبل FlingConfig. يُرجى استخدام التعليق Animatable.animateDecay بدلاً من ذلك. (I4659b، b/177457083)

  • يمكن إنشاء مواد العرض القابلة للنقر والتبديل والاختيار خارج المقطوعة الموسيقية الآن (I0a130 وb/172938345 وb/175294473).

  • تم تغيير تغيير السرعة إلى واجهة صالحة (Ib14e5)

  • تم إيقاف البيانات القابلة للتمرير في العمود/الصف نهائيًا. يكون استخدام ScrollableColumn أقل فعالية مقارنةً بـ LazyColumn عندما يكون لديك محتوى تمرير كبير لأنه باستخدام LazyColumn الذي يمكننا فقط إنشاء/قياس/رسم عناصر مرئية. لمنع المستخدمين من اتّخاذ إجراءات غير فعّالة، قرّرنا إيقاف ScrollableColumn و ScrollableRow والترويج لاستخدامات LazyColumn وLazyRow بدلاً من ذلك. لا يزال بإمكان المستخدمين تحديد أنّهم لا يحتاجون إلى السلوك الكسول واستخدام مفاتيح التعديل مباشرةً كما يلي: Column(Modifier.vertical scroll(remember scrollState())) (Ib976b, b/170468083)

  • طريقة جديدة المصنعة لمصدر البيانات items(count: Int) لنطاق LazyColumn/LazyRow/LazyVerticalGrid. أصبحت items(items: List) وitemsIndexed(items: List) الآن دالتَين إضافة، لذا يجب استيرادهما يدويًا عند استخدامهما. أحمال إضافية جديدة للإضافات: items(items: Array) وitemsIndexed(Array) (I803fc وb/175562574)

  • تمت إزالة الطرق التجريبية monotonicFrameAnimationClockOf (Ib753f وb/170708374).

  • تم إيقاف طرق الإحداثيات العالمية وتم إنشاء طرق إحداثيات جديدة مستندة إلى النوافذ. (Iee284)

  • تمت إضافة Modifier.toolingGraphicsLayer الذي يضيف أداة تعديل طبقة الرسومات عند تفعيل الفحص. (I315df)

  • تم الآن وضع علامة على عنصر FocusRequester.createrefs باعتباره تجريبيًا لأنه قد يتغير. (I2d898، b/177000821)

  • تمت إعادة تسمية SemanticsPropertyReceiver.hidden لتصبح غير مرئيةToUser وتم وضع علامة @experimentalComposeUiApi على الحساب. تمت إعادة تسمية AccessibilityRangeInfo إلى ProgressBarRangeInfo. وتمت إعادة تسمية StateDescriptionRange إلى promotionBarRangeInfo. تمت إعادة تسمية AccessibilityrollState إلى ScrollAxisRange. تمت إعادة تسمية horizontalAccessibility ScrollState إلى horizontal ScrollAxisRange. وتمت إعادة تسمية verticalAccessibility scrollState ليصبح عموديًا ScrollAxisRange. (Id3148)

  • يمكنك الاستفادة من TestCoroutineDispatcher في الاختبار (I532b6).

  • تم تحديث واجهة برمجة التطبيقات لرسومات المتجه لدعم تحليل التلوين المطبق على جذر الرسومات المتجهة. (Id9d53، b/177210509)

الإصدار 1.0.0-alpha10

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

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

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

  • السرعة المعدلة للحصول على أجزاء المكونات والعمليات الرياضية. (Ib0447)
  • تمت إعادة تسمية @ExperimentalTesting إلى @ExperimentalTestApi لتكون متسقة مع التعليقات التوضيحية التجريبية المشابهة لواجهة برمجة التطبيقات (Ia4502، وb/171464963)
  • تمت إعادة تسمية موضع الإعلان إلى DpOffset وإزالة getمسافة() (Ib2dfd).
  • Ranamed Color.useOrElse() to Color.takeOrElse() (Ifdcf5)
  • إضافة مفتاح تبديل إلى المؤسسة Strings.kt (I4a5b7، b/172366489)
  • تم إيقاف FlowRow وFlowColumn. يُرجى استخدام تنسيق مخصّص بدلاً من ذلك. (I09027)
  • تم إيقاف Modifier.focus() وModifier.focusRequester() نهائيًا. بدلاً من ذلك، استخدِم Modifier.focusModifier() وModifier.focusReference() . (I75a48 وb/175160751 وb/175160532 وb/175077829)
  • تم نقل assetClass إلى وحدة واجهة المستخدم وجعلها داخلية. استخدامات محدّثة لـNativeClass تساوي عمليات تنفيذ لاستخدام "is MyClass" بدلاً من ذلك. (I4f734)

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

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

الإصدار 1.0.0-alpha09

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

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

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

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

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

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

    بناء الجملة الصحيح الآن للقيام بذلك هو من خلال إضافة تعليق توضيحي للخاصية:

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

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

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

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

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

    تم إيقاف واجهات برمجة التطبيقات لأداة إنشاء دالة التدرج لصالح أساليب المصنع على كائن متدرج. (I511fc، b/173066799)

  • تم إيقاف Modifier.focusObserver نهائيًا. استخدِم Modifier.onFocusChanged أو Modifier.onFocusEvent بدلاً من ذلك (I30f17 وb/168511863 وb/168511484)

  • إيقاف LazyColumnFor وLazyRowFor وLazyColumnForIndexed وLazyRowForIndexed. استخدام LazyColumn وLazyRow بدلاً من ذلك (I5b48c)

  • تم نقل Dp.VectorConverter وPosition.VectorConverter وما إلى ذلك إلى رموز متحركة، وإيقاف أدوات VectorCounteters القديمة (If0c4b)

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

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

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

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

  • تغيُّر سلوك قوائم القائمة المنسدلة في المكانة بشكلٍ طفيف وفقًا لمواصفات المواد. (I34c72، b/168594123)

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

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

  • تم نقل ContentDrawScope إلى وحدة رسومات المستخدم لتكون باستخدام DrawScope. (Iee043، b/173832789)

الإصدار 1.0.0-alpha08

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

تم طرح الإصدارات androidx.compose.material:material:1.0.0-alpha08 وandroidx.compose.material:material-icons-core:1.0.0-alpha08 وandroidx.compose.material:material-icons-extended:1.0.0-alpha08. يحتوي الإصدار 1.0.0-alpha08 على هذه عمليات التنفيذ.

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

  • يضبط MaterialTheme الآن الألوان الصحيحة لمقابض التحديد وخلفية التحديد. يمكن للتطبيقات غير المتعددة الأبعاد استخدام AmbientTextSelectionColors يدويًا لتخصيص الألوان المستخدَمة في الاختيار. (I1e6f4 وb/139320372 وb/139320907)
  • تمت إضافة فحص Lint لتسمية مَعلمات lambda القابلة للإنشاء وتحديد موضعها، وذلك للتحقّق من الاتساق مع إرشادات Compose. تم أيضًا نقل بعض واجهات برمجة التطبيقات باستخدام children كاسم لملف lambda اللاحقة إلى content، وفقًا لفحص Lint والإرشادات. (Iec48e)
  • تمت إعادة تسمية VectorAsset إلى ImageVector تم نقل VectorAsset إلى Builder ليصبح من الفئة الداخلية في ImageVector وفقًا لإرشادات مجلس واجهات برمجة التطبيقات. تمت إضافة نوع الاسم المستعار VectorAssetBuilder للربط بـ ImageVector.Builder لـ compat. (Icfdc8)
  • تمت إعادة تسمية ImageAsset والطرق ذات الصلة بها إلى ImageBitmap. (Ia2d99)
  • تم نقل سمات الدلالة الأساسية إلى واجهة المستخدم (I6f05c)
  • تم إيقاف fun RippleIndication() نهائيًا واستبداله بـ rememberRippleIndication() لتحقيق الاتساق مع واجهات برمجة التطبيقات الأخرى. (Id8e2c)
  • تمت إضافة معلمة singeLine إلى BasicTextField وTextField وOutdTextField. يمكنك ضبط هذه المعلمة على "صحيح" لجعل الحقل النصي سطرًا واحدًا قابلاً للتمرير أفقيًا. (I57004، b/168187755)

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

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

الإصدار 1.0.0-alpha07

11 تشرين الثاني (نوفمبر) 2020

تم طرح الإصدارات androidx.compose.material:material:1.0.0-alpha07 وandroidx.compose.material:material-icons-core:1.0.0-alpha07 وandroidx.compose.material:material-icons-extended:1.0.0-alpha07. يحتوي الإصدار 1.0.0-alpha07 على هذه عمليات التنفيذ.

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

  • تم إيقاف ميزة التوكيد نهائيًا واستبدالها بـ AmbientContentAlpha. إنّ AmbientContentAlpha هو تجريد أبسط يمثّل قيمة ألفا للمحتوى المفضّل لجزء من التسلسل الهرمي، تمامًا كما في طريقة تمثيل AmbientContentColor للون المحتوى المفضّل. يستهلك النص والرمز الآن القيمة الحالية من AmbientContentAlpha بشكل تلقائي، ويمكنك إجراء ما يلي يدويًا: color.copy(alpha = AmbientContentAlpha.current) للحصول على التأثير نفسه في المكوّنات. بدلاً من استخدام OfferEmphasis، يمكنك توفير قيمة مباشرةً من خلال AmbientContentAlpha، واستخدام المستويات التلقائية الجديدة في ContentAlpha بدلاً من EmphasisLevels القديمة. (Idf03e، b/159017896)
  • لإضافة androidx.compose.material.AmbientContentColor لاستبدال androidx.compose.foundation.ambientContentColor (I84f7b، b/172067770)
  • لإضافة androidx.compose.material.Text لاستبدال androidx.compose.foundation.Text كمكوّن نصي عالي المستوى وقابل للمظهر. إذا كان مكوّنًا نصيًا أساسيًا لا يستخدم نمط اللون أو النص من المظهر، استخدِم BasicText. (Ie6ae0)
  • تمت إضافة maxLines إلى TextFields (Ib2a5b).
  • تعديل TextFields لقبول TableOptions (Ida7f3)
  • يستخدم "سطح" الآن الارتفاع المطلق (الإجمالي) عند حساب تراكبات الارتفاع، لذا سيستخدم "سطح" متداخل في "سطح" آخر الارتفاع المجمَّع لرسم التراكب. (I7bd2b، b/171031040)

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

  • تم نقلcaptureToBitmap إلى captureToImage. (I86385)
  • تم إيقاف الأساسيات AmbientTextStyle وProvideTextStyle وAmbientContentColor. بدلاً من ذلك، استخدم الإصدارات الجديدة المتوفرة في مكتبة المواد. بالنسبة للتطبيقات غير متعددة المواد، يجب عليك بدلاً من ذلك إنشاء بيئات محددة لنظام التصميم يمكن استخدامها في مكوناتك الخاصة. (I74acc، b/172067770)
  • تم إيقاف Foundation.Text نهائيًا واستبداله بـmaterial.Text. للحصول على واجهة برمجة تطبيقات نصية أساسية غير معرَّفة لا تستهلك قيمًا من مظهر معيّن، يُرجى الانتقال إلى androidx.compose.foundation.BasicText. (If64cb)
  • إعادة تسمية خيارات لوحة المفاتيح باسم ImeOptions (I82f36)
  • تم نقل boardType وImeAction إلى لوحة المفاتيحOptions (I910ce)
  • تم إيقاف BaseTextField نهائيًا. استخدِم BasicTextField بدلاً من ذلك. (I896eb)
  • تمت إزالة التعليق التوضيحي DemoalSubcomposeLayoutApi. يمكن الآن استخدام SubcomposeLayout بدون إضافة @OptIn (I708ad)
  • تم نقل FirstBaseline وLastBaseline إلى حزمة androidx.compose.ui.layout (Ied2e7)
  • تم تحديث واجهة برمجة التطبيقات Icon API لاستخدام Color.Unspecified كلون خفيف محتمل لرسم مادة العرض أو الرسم المقدَّم بدون ColorFilter. وقد حاولنا سابقًا تجاهل التلوين باستخدام Color.Unspecified قد يكون خفيفًا بلون شفاف وينتهي بدون عرض أي شيء على الإطلاق. (I049e2، b/171624632)
  • تمت إعادة تسمية relatedPaddingFrom إلى المعدّة edFrom. تمت إضافة المُعدِّل المجمّعةFromBaseline لتسهيل تحديد المسافات من حدود التنسيق إلى الأسس النصية. (I0440a، b/170633813)
  • تمت إعادة تسمية LaunchedTask إلى LaunchedEffect لتحقيق الاتساق مع واجهتَي برمجة التطبيقات SideEffect وDeposableEffect لا يُسمح باستخدام دالة LaunchedEffect بدون مَعلمات موضوع بهدف التشجيع على أفضل الممارسات. (Ifd3d4)
  • تم نقل MeasurementResult من MeasurementScope. (Ibf96d، b/171184002)
  • تم نقل العديد من الرموز ذات الصلة بالتنسيق من androidx.compose.ui إلى androidx.compose.layout.ui. (I0fa98، b/170475424)

الإصدار 1.0.0-alpha06

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

تم طرح الإصدارات androidx.compose.material:material:1.0.0-alpha06 وandroidx.compose.material:material-icons-core:1.0.0-alpha06 وandroidx.compose.material:material-icons-extended:1.0.0-alpha06. يحتوي الإصدار 1.0.0-alpha06 على هذه عمليات التنفيذ.

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

  • تم نقل androidx.compose.foundation.Icon إلى androidx.compose.material.Icon. يمكنك أيضًا استخدام مكوّن الصورة / Modifier.paint() مع "الرسام" إذا كنت لا ترغب في استخدام مكتبة المواد. (I9f622)
  • تضيف FloatingActionButtonElevation لتمثيل الارتفاع الذي يستخدمه FABs في حالات مختلفة. راجع FloatingActionButtonConstants.defaultElevation() لمعرفة التنفيذ التلقائي (I2d4f5).
  • تضيف واجهة SwitchColors لتمثيل الألوان التي يستخدمها مفتاح التحكّم في حالات مختلفة. راجع SwitchConstants.defaultColors لتخصيص هذه الألوان. (I93805)
  • إضافة واجهتي ButtonEliffs وButtonColors لتمثيل المسقط الرأسي والألوان التي تستخدمها الأزرار في حالات مختلفة. يمكنك الاطّلاع على الدوال التلقائية في ButtonConstants لتخصيص هذه المعلمات. (Ic5b7b)
  • إضافة واجهة RadioButtonColors لتمثيل الألوان التي يستخدمها RadioButton في حالات مختلفة. راجع RadioButtonConstants.defaultColors() لتخصيص الألوان المستخدمة في حالات مختلفة. (I74130)
  • تضيف واجهة CheckboxColors لتمثيل الألوان التي يستخدمها مربّع اختيار في حالات مختلفة. راجع CheckboxConstants.defaultColors() لتخصيص الألوان المستخدمة في حالات مختلفة. (I7dbdb)

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

  • لم تعد مكونات Material تعيين المسقط الرأسي كـ zIndex. مما يعني أنه داخل نفس المجلد الرئيسي، لن يتم رسم العنصر الثانوي ذو حجم الظل الأكبر فوق العنصر الثانوي تلقائيًا. إذا كنت لا تزال بحاجة إلى مثل هذا السلوك، يُرجى ضبط Modifier.zIndex() يدويًا عند الحاجة (I70417, b/170623932)
  • يمكنك إيقاف العمل بأداة VectorPainter لصالح meetVectorPainter للإشارة بشكلٍ أفضل إلى أنّ واجهة برمجة التطبيقات القابلة للإنشاء تعمل داخليًا على "تذكّر" الاحتفاظ بالبيانات على مستوى التركيبات. (Ifda43)
  • تفعيل الانتقالات في ComposeTestRule، ويمكنك إزالة الخيار لتفعيل المؤشر الوامض من ComposeTestRule. (If0de3)
  • تمت إضافة خيار لوحة مفاتيح سطر واحد إلى CoreTextField (I72e6d).
  • تمت إعادة تسمية واجهة برمجة تطبيقات Radius API لتصبح 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.squickable حدًا أدنى يبلغ 56.dp للحالات في الوقت الحالي (Iab825 وb/168610267).
  • تم نقل جميع حالات السقالة التي تم وضع علامة @StablesEnabled عليها في ScaffoldState إلى Scaffold نفسه. (I36645، b/168297016)
  • لإزالة النوع القابل للقيم الفارغة من مَعلمات Scaffold lambda، يمكنك استخدام الدالة uniqueContent() لتمثيل عدم وجود محتوى لمَعلمة معيّنة. (I2b318، b/157633857، b/158551084)
  • إيقاف واجهات برمجة التطبيقات contentColor() وcurrentTextStyle()، واستبدالهما ببيئة AmbientContentColor وAmbientTextStyle على التوالي يمكنك الوصول إلى القيمة الحالية باستخدام .current في ميزة "وضع الاستراحة"، كما هي الحال مع أي إعدادات أخرى في البيئة المحيطة. تم إجراء هذا التغيير من أجل الاتساق وتجنب وجود طرق متعددة لإنجاز نفس الشيء. بالإضافة إلى ذلك، يعيد تسمية بعض الخصائص المحيطة لوصف الغرض منها بشكل أفضل على النحو التالي:

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

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

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

الإصدار 1.0.0-alpha04

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

تم طرح الإصدارات androidx.compose.material:material:1.0.0-alpha04 وandroidx.compose.material:material-icons-core:1.0.0-alpha04 وandroidx.compose.material:material-icons-extended:1.0.0-alpha04. يحتوي الإصدار 1.0.0-alpha04 على عمليات التنفيذ هذه.

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

  • تعرض معلَمات InteractionState في مكوّنات Material ذات الحالة، للسماح برفع الحالة وقراءة الحالة أو التحكّم فيها. (Iaca5f، وb/168025711، وb/167164434)
  • يغيّر مَعلمات *color في RadioButton وtriStateCheckbox للسماح بتخصيص الألوان المستخدمة في كل حالة بالكامل، بالإضافة إلى تغيير كيفية تحرّك الألوان بين الحالات إذا لزم الأمر. يمكنك الاطّلاع على وظيفتَي ألوان animateDefault* الجديدة في مربع الاختيار Contastants وRadioButtonConstants للحصول على مزيد من المعلومات. (I1c532)
  • تمت إعادة تسمية BackdropState لتذكر BackdropScaffoldState وإضافة معلمة إضافية لساعة الرسوم المتحركة. تمت إعادة تسمية المعلمة BackdropScaffoldState of BackdropScaffold لتصبح scaffoldState فقط. تمت إعادة تسمية BackdropConstants إلى BackdropScaffoldConstants. (Ib644d)
  • تمت إضافة مكوِّن BottomSheetScaffold التجريبي. (Ie02f0، b/148996320)
  • تمت إضافة مكوِّن ModalBottomSheetLayout التجريبي. (Ic209e، b/148996320)
  • لإعادة تسمية ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation إلى defaultElevation، ويتم الآن عرض قيمة Dp بدلاً من{/6}Value. (I5f3ed)

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

  • تم تحديث العديد من واجهات برمجة تطبيقات الرسومات
    • تم تحديث واجهات برمجة التطبيقات لتحويل المقياس والتدوير لاستخدام معلَمة إزاحة واحدة لتمثيل الإحداثيات المحورية بدلاً من المعلَمات العائمة المنفصلة لإحداثيات س/ص في DrawScope وDrawTransform
    • تمت إزالة طريقتي Rect.expandToInclude وRect.join
    • تم تحديث وثائق النطاق الجغرافي لوصف الشكل البيضاوي بالإضافة إلى الشكل البيضاوي
    • تمت إضافة مستندات للإشارة إلى المنشئ العام لفئة نصف القطر المضمّنة أنّه لا يجب استدعاءه مباشرةً، ولكن يجب إنشاء مثيل لكائنات نصف القطر من خلال دوال إنشاء الدوال
    • تمت إزالة واجهات برمجة تطبيقات RoundRect لإنشاء طلب، topRight وbottomCenter، وما إلى ذلك.
    • تم إيقاف Rect.shift لصالح Rect.translate
    • تمت إزالة واجهتَي برمجة تطبيقات RoundRect.grow وRect.shrink
    • تمت إعادة تسمية RoundRect.outerRect إلى Rect.boundingRect.
    • تمت إزالة طريقتي RoundRect.mediumRect/tallMiddleRect/wideMiddleRect وRect.isStadium
    • تمت إعادة تسمية RoundRect.longestSide إلى RoundRect.maxDimension.
    • تمت إعادة تسمية RoundRect.shortestSide إلى RoundRect.minDimension.
    • تم تغيير RoundRect.center إلى خاصية بدلاً من دالة.
    • تم تحديث الدالة الإنشائية RoundRect لاستهلاك خصائص النطاق الجغرافي بدلاً من المعلمات الفردية لقيم نصف القطر x/y
    • تمت إزالة واجهات برمجة التطبيقات ذات الحجم التي افترضت أنّها مستطيلة مصدرها 0,0
    • تمت إضافة واجهة برمجة تطبيقات مدمرة إلى Radius
    • تم نقل دوال إضافة RoundRect متنوعة لتكون خصائص بدلاً من ذلك
    • (I8f5c7، b/168762961)
  • تم إيقاف Foundation.Box نهائيًا. يُرجى استخدام Foundation.layout.Box بدلاً من ذلك. (Ie5950، b/167680279)
  • تمت إعادة تسمية الحزمة إلى Box. وسيتم إيقاف Box الحالي نهائيًا لصالح Box الجديد في compose.foundation.layout. يتمثّل سلوك Box الجديد في تكديس العناصر الثانوية واحدًا فوق الآخر عندما يكون له عدة عناصر فرعية، وهذا يختلف عن المربع السابق، الذي كان يعمل بشكل مشابه للعمود. (I94893، b/167680279)
  • تم إيقاف معلمات تزيين الصندوق نهائيًا. إذا أردت إضافة زخارف/مساحة متروكة على العلبة، يمكنك استخدام Modifiers بدلاً من ذلك (Modifier.background, Modifier.للحدّ، أو Modifier.حشو) (Ibae92، b/167680279)
  • تم تحديث العديد من واجهات برمجة تطبيقات الرسومات
    • تم تعديل واجهات برمجة تطبيقات DrawScope باستخدام طرق التحويل على نطاق للإشارة إلى أنه يتم تطبيق التحويل فقط داخل رد الاتصال وتتم إزالته بعد استدعاء الاستدعاء
    • تم تحديث وثائق postPath للإشارة إلى المسار بدلاً من المستطيل المستدير
    • تم إصلاح تباعد في الوثائق للمعلمة الصحيحة في trackPath
    • تمت إعادة تسمية DrawScope.drawCanvas إلى drawIntoCanvas وإزالة معلمة الحجم
    • تمت إعادة تسمية معلمات dx/dy في طريقة الإدخال إلى أفقي ورأسي
    • إضافة حمل زائد داخلي يوفر نفس القيمة الداخلية لجميع الحدود الأربعة
    • تمت إزالة الوثائق المتعلقة بطريقة الإدراج التي تشير إلى أنه سيتم تطبيق الإدخال على الجوانب الأربعة
    • تم تعديل المستندات الخاصة بصف Rect.
    • تم تحديث التعليقات على معلمات Rect لمطابقة نمط kdoc
    • تمت إزالة Rect.join وRect.expandToInclude
    • إنشاء حمل زائد لـ Rect.translate(offset) وإيقاف Rect.shift نهائيًا
    • (If086a وb/167737376)
  • لقد منعنا عمليات الاستيراد الثابتة لمحتويات نطاقات التنسيق (مثل deleteWithSiblings في RowScope). يجب استخدام بديل النطاق الصريح: with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }. (I216be، b/166760797)

الإصدار 1.0.0-alpha03

16 أيلول (سبتمبر) 2020

تم طرح الإصدارات androidx.compose.material:material:1.0.0-alpha03 وandroidx.compose.material:material-icons-core:1.0.0-alpha03 وandroidx.compose.material:material-icons-extended:1.0.0-alpha03. يحتوي الإصدار 1.0.0-alpha03 على هذه عمليات التنفيذ.

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

  • لإعادة تسمية معلَمة onSelect في BottomNavigationItem إلى onClick (I91925، b/161809324)
  • تضيف معلمة InteractionState إلى Bottom NavigationItem وTab، ما يسمح برفع هذه الحالة وضبط كيفية ظهور المكوِّن في حالات مختلفة. (Ia3e9e، b/168025711)
  • يزيل المَعلمتَين disabledBackgroundColor وdisabledContentColor من الأزرار. وبدلاً من ذلك، يجب عليك استخدام دوال اللون الافتراضية الجديدة داخل ButtonConstants. إذا كنت تضبط contentColor / backgroundColor بشكل صريح، عليك بدلاً من ذلك استخدام هذه الدوال التلقائية وتخصيص بعض أو كلّ المَعلمات لتجنُّب استبدال اللون لكلّ من حالتَي التفعيل أو الإيقاف. (If9b52)
  • لم يعد لون خلفية Textfield ضمنيًا يطبق ألفا الشفافية بعد الآن. بدلاً من ذلك، سيتم تطبيق أي لون يتم توفيره من خلال مَعلمة backgroundColor مباشرةً. (Iecee9، b/167951441)
  • تمت إعادة تسمية InnerPadding إلى PaddingValues. (I195f1، b/167389171)
  • تم استبدال المعلمتين resistanceFactorAtMin وresistanceFactorAtMax في Modifier.swipeable بمعلمة مقاومة واحدة. تمت إضافة طريقة defaultResistanceConfig جديدة في SwipeableConstants. (I54238)
  • يضيف دعم ارتفاع حالة متحرك للزر وFloatingActionButton. يتحرك المسقط الرأسي الآن بين الحالات الافتراضية والضغطة. لتخصيص الارتفاع بين الحالات، يُرجى استخدام ButtonConstants.defaultAnimatedElevation() وFloatingActionButtonConstants.defaultAnimatedElevation() بدلاً من ضبط قيمة Dp ثابتة في جميع الحالات. (I37925)
  • أصبح التصنيف مَعلمة اختيارية داخل TextField وOutdTextField (I267f6 وb/162234081).

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

  • تم إيقاف وظائف الاختبار العامة مثل onNode أو waitForIdle نهائيًا. يُرجى النقل إلى نظيراتها الجديدة المحددة في ComposeTestRule (I7f45a).
  • تم إيقاف DpConstraints وواجهات برمجة التطبيقات التي تستخدمها نهائيًا. (I90cdb، b/167389835)
  • تمت إعادة تسمية المعلمتين minwidth وmaxwidth of widthIn إلى الحد الأدنى والحد الأقصى. وبالمثل بالنسبة إلى المعاملات المفضلَّة، وهي السمة الطولية، والارتفاع الأفضل. (I0e5e1، وb/167389544)
  • إزالة إجراءات دلالات التمرير للأمام/للخلف. تمت إضافة خطوات في AccessibilityRangeInfo. (Ia47b0)
  • وتمت إعادة تسمية استخدامات الجاذبية باستمرار للمحاذاة أو المحاذاة في واجهات برمجة التطبيقات للتصميم. (I2421a، b/164077038)
  • تمت إضافة onNode وغيرها من الطرق العامة إلى ComposeTestRule إذ سيتم إيقاف الطرق العامة الحالية. (Ieae36)
  • تم نقل createAndroidComposeRule وAndroidInputDispatcher من androidx.ui.test.android إلى androidx.ui.test (Idef08 وb/164060572)

الإصدار 1.0.0-alpha02

2 أيلول (سبتمبر) 2020

تم طرح الإصدارات androidx.compose.material:material:1.0.0-alpha02 وandroidx.compose.material:material-icons-core:1.0.0-alpha02 وandroidx.compose.material:material-icons-extended:1.0.0-alpha02. يحتوي الإصدار 1.0.0-alpha02 على عمليات التنفيذ هذه.

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

  • تمت إضافة مكوِّن BackdropScaffold التجريبي. (Iad908)

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

  • تم استبدال المصفوفة 4 بالمصفوفة. تمت إزالة جميع الأجزاء الأخرى من حزمة ectmath. (Ibd665، b/160140398)

الإصدار 1.0.0-alpha01

26 آب (أغسطس) 2020

تم طرح الإصدارات androidx.compose.material:material:1.0.0-alpha01 وandroidx.compose.material:material-icons-core:1.0.0-alpha01 وandroidx.compose.material:material-icons-extended:1.0.0-alpha01. يحتوي الإصدار 1.0.0-alpha01 على عمليات التنفيذ هذه.

مشكلة معروفة

= لا يمكن إزالة الحرف الأول من مادة TextField باستخدام مسافة للخلف (b/165956313)

الإصدار 0.1.0-dev

الإصدار 0.1.0-dev17

19 آب (أغسطس) 2020

تم طرح الإصدارات androidx.compose.material:material:0.1.0-dev17 وandroidx.compose.material:material-icons-core:0.1.0-dev17 وandroidx.compose.material:material-icons-extended:0.1.0-dev17. يحتوي الإصدار 0.1.0-dev17 على هذه العمليات.

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

  • تمت إزالة RadioGroup وRadioGroupItems اللذان تم إيقافهما سابقًا في السابق. استخدِم الصفّ وRadioBotton بدلاً منه (I381b7 وb/163806637).
  • تمت إزالة استدعاءات onFocusChanged من TextField. استخدِم Modifier.focusObserver بدلاً من ذلك. (I51089، b/161297615)
  • تم إيقاف Modifier.DrawBorder نهائيًا. يمكنك استخدام Modifier.party بدلاً من ذلك. تم استبدال فئة بيانات الحدود بـ BorderStroke (I4257d، وb/158160576).
  • تمت إعادة تسمية بعض الخصائص في ScrollableState: scrollTarget -> targetValue، مأكولات سريعة Progress -> مستوى التقدم، تمرير الاتجاه -> الاتجاه. تمت إضافة دالة التذكرSwipeableState لإنشاء SprintableStates. (I2fc9c، b/163129614، b/163132293)
  • تمّت إضافة دعم Snackbar مع تحديد الموضع والإضافة إلى قائمة الانتظار بشكل صحيح. يمكنك الوصول إليه من خلال دالة التعليق SnackbarHostState.showSnackbar. بالإضافة إلى ذلك:
    • تمت إضافة مكوّنات SnackbarHost. وتستضيف أشرطة إعلامية حسب الحالة، وهي مسؤولة عن الانتقال بين أشرطة الوجبات الخفيفة.
    • تمت إضافة SnackbarHostState للسماح بالتحكم في أشرطة الوجبات الخفيفة ومضيفي الأشرطة الخفيفة وفصلها عن ScaffoldState. يمكنك الوصول إلى هذه الحالة عبر scaffoldState.snackbarHostState أيضًا.
    • تمت إضافة الحمل الزائد على Snackbar لإتاحة الواجهة المشتركة بين signbarHostState وتجارب تناول الطعام الخفيفة نفسها. (I79aaa)
  • إضافة مَعلمة مفعَّلة إلى IconButton، وإعادة ترتيب المَعلمات في IconToggleButton (I0a941 وb/161809385 وb/161807956)
  • تمت إزالة إصدار ListItem مع واجهة برمجة تطبيقات مستندة إلى السلسلة. استخدِم إصدار الخانة بدلاً من ذلك. (Ib8f57، b/161804681)
  • تمت إزالة مكوّن filledTextField المتوقّف نهائيًا. يُرجى استخدام حقل النص بدلاً من ذلك للحصول على تنفيذ التصميم المتعدد الأبعاد لحقل النص المعبأ. (I5e889)
  • تستخدم أداة التنبيه StartDialog الآن FlowRow للأزرار (I00ec1 وb/161809319 وb/143682374).
  • تمت إضافة معلمات في Modifier.squickable لتغيير مقدار المقاومة عند التمرير السريع للحدود. تمت إزالة [min/max]مَعلمات القيمة. (I93d98)
  • تمت إضافة مَعلمة backgroundColor إلى LinearProgressIndicator وإزالة المساحة المتروكة الداخلية من CircularProgressIndicator. تمت إضافة ProgressIndicatorConstants.DefaultProgressAnimationSpec الجديد الذي يمكن استخدامه كعنصر AnimationSpec التلقائي عند تحريك القيم (If38b5 وb/161809914 وb/161804677)
  • تمت إضافة المَعلمة الاختيارية velocityThreshold إلى Modifier.squickable. (I698ba)
  • أسفلBarSize وfabSize وغير ذلك لم يعد متاحًا في ScaffoldState. استخدِم Modifier.onPosition بدلاً من ذلك على المكوِّن الذي تريد معرفة حجمه. وتمّت إضافة contentColor وModifier pamateres إلى Scaffold (Ic6f7b، وb/161811485، وb/157174382)
  • إعادة تسمية بعض المَعلمات في علامة التبويب وإعادة ترتيبها (Ia2d12 وb/161807532)
  • يقسم TabRow إلى TabRow و ScrollableTabRow، مع إزالة قابل للتمرير من TabRow. وتعرض أيضًا EdgePadding في ScrollableTabRow، ما يسمح بالتحكم في المساحة الخالية قبل علامات التبويب أو بعدها. (I583e8، b/161809544)
  • تمت إزالة الكائن TabRow، واستبداله بـ TabConstants. تم نقل TabRow.TabPosition ليصبح مستوى أعلى (TabPosition)، وتمت إعادة تسمية IndexContainer إلى indicator. راجِع النماذج والوثائق للحصول على معلومات تفصيلية حول كيفية استخدام واجهة برمجة التطبيقات المعدَّلة والإعدادات التلقائية. (I54d45، b/161809544)
  • تم تعديل معلَمة الحدود في Modifier.squickable، وأصبحت الآن تأخذ حالتين (من النوع T) وتعرض الحدّ الأدنى بينهما على شكل ThresholdConfig. تمت إضافة مَعلمة SellThresholds إلى SwipeToDon، وهي lambda (SellDirection) -> ThresholdConfig. (Ie1080)
  • يحتوي شريط التمرير على ألوان أكثر للتخصيص الدقيق (I73e64 وb/161810475)
  • تمت إعادة تسمية مَعلمة اللون في البطاقة إلى backgroundColor (I01fc1 وb/161809546).
  • يحتوي Snackbar الآن على ألوان محتوى وخلفية قابلة للتخصيص (I238f2 وb/161804381).
  • تمت إضافة مَعلمات تخصيص، reportColor وColorColor وcontentColor وscrimColor إلى الأدراج (I23655، وb/161804378).
  • تم الآن إيقاف عنصر state { ... } القابل للإنشاء نهائيًا لصالح الاستدعاءات الفاضحة إلى remember { mutableStateOf(...) } للإيضاح. ويقلل هذا الإجراء من إجمالي مساحة عرض واجهة برمجة التطبيقات وعدد المفاهيم المتعلّقة بإدارة الحالة، ويطابق نمط by mutableStateOf() لتفويض السمات في الفئة. (Ia5727)
  • تمت إعادة تسمية مَعلمة المساحة المتروكة للزر إلى contentPadding (Id252e وb/161809394).
  • أضف عنصرًا تجريبيًا مكونًا من مكونات المواد والتمرير. (I129e5)

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

  • تمّت إزالة "onChildPositioned" و"OnChildPositionedModifier". وبدلاً من ذلك، يجب أن يستخدم المطوّرون onPositioned وOnPositionedModifier في التنسيق الفرعي (I4522e، b/162109766)
  • تمت إضافة integrationPolicy lambda إلى SemanticsPropertyKey. ويمكن استخدامها لتحديد سياسة مخصّصة لدمج دلالات integrationAllDescendants. والسياسة التلقائية هي استخدام القيمة الرئيسية إذا كانت متوفّرة، وإلا يتم استخدام القيمة الثانوية. (Iaf6c4، b/161979921)
  • أصبحت IntSize الآن فئة مضمّنة (I2bf42).
  • تم تغيير اسم "PlacementScope.placeAbsolute()" إلى "PlacementScope.place()" وتغيير اسم "PlacementScope.place()" السابق إلى "PlacementScope.placeRelative()". ونتيجةً لذلك، لن تحاكي طريقة PlacementScope.place() الموضع تلقائيًا في السياقات من اليمين إلى اليسار بعد الآن. ويمكنك استخدام PlacementScope.placeRelative() بدلاً من ذلك إذا كنت تريد ذلك. (I873ac، b/162916675)
  • PxBounds متوقفة لصالح 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 إلى اسمَي lightColors وDarkColors على التوالي. (I9e976، b/161812111)
  • لإعادة تسمية مَعلمة text في BottomرفّItem إلى label، onSelected إلى onSelect، activeColor إلى selectedContentColor، inactiveColor إلى unselectedContentColor وتعديل ترتيب المَعلمات ليتطابق مع الإرشادات. (Icb605 وb/161809324)
  • تم تغيير Modifier.stateDraggable بالكامل وتمت إعادة تسميته إلى Modifier.squickable. تم طرح فئة جديدة لـ ShortableState، وأعيدت هيكلة DrawerState وBottomDrawerState لاكتسابها. [Modal/Bottom]لم يعد DrawerLayout يستخدم معلَمة onStateChange. (I72332، b/148023068)
  • حزمة Foundation.shape.corner مسطّحة إلى مؤسسة enterprise.share (I46491، وb/161887429)
  • تمت إضافة تعليق تجريبي MaterialApi. تم وضع علامة "تجربة في مظهر RippleTheme" (Ic5fa0، وb/161784800)
  • تمت إعادة تسمية Material filledTextField ليصبح TextField، كما تمت إعادة تسمية حقل TextField الأساسي إلى BaseTextField لتسهيل العثور على واجهة برمجة التطبيقات المطلوبة واستخدامها (Ia6242، وb/155482676).

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

  • تم إيقاف OnChildPositioned نهائيًا. استخدم OnPositioned على العنصر الثانوي بدلاً من ذلك. (I87f95، b/162109766)
  • معالجة عمليات الإصلاح الواسعة النطاق لواجهة برمجة التطبيقات (I077bc)
    1. إزالة واجهة OffsetBase غير المستخدمة
    2. محاذاة فئات الإزاحة وIntOffset للحصول على سطح متناسق لواجهة برمجة التطبيقات
    3. أعد تسمية IntOffset.Origin إلى IntOffset.Zero لتتوافق مع واجهة برمجة التطبيقات Offset API
    4. تم نقل طريقة "NativeCanvas" من واجهة "لوحة الرسم" لمساعدة المستهلكين في إنشاء نسخهم الخاصة من "لوحة الرسم"
    5. تم إنشاء فئة nullCanvas لإعادة ضبط الترميز DrawScope ليكون معلَمة غير فارغة بدلاً من Latinit وضمان عدم قابلية القيم الفارغة للحقل
    6. إعادة تسمية تعدادات ClipOp لتصبح Pascal Case
    7. تمت إعادة تسمية تعدادات filterQuality على شكل Pascal Case
    8. تمت إعادة تسمية تعدادات Stroke Join لتصبح Pascal Case
    9. تمت إعادة تسمية تعدادات PointMode إلى Pascal Case
    10. تمت إعادة تسمية تعداد PaintingStyle ليصبح Pascal Case.
    11. تمت إعادة تسمية تعدادات PathFillType لتصبح Pascal Case
    12. تمت إعادة تسمية تعدادات StrokeCap ليصبح Pascal Case
    13. تم تحديث تنفيذ Drawcache بحيث لم يعد يستخدم معلمات Lainit.
    14. تم تحديث DrawScope إلى عدم استخدام التفويض الكسول للمعلمتين الداخليتين fillPaint وtrainPaint.
    15. تعديل الصورة القابلة للإنشاء لتجنُّب استخدام Box مع خفض النفقات العامة
    16. تم تعديل فئة Outline لتتضمّن تعليقات @Immutable توضيحية.
    17. تم تحديث PathNode لتحتوي على تعليقات @Immutable التوضيحية لكل تعليمات مسار
    18. تحديث التركيبة الفرعية للمتجهات لإزالة الفحوصات الشرطية المتكررة للمساواة حيث تعالجها ميزة "إنشاء" بالفعل
    19. طرق الدالة الإنشائية المصاحبة في Rect التي تم إيقافها لصالح منصات إنشاء الدوال
    20. تم تحديث فئات الفرشاة ودوال إنشاء الدوال باستخدام واجهات برمجة التطبيقات @Immutable و @Stable
    21. تم تحديث تعداد VertexMode ليصبح PascalCase
    22. تم تحديث طريقة DrawScope selectPaint لاستبدال معاملات الحد الخارجي بشكل مشروط على الطلاء إذا تم تغييرها
    23. تم تعديل الحجم لإضافة واجهة برمجة التطبيقات للتدمير، يُرجى إعادة تسمية UnspecifiedSize إلى Unspecified and تمت إزالة الطرق غير المستخدَمة.
  • نقل مربع الحوار إلى واجهة المستخدم (I47fa6)
  • تمت إزالة SemanticsNodeInteraction.performPartialGesture. استخدِم SemanticsNodeInteraction.performGesture بدلاً من ذلك. (Id9b62)
  • تمت إعادة تسمية "SemanticsNodeInteraction.getBoundsInRoot()" إلى SemanticsNodeInteraction.getUnclippedBoundsInRoot() (Icafdf، وb/161336532).
  • تم تحديث واجهات برمجة التطبيقات التي تتيح الدعم من اليمين إلى اليسار. تمت إضافة LayoutDirectionAmbient الذي يمكن استخدامه لقراءة اتجاه التنسيق وتغييره. تمت إزالة Modifier.rtl وModifier.ltr. (I080b3)
  • تمت إعادة تسمية Modifier.deternimateProgress إلى Modifier.progressSemantics (I9c0b4).
  • تعمل هذه السياسة على تعديل رموز المواقع الإلكترونية الممتدة باستخدام أحدث الرموز التي تمت إضافتها إلى Material.io/icons (I4b1d3).
  • اطلب تحديد النوع T بشكل صريح من أجل transferDefinition. (I1aded)
  • تم إيقاف Modifier.plus نهائيًا، لذا يُرجى استخدام Modifier.ثم بدلاً من ذلك. تحتوي كلمة "ثم" على إشارة أقوى للطلب، بينما تمنع أيضًا كتابة Modifier.padding().background() + anotherModifier، ما يؤدي إلى فصل السلسلة ويصعب قراءته (Iedd58، b/161529964)
  • تمت إعادة تسمية AndroidComposeTestRule (القاعدة التالية) إلى AndroidComposeRule. (I70aaf)
  • أضف isFocused() وisNotFocused() SemanticsMatcher. (I0b760)
  • تمت إزالة السمة BaseGestureScope.globalBounds، لأنّه من المفترض عدم استخدامها من الاختبارات. استخدم الإحداثيات المحلية للعقدة التي تتفاعل معها بدلاً من ذلك. (Ie9b08)
  • تم تثبيت موضع النافذة المنبثقة على شاشات العرض المقطوعة. (Idd7dd)
  • تمت إعادة تسمية Modifier. drawBackground إلى Modifier.background (I13677).

الإصدار 0.1.0-dev15

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

تم طرح الإصدارات androidx.compose.material:material:0.1.0-dev15 وandroidx.compose.material:material-icons-core:0.1.0-dev15 وandroidx.compose.material:material-icons-extended:0.1.0-dev15. يحتوي الإصدار 0.1.0-dev15 على هذه العمليات.

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

  • لاستخدام إصدار 0.1.0-dev15 من Compose، يجب تعديل اعتمادياتك وفقًا لمقتطفات الرمز الجديدة الواردة أعلاه في توضيح التبعيات.

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

  • تم الآن إيقاف التعليق التوضيحي @Model نهائيًا. استخدِم State وmutableStateOf كبدائل. وقد تم التوصل إلى قرار الإيقاف هذا بعد الكثير من المناقشات المتأنية.

    السبب

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

    • تقليل مساحة عرض واجهة برمجة التطبيقات والمفاهيم التي نحتاج إلى تدريسها
    • تتوافق بشكل أكبر مع مجموعات الأدوات الأخرى المشابهة (Swift UI وReact وFlutter).
    • قرار يمكن التراجع عنه. ويمكننا استعادة @Model في أي وقت لاحقًا.
    • تتخلص من استخدام الأحرف الكبيرة والإجابة عن الأسئلة التي يصعب الإجابة عنها بشأن إعداد "@Model" لأنّنا نحتاج إلى التعامل معها.
    • @Model فئة بيانات ويساوي ورمز التجزئة وما إلى ذلك
    • كيف يمكنني الاحتفاظ بخصوصية بعض السمات التي تم "تتبّعها" والبعض الآخر لم تتم ملاحظته؟
    • كيف يمكنني تحديد المساواة الهيكلية مقابل المساواة المرجعية لاستخدامها في الملاحظة؟
    • لتقليل "السحر" في النظام. التقليل من احتمالية افتراض شخص أن النظام أذكى مما هو عليه (أي معرفة كيفية الاختلاف في القائمة)
    • تجعل دقة الملاحظة أكثر سهولة.
    • تحسين قابلية إعادة التصنيع من المتغير -> في الفئة
    • إمكانية إجراء تحسينات يدوية مخصّصة للدولة
    • يتماشى بشكل أوثق مع بقية المنظومة المتكاملة ويقلل من الغموض تجاه الأشخاص غير القابل للتغيير أو "نتبنى الحالة القابلة للتغير"

    ملاحظات عن النقل

    تم إدخال تغييرات بسيطة إلى حدّ ما على جميع الاستخدامات الحالية لتطبيق "@Model" من خلال إحدى الطريقتَين. يحتوي المثال أدناه على فئة @Model تحتوي على سمتَين فقط، ويتم استخدامها في سمة قابلة للإنشاء.

    @Model class Position(
     var x: Int,
     var y: Int
    )
    
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
        p.x = it }
        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,
        p = p.copy(x=it) }
        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,
        p.x = it }
        p.y = it }
     )
    }
    

    (I409e8 وb/152050010 وb/146362815 وb/146342522 وb/143413369 وb/135715219 وb/143263)Ⴏ

  • معاودة الاتصال onFocusChange في الحقول النصية التي تمت إعادة تسميتها إلى onFocusChanged (Ida4a1)

  • تمت إضافة معلمة الحدود في StateDraggable لتحديد الحدود بين علامات الارتساء. تم استخدامه لضبط حدّ أقصى يبلغ 56 بكسل مستقل الكثافة في الدرج السفلي. بالإضافة إلى ذلك، يستخدم BottomDrawerLayout الآن تعداد BottomDrawerState منفصلاً. (I533fa)

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

  • تمت إزالة الإلغاء المتوقّف نهائيًا للمكوّن الإضافي filledTextField القابل للإنشاء (I7f8f8).

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

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

  • تم إيقاف RadioGroup وRadioGroupItem نهائيًا. استخدِم Box مع Modifier.selectable و"الصف" و"العمود" لتحديد مجموعة مناسبة من خيارات زر الاختيار حسب تصميمك (I7f5cf وb/149528535).

  • تمت إضافة حقل نصي محدد للمواد (I1a518)

  • تم إيقاف androidx.ui.foundation.TextFieldValue وandroidx.ui.input.EditorValue نهائيًا. تم أيضًا إيقاف العناصر القابلة للإنشاء TextField وFilledTextField وCoreTextField التي تستخدم هذا النوع. يُرجى استخدام androidx.ui.input.TextFieldValue بدلاً من ذلك (I4066d، وb/155211005)

  • لا يحتوي TabRow.TabPosition على موضع في Dp، وليس في IntPx (I34a07، b/158577776).

  • تم استبدال استخدام IntPx بـ IntPxPosition. وتم استبدال IntPxPosition بـ IntOffset. تم استبدال IntPxSize بـ IntSize. (Ib7b44)

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

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

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

  • تمت إضافة مكون Dropdown Menu في مادة ui-material، وهو تنفيذ لقائمة التصميم المتعدد الأبعاد. (I9bb3d)

  • السماح بإظهار/إخفاء لوحة مفاتيح البرنامج يدويًا باستخدام SoftwareboardController (Ifb9d6 وb/155427736)

  • تمت إضافة Modifier.indiction إلى حزمة المؤسسة. يمكنك استخدامه لإظهار الضغط/السحب/إشارة أخرى على العناصر المخصّصة القابلة للتفاعل (I8425f وb/155287131)

  • عمليات تنفيذ CanvasScope موحّدة، لذلك لا يتوفر الآن سوى DrawScope وContentDrawScope تمت إعادة تسمية CanvasScope إلى DrawScope. تم تحديث DrawScope لتنفيذ واجهة الكثافة وتوفير الفئة الفرعية LayoutDirection الفرعية لـ DrawScope المحذوفة في ContentDrawScope. تم تحديث تطبيق Painter وPainterModifier لعدم الإبقاء على خاصيّة RTL بنفسهما، لأنّ DrawScope يوفّر ذلك بالفعل بدون تقديمه يدويًا (I1798e)

  • إعادة تسمية Emphasis.confirm() إلى Emphasis.applyEmphasis() (Iceebe)

  • الآن، تتبع الأزرار غير المفعّلة مواصفات التصميم المتعدد الأبعاد (I47dcb وb/155076924) بشكل مرئي.

  • يحصل تطبيق filledTextField على إجراءات فورية وإمكانية التحويل المرئي ونوع لوحة المفاتيح (I1f9cf وb/155075201).

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

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

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

  • تم تغيير اللون التلقائي لكل من FAB وExtended FAB إلى MaterialTheme.colors.secondary. (I3b9b9، b/154118816)

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

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

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

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

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

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

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

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

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

  • الأطفال (Ia6d19)

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

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

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

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

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

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

  • تم نقل السطح والبطاقة من androidx.ui.material.surface إلى androidx.ui.material (I88a6d وb/150863888).

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

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

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

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

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

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

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

  • إعادة تسمية مفتاح التعديل Border إلى DrawBorder (I8ffcc)

  • لم تعد LayoutCoordinates لها خاصية موضع. لا يكون لخاصية الموضع معنى عند التفكير في LayoutModifiers أو التدوير أو التحجيم. بدلاً من ذلك، يجب على المطورين استخدام parentCoordinates وchildToLocal() لحساب التحويل من LayoutCoordinate إلى آخر.

    تستخدم LayoutCoordinates IntPxSize لخاصية الحجم بدلاً من PxSize. تستخدم التخطيطات أحجام وحدات بكسل صحيحة للتخطيطات، لذلك يجب أن تستخدم جميع أحجام التخطيط الأعداد الصحيحة وليس قيم النقطة العائمة. (I9367b)

  • تغييرات قد تؤدي إلى تغيُّر واجهة برمجة تطبيقات البيئة المحيطة يمكنك الاطّلاع على مستندات "Ambient<T>" والسجلّ للحصول على التفاصيل (I4c7ee، وb/143769776).

  • تمت إضافة مكوّن مادة السقالة. أدوات Scaffold (I7731b)

  • تم استبدال DrawBorder لصالح معدِّل الحدود (Id335a)

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

  • تم إيقاف FocusModifier لصالح Modifier.focus، وModifier.focusRequester، وModifier.focusObserver. تم إيقاف FocusState وFocusDetailsState لصالح FocusState2 (I46919، b/160822875، b/160922136)
  • تم إيقاف Vertical Scroller وHoriziontalScroller نهائيًا. يمكنك استخدام ScrollableColumn وScrollableRow للحصول على تجربة مدمجة مع سلوك ومعلَمات العمود/الصف، أو Modifier.verticalportrait وModifier.horizontal scroll على العنصر الخاص بك. وبالمثل، تم إيقاف ScrollerPosition نهائيًا لصالح ScrollState' (I400ce وb/157225838 وb/149460415 وb/154105299).
  • تمت إعادة صياغة واجهتَي برمجة التطبيقات Modifier.draggable وModifier.scrollable. تمت إزالة DragDirection لصالح Orientation. تم تبسيط الحالة المطلوبة للتمرير السريع. تمت إعادة تسمية scrollableState إلى ScrollableController (Iab63c وb/149460415).
  • تمت إعادة تسمية runOnIdleCompose إلى runOnIdle (I83607).
  • تستخدم الآن خصائص الدلالة الأحادية القيمة أسلوب استدعاء. على سبيل المثال، تتم كتابة 'semantics {hidden = true }' على النحو التالي: 'semantics {hidden() }'. (Ic1afd, b/145951226, b/145955412)
  • تمت إعادة تسمية العديد من واجهات برمجة تطبيقات الاختبار لتصبح أكثر سهولة. وتمت إعادة تسمية جميع واجهات findXYZ API إلى onNodeXYZ. تمت إعادة تسمية جميع واجهات برمجة التطبيقات doXYZ إلى performXYZ. (I7f164)
  • تم تغيير Transition API لعرض TransitionState بدلاً من تمرير TransitionState إلى الوحدات الثانوية. وهذا يجعل واجهة برمجة التطبيقات أكثر تناسقًا مع واجهات برمجة تطبيقات animate(). (I24e38)
  • تمت إضافة فئة وحدة IntBounds، والتي تمثّل عددًا صحيحًا من حدود البكسل من التخطيط. تم تحديث واجهة برمجة التطبيقات PopupPositionProvider لاستخدامها. (I0d8d0، b/159596546)
  • تمت إضافة علامة جديدة اختيارية UseUnmergedTree إلى أدوات البحث عن الاختبار. (I2ce48)
  • تمت إزالة واجهات برمجة التطبيقات لاختبار الحجم القديم. (Iba0a0)
  • تمت إزالة فئة Shader المضمنة التي اختفت الفئة المتوقعة NativeShader. وأعادت تسمية NativeShader إلى Shader. لم تضف فئة Shader المضمّنة أي شيء ذا قيمة إلى سطح واجهة برمجة التطبيقات وكانت فئة مضمّنة، لذا استخدم فئة NativeShader مباشرةً. (I25e4d)
  • تكتسِب النوافذ المنبثقة ومربّعات الحوار والقوائم الآن MaterialTheme السياقي (Ia3665 وb/156527485)
  • يمكن الآن التمرير في القائمة المنسدلة الخاصة بالمواد. (Ide699)
  • تمت إزالة معلمة اتجاه التصميم من كتلة القياس للدالة Layout(). في المقابل، يتوفّر اتجاه التنسيق داخل عنصر الاستدعاء من خلال عنصر نطاق القياس (Ic7d9d).
  • استخدم AnimationSpec بدلاً من AnimationBuilder في واجهات برمجة التطبيقات ذات المستوى الأعلى لتوضيح مفهوم مواصفات الرسوم المتحركة الثابتة. - حسِّن عملية الانتقال DSL من خلال إزالة شرط lambda لإنشاء AnimationSpecs، مثل tween, spring. وبدلاً من ذلك تأخذ معلمات الإنشاء مباشرةً. -تحسين سهولة استخدام AnimationSpec بشكلٍ عام لتوفير أدوات إنشاء بدلاً من الاعتماد على أدوات الإنشاء - غيِّر مدة ومهلة KeyFrames وTween إلى Int. ويؤدّي ذلك إلى الحدّ من عمليات تحويل الكتابة غير الضرورية وتحميل الطرق بشكل زائد (لدعم كلاً من Long وInt). (Ica0b4)
  • يظهر مفتاح التبديل الآن في حالة إيقاف عند ضبط enabled على خطأ (If4624، وb/155941869، وb/159331694)
  • تمت إعادة تسمية Modifier.tag إلى Modifier.layoutId لتجنُّب حدوث أي التباس مع Modifier.testTag. (I995f0)
  • إن المواضع Int لخط المحاذاة التي تم إرجاعها من Placeable#get(AlignmentLine) أصبحت الآن غير خالية. إذا كان خط المحاذاة الذي تم طلبه مفقودًا، سيتم عرض LineLine.Unspecified. (I896c5، b/158134875)
  • إعادة بناء فئة نصف القطر ليكون فئة مضمّنة. تمت إزالة طرق إنشاء الإعلانات المصاحبة لصالح الدالة الإنشائية للدالة ذات المعلمة التلقائية ليكون نصف القطر على طول المحور y مطابقًا لمعلَمة نصف القطر الإلزامية للمحور x.

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

  • من أجل دمج عدد الفئات المستخدمة لتمثيل معلومات تحديد المكان، يجب توحيد استخدام فئة الإزاحة بدلاً من PxPosition. يوفر هذا فوائد الفئة المضمنة للاستفادة من القيم الطويلة لعدد 2 قيم عائمة لتمثيل إزاحة س و ص الممثلة كأعداد عشرية. (I3ad98)

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

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

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

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

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

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

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

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

  • يحتوي مؤشر حقل النص على صورة متحركة وامضة (Id10a7)

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

  • يوفر Vertical Scroller الآن عمودًا خارج الصندوق. يوفر شريط التمرير الأفقي الآن الصف خارج الصندوق. (Ieca5d، b/157020670)

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

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

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

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

  • تم بشكل نهائي إيقاف SpamLineOffset القابل للإنشاء نهائيًا، يُرجى استخدام مفتاح التعديل فيما يتعلق بـ relatedPaddingFrom() بدلاً من ذلك. تمت إزالة العنصر CenterAlignmentLine القابل للإنشاء. (I60107)

  • تم تغيير واجهة برمجة تطبيقات lambda اللاحقة بالقيود الخاصة بالقيود المفروضة على واجهة برمجة تطبيقات lambda. فبدلاً من مَعلمتَين، أصبح لديه نطاق للمستلِم، بالإضافة إلى القيود وLayoutDirection الذي يوفّر خصائص minRate وmaxwidth وminHeight وmaxHeight في Dp (I91b9a، وb/149979702)

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

  • تمت إزالة FocusManagerAmbient. استخدِم FocusModifier.requestFocus لجذب التركيز. (Ic4826)

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

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

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

  • يمكن الآن لـ TextFieldValue الذي يتم استخدامه مع TextField- الاستمرار في إعادة إنشاء النشاط عند استخدامه على النحو التالي: var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() } (I5c3ce، b/155075724).

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

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

  • تم استبدال معلمة CoreTextField/TextFieldFieldIdentifier بـ FocusNode من أجل الدمج مع النظام الفرعي للتركيز. (I7ea48)

  • تتضمّن دوال القياسات الجوهرية في كل من "التنسيق" و"LayoutModifier2" مستقبلًا IntrinsicMeasurementScope. (Id9945)

  • تتم إضافة Modifier.zIndex() الجديدة للتحكم في ترتيب الرسم للعناصر الفرعية ضمن التنسيق الأصلي نفسه. وقد تمت إعادة تسمية خاصية الارتفاع في DrawLayerModifier إلى shadowElevation ولم تعُد تتحكّم في ترتيب الرسم بعد الآن. تم تغيير ترتيب المعلمات لـ DrawShadow: المسقط الرأسي هو الأول والشكل الثاني مع RectangleShape الافتراضي. (I20150، b/152417501)

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

  • تحديث واجهة برمجة التطبيقات TextField: تم دمج استدعاءات onFocus وonBure في معاودة اتصال onFocusChange(Boolean) واحدة تضم معلمة (I66cd3)

  • تمت إضافة معلمتَي الجاذبية الرأسية والجاذبية الأفقية إلى الصف والعمود، على التوالي. (I7dc5a)

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

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

  • يؤدي هذا الإجراء إلى إزالة OfferContentColor، وبدلاً من ذلك، يمكنك استخدام ContentColorAmbient مباشرةً مع "Providers" (Iee942).

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

  • تمت إعادة تسمية وحدة ui-text باسم ui-text-core (I57dec).

  • تم نقل ui-framework/CoreText وCoreTextFieldsables ضمن ui-text-compose. قد ترغب في تضمين ui-text-compos في مشروعك. (I32042)

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

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

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

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

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

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

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

  • تم استبدال أداة التعديل بالإضافة إلى عامل التشغيل بوظائف إضافة على الإعدادات الأصلية (I225e4).

  • تم نقل ميزة السحب إلى أداة التعديل (Id9b16، وb/151959544).

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

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

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

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

  • تمت إعادة تسمية Layoutflex إلى Layoutweight. تمت إعادة تسمية معلَمة ضيقة للتعبئة. (If4738)

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

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

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

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

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

  • تمت إضافة LayerModifier، وهو معدِّل يتيح إضافة RenderNode للتصميم. حيث يسمح بإعداد الاقتصاص والتعتيم والتدوير والتحجيم والظلال. سيحل هذا محل RepaintBoundary. (I7100d، b/150774014)

  • تم نقل androidx.compose.ViewComposer إلى العنوان androidx.ui.node.UiComposer. تمّت إزالة androidx.compose.Emittable. وكان تكرارًا له مع ComponentNode. وتمت إزالة androidx.compose.ViewAdapters. لم تعد حالة استخدام متوافقة. تم إيقاف Compose.composeInto نهائيًا. يمكنك استخدام setContent أو setViewContent بدلاً منها. تم إيقاف واجهة برمجة التطبيقات Compose.disposeAccounts نهائيًا. يمكنك بدلاً من ذلك استخدام طريقة dispose على Composition التي يعرضها setContent. وقد تم نقل androidx.compose.Compose.subcomposeInto إلى androidx.ui.core.subcomposeInto إلى ComponentNode#emitInsertAt. تمت إعادة تسمية ComponentNode#emitInsertAt إلى ComponentNode#insertAt ComponentNode#emitRemoveAt قد تمت إعادة تسميته إلى ComponentNode#emitRemoveAt تمت إعادة تسمية Node#emitMode.

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

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

  • حصلت WithConstraints على معلمة LayoutDirection (I6d6f7)

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

  • .
  • يتوافق مكوِّن التكديس مع الاتجاه من اليمين إلى اليسار (Ic9e00)

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

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

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

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

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

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

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

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

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