إنشاء مادة

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

التركيبة

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

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

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

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

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

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

رائع

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.11"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.11"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

لمزيد من المعلومات حول التبعيات، انظر إضافة تبعيات الإصدار.

ملاحظات

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

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

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

الإصدار 1.7

الإصدار 1.7.0-alpha06

3 نيسان (أبريل) 2024

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

إعلان

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

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

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

الإصدار 1.7.0-alpha05

20 آذار (مارس) 2024

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

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

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

الإصدار 1.7.0-alpha04

‫6 مارس 2024

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

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

الإصدار 1.7.0-alpha03

21 شباط (فبراير) 2024

تم طرح "androidx.compose.material:material-*:1.7.0-alpha03". يتضمّن الإصدار 1.7.0-alpha03 هذه الالتزامات.

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

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

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

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

الإصدار 1.7.0-alpha02

7 شباط (فبراير) 2024

تم طرح "androidx.compose.material:material-*:1.7.0-alpha02". يتضمّن الإصدار 1.7.0-alpha02 هذه الالتزامات.

الإصدار 1.7.0-alpha01

24 كانون الثاني (يناير) 2024

تم طرح "androidx.compose.material:material-*:1.7.0-alpha01". يتضمّن الإصدار 1.7.0-alpha01 هذه الالتزامات.

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

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

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

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

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

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

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

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

الإصدار 1.6.0-alpha04

23 آب (أغسطس) 2023

تم طرح "androidx.compose.material:material-*:1.6.0-alpha04". يتضمّن الإصدار 1.6.0-alpha04 هذه الالتزامات.

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

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

الإصدار 1.6.0-alpha01

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

تم طرح "androidx.compose.material:material-*:1.6.0-alpha01". يتضمّن الإصدار 1.6.0-alpha01 هذه الالتزامات.

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

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

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

  • تم إيقاف واجهات برمجة التطبيقات Swipeable في Material. يُرجى الرجوع إلى واجهات برمجة التطبيقات AnchoredDraggable في المؤسسة، والتي تم تحسينها لكل من حالات الاستخدام البسيطة والمعقدة. (I732e0)

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

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

الإصدار 1.5

الإصدار 1.5.4

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

تم طرح "androidx.compose.material:material-*:1.5.4". يتضمّن الإصدار 1.5.4 هذه الالتزامات.

الإصدار 1.5.3

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

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

الإصدار 1.5.2

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

تم طرح "androidx.compose.material:material-*:1.5.2". يتضمّن الإصدار 1.5.2 هذه الالتزامات.

الإصدار 1.5.1

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

تم إصدار "androidx.compose.material:material-*:1.5.1" بدون أي تغييرات. يتضمّن الإصدار 1.5.1 هذه الالتزامات.

الإصدار 1.5.0

9 آب (أغسطس) 2023

تم طرح "androidx.compose.material:material-*:1.5.0". يتضمّن الإصدار 1.5.0 هذه الالتزامات.

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

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

  • تم دمج التغييرات في واجهات برمجة التطبيقات التمرير السريع 1 في 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)
  • تم تعديل الأدراج وجداول البيانات لتأخير الضغطات بشكل صحيح في حال تحويل الإيماءات إلى أحداث يتم تمريرها.
  • تمت إضافة المعلَمة minLines إلى Material3 وmaterial3 وText وTextField وOutlinedTextField ما يسمح بتحديد الحد الأدنى لارتفاع المكوِّن من حيث عدد الأسطر (I4af1d).

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

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

الإصدار 1.5.0-rc01

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

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

الإصدار 1.5.0-beta03

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

تم طرح "androidx.compose.material:material-*:1.5.0-beta03". يتضمّن الإصدار 1.5.0-beta03 هذه الالتزامات.

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

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

الإصدار 1.5.0-beta02

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

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

الإصدار 1.5.0-beta01

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

تم طرح "androidx.compose.material:material-*:1.5.0-beta01". يتضمّن الإصدار 1.5.0-beta01 هذه الالتزامات.

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

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

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

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

الإصدار 1.5.0-alpha04

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

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

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

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

الإصدار 1.5.0-alpha03

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

تم طرح "androidx.compose.material:material-*:1.5.0-alpha03". يتضمّن الإصدار 1.5.0-alpha03 هذه الالتزامات.

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

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

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

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

الإصدار 1.5.0-alpha02

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

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

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

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

الإصدار 1.5.0-alpha01

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

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

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

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

الإصدار 1.4

الإصدار 1.4.3

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

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

الإصدار 1.4.2

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

تم طرح "androidx.compose.material:material-*:1.4.2". يتضمّن الإصدار 1.4.2 هذه الالتزامات.

الإصدار 1.4.1

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

تم طرح "androidx.compose.material:material-*:1.4.1". يتضمّن الإصدار 1.4.1 هذه الالتزامات.

الإصدار 1.4.0

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

تم طرح "androidx.compose.material:material-*:1.4.0". يتضمّن الإصدار 1.4.0 هذه الالتزامات.

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

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

  • أضِف Modifier.minimumInteractiveComponentSize. ويمكن استخدامه لحجز حجم 48.dp على الأقل للتمييز بين تفاعلات اللمس إذا كان العنصر سيكون أصغر حجمًا. (I33f58، b/258495559)
  • تم دمج التغييرات في واجهات برمجة التطبيقات القابلة للتمرير السريع في ModalDrawer. تم استبدال animateTo في DrawerState بالطرق المفتوحة والإغلاق، وأصبحت الإزاحة الآن قابلة للقيم الفارغة. استخدِم requireOffset لطلب الإزاحة. (I3de9e)
  • تمت إضافة المعلَمة minLines إلى Material3 وmaterial3 وText و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)

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

  • تمت إزالة الأدوار الدلالية من الأسطح القابلة للنقر والاختيار، وتم تعديل المكوّنات التي استخدمتها لتحديد الأدوار باستخدام مفتاح التعديل (Ibb4ba).
  • تعديل طفيف على رموز Material الإضافية التي تعمل على تعديل رموز desktop_mac وdirections وkitchen المعبأة. (I65f5e)

الإصدار 1.4.0-beta01

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

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

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

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

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

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

التعديلات على المهام التابعة للتبعية

  • يعتمد إنشاء واجهة المستخدم وإنشاء المواد الآن على دورة الحياة 2.5.1. (I05ab0، b/258038814)

الإصدار 1.4.0-alpha02

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

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

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

  • يقبل كل من awaitFirstDown وwaitForUpOrCancellation الآن PointerEventPass لمزيد من المرونة. (I7579a، b/212091796)
  • تمت إضافة المعلَمة minLines إلى Material3 وmaterial3 وText و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

تغيير يؤدي إلى تعطُّل في السلوك

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

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

  • أضف مكوِّن السحب لإعادة التحميل إلى 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 حتى الإصدار التجريبي 01.

الإصدار 1.3.0-beta01

24 آب (أغسطس) 2022

تم طرح "androidx.compose.material:material-*:1.3.0-beta01". يتضمّن الإصدار 1.3.0-beta01 هذه الالتزامات.

تغيير يؤدي إلى تعطُّل في السلوك

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

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

الإصدار 1.2.0-alpha05

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

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

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

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

الإصدار 1.2.0-alpha04

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

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

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

  • Add support for filter chips (I39a6e، b/192585545)
  • تمت إضافة "TextFieldDecorationBox" و"OutlinedTextFieldDecorationBox". فاستخدامها مع BasicTextField سيساعدك في إنشاء حقل نصي مخصّص استنادًا إلى حقول نصية في Material Design ولكن مع مزيد من الخيارات للتخصيص.
  • تم توفير طريقة لضبط المساحات المتروكة الأفقية والرأسية في الحقول النصية. (I8c9f1 وb/203764564 وb/191543915 وb/189971673 وb/183136600 وb/179882597 وb/178033)
  • تمت إضافة 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)
  • قيمة ثابتة من RTL في LazyVerticalGrid (aosp/1931080، b/207510535)

الإصدار 1.1.0

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

تم طرح "androidx.compose.material:material-*:1.1.0". يتضمّن الإصدار 1.1.0 هذه الالتزامات.

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

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

الإصدار 1.1.0-rc03

26 يناير 2022

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

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

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

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

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

الإصدار 1.1.0-rc01

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

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

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

الإصدار 1.1.0-beta04

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

تم طرح "androidx.compose.material:material-*:1.1.0-beta04". يتضمّن الإصدار 1.1.0-beta04 هذه الالتزامات.

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

  • تم تعديل هذه الصفحة لتتوافق مع 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 على هذه الالتزامات.

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

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

الإصدار 1.1.0-alpha05

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

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

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

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

الإصدار 1.1.0-alpha04

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

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

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

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

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

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

الإصدار 1.1.0-alpha03

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

تم طرح "androidx.compose.material:material-*:1.1.0-alpha03". يتضمّن الإصدار 1.1.0-alpha03 هذه الالتزامات.

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

  • تم تعديل سياسة الإنشاء 1.1.0-alpha03 للاعتماد على لغة البرمجة 1.5.30 بلغة Kotlin. (I74545)

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

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

الإصدار 1.1.0-alpha02

18 آب (أغسطس) 2021

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

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

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

الإصدار 1.1.0-alpha01

4 آب (أغسطس) 2021

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

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

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

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

  • تمت إضافة نموذج NavigationRail تمت محاذاته السفلي وعرض توضيحي لتطبيق الكتالوج. (I3cffc)
  • تتبع مربّعات الحوار الآن سلوك تغيير حجم النظام الأساسي. اضبط usePlatformDefaultDisplay على "خطأ" لإلغاء هذا السلوك. (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. لا تزال ميزة إنشاء 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 إذا كان الإدخال غير صالح، تم إيقاف استخدام لون الخطأ للتصنيف عندما يتم استخدام التصنيف كعنصر نائب. يكون الأخير true عندما لا يكون هناك نص إدخال في حقل النص ولا يكون حقل النص في التركيز. نتيجةً لذلك، غيّر أيضًا معنى معنى مَعلَمة error:Boolean في الدالة TextFieldColors.labelColor()، وسيعرض الآن الخطأ false حتى إذا كان الإدخال غير صالح في حال استخدام التصنيف كعنصر نائب. (I45f78)

الإصدار 1.0.0-beta09

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

تم طرح "androidx.compose.material:material-*:1.0.0-beta09". يتضمّن الإصدار 1.0.0-beta09 هذه الالتزامات.

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

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

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

  • سيختفي تطبيق Scrim في BottomDrawer وBackdropScaffold وModalBottomSheet ثم النوع 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> واصفًا للفئة التي تنتمي إليها الطريقة المستهدَفة. على سبيل المثال، يجب وصف السمة Landroidx/compose/runtime/SlotTable; للصف androidx.compose.runtime.SlotTable.

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

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

ماذا تفعل القواعد؟

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

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

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

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

آلية العمل

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

الإصدار 1.0.0-beta08

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

تم طرح "androidx.compose.material:material-*:1.0.0-beta08". يتضمّن الإصدار 1.0.0-beta08 هذه الالتزامات.

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

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

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

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

  • تم تحويل FabPosition إلى فئة مضمّنة من التعداد لإتاحة التوسّع المحتمل في المستقبل (I030fb).
  • تمت إعادة هيكلة استخدامات التعداد للفئات المضمّنة لتجنّب حدوث مشاكل ذات شمولية عند إضافة عبارات عند إضافة قيم تعداد جديدة. (I2b5eb)
  • لإضافة مهلة النقر إلى المحتوى القابل للنقر / التبديل لمنع عرض تمويج أثناء التمرير / السحب (Ia2704، b/168524931)
  • لم تعد خصائص ContentDescription والدلالات النصية قيمًا مفردة بل قوائم. وهذا يمكّن من دمجها كما هي بدلاً من التسلسلات. تم أيضًا توفير واجهات برمجة تطبيقات اختبارية أفضل للاستفادة من هذه التغييرات (Ica6bf، b/184825850)
  • تم إيقاف Modifier.focusModifier() نهائيًا واستبداله بـ Modifier.focusTarget() (I6c860).
  • تم استبدال تعداد FocusState بواجهة FocusState (Iccc1a، b/187055290).
  • تمت إزالة LocalRippleNativeRendering الآن حيث أصبح تنفيذ التموج المستند إلى العرض ثابتًا (I7fab3، b/188569367)

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

  • تم تغيير Modifier.onGloballyPositioned() لتسجيل إحداثيات هذا المعدِّل في سلسلة التعديل، وليس إحداثيات التنسيق بعد تطبيق جميع مفاتيح التعديل. وهذا يعني أن ترتيب المُعدّلات يؤثر الآن في الإحداثيات التي سيتم إعداد تقارير بها. (Ieb67d، b/177926591)
  • تمت إضافة ملف README لكتالوج Compose Material الحالي. (If9191)

الإصدار 1.0.0-beta07

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

تم طرح "androidx.compose.material:material-*:1.0.0-beta07". يتضمّن الإصدار 1.0.0-beta07 هذه الالتزامات.

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

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

الإصدار 1.0.0-beta06

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

تم طرح "androidx.compose.material:material-*:1.0.0-beta06". يتضمّن الإصدار 1.0.0-beta06 هذه الالتزامات.

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

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

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

  • تم تعديل تفاصيل كتالوج ComposeAllowed من خلال: 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" توفّر إمكانية التمرير السريع التجريبي للحالة.
    • تغيير واجهة برمجة التطبيقات: تم تصنيف BottomDrawerState على أنّه "تجريبي"، وذلك لمطابقة المكوِّن التجريبي BottomDrawer الذي سبق أن تم (I81114، b/181656094)
  • إعادة تسمية hideSoftwareKeyboard وshowSoftwareKeyboard في SoftwareKeyboardController إلى hide() وshow() على التوالي.
    • قدِّم واجهة ProductionLocal الكاملة لـ LocalSoftwareKeyboardController، مع السماح بتعيينها (مفيدة بشكلٍ خاص في الاختبارات) (I579a6)
  • تمت إضافة واجهة برمجة التطبيقات الخاصة بميزات تسهيل الاستخدام في منطقة LiveRegion. إذا تم وضع علامة على العقدة بأنّها منطقة نشطة، ستُعلِم خدمات تسهيل الاستخدام المستخدم تلقائيًا بالتغييرات التي يتم إجراؤها (Idcf6f، b/172590946)

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

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

الإصدار 1.0.0-beta03

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

تم طرح "androidx.compose.material:material-*:1.0.0-beta03". يتضمّن الإصدار 1.0.0-beta03 هذه الالتزامات.

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

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

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

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

الإصدار 1.0.0-beta02

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

تم طرح "androidx.compose.material:material-*:1.0.0-beta02". يتضمّن الإصدار 1.0.0-beta02 هذه الالتزامات.

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

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

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

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

الإصدار 1.0.0-beta01

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

تم طرح "androidx.compose.material:material-*:1.0.0-beta01". يتضمّن الإصدار 1.0.0-beta01 هذه الالتزامات.

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

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

  • تمت إعادة تسمية مفاتيح تعديل الحجم. تمت إعادة تسمية Modifier.width/height/size إلى required width/requiredHeight/requiredSize. تمت إعادة تسمية Modifier.Favorite توفّرها/FavoriteHeight/FavoriteSize إلى العرض/الارتفاع/الحجم. (I5b414)
  • أصبحت imageResource وFontResource الآن وظيفتَي الإضافة على رفيقتَي ImageBitmap وImageVector على التوالي. load{Image,Vector,Font}تم حذف دوال الموارد. (I89130)
  • لم تعد مُعدِّلات تغيير الحجم مع القيم الأساسية تجريبية. (I15744)
  • تأكيدات dp التي تمت إزالتها (I798d2)
  • تمت إزالة معاودة الاتصال SoftwareKeyboard من جميع الحقول النصية ليتم استبدالها بواجهة برمجة تطبيقات جديدة قريبًا. (Iae869، b/168778053)
  • أصبحت الآن قيم lambdas للإجراء "التبديل" و"مربع الاختيار" و"زر الاختيار" قابلة للقيم الفارغة. تم تحديث نماذج صف مربع الاختيار القابلة للنقر لاستخدام هذه الميزة. (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 في ProductionLocals (I53520)
  • تمت إزالة طرق LayoutCoordinates المتوقفة نهائيًا، استخدِم الدالة بدلاً من خاصية positionInParent وboundsInParent (I580ed وb/169874631 وb/175142755).
  • يتوافق شريط التمرير الآن مع حالة التفعيل/الإيقاف (I6d56b، b/179793072).
  • تم إنشاء TextInputSession جديد لجلسات الإدخال من مكونات نصية منخفضة المستوى مثل CoreTextField. (I8817f، b/177662148)
  • تمت إزالة AnimationEndreason.Interupted. سيتم تجاهل Cancel Exception في حال مقاطعة الرسوم المتحركة. (I2cbbc، b/179695417)
  • تمت إزالة @ExperimentalRippleApi وتغيير RippleAlpha ليكون فئة تشتمل على خصائص بدلاً من واجهة. (I6df7c)
  • تمت إضافة واجهة TextFieldColors لتمثيل الألوان المختلفة المستخدمة في TextField وOutlinedTextField في حالات مختلفة. وبالنسبة إلى التنفيذ غير التلقائي، يُرجى الاطّلاع على TextFieldDefaults.textFieldColors وTextFieldDefaults.outlinedTextFieldColors.
    • تمت إعادة تسمية المعلمة isErrorValue داخل TextField وOutlinedTextField في 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.verticalScroll()/horizontal Scroll() مع Ints الآن (I81298).

  • تم تغيير حزمتَي sample ScrollBy وScrollBymethods إلى androidx.compose.foundation.gestures.* (I3f7c1 وb/175294473)

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

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

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

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

  • يقوم drawerState.open() و drawerState.CLOSE() الآن بتعليق الدوال. استخدِم readCoroutineScope() للحصول على نطاق المقطوعة الموسيقية لطلب استدعائها (I16f60، b/175294473).

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

    • لم تعُد الدالة الإنشائية للمقطوعة الموسيقية تقبل مَعلمة رئيسية، وتم إيقافها نهائيًا.
    • تم تحويل CurrentsCompositeKeyHash إلى سمة من المستوى الأعلى قابلة للإنشاء بدلاً من دالة المستوى الأعلى القابلة للإنشاء.
    • تم نقل ComposeData وتكوينGroup إلى مساحة الاسم androidx.compose.runtime.Tooling.
    • تم تصميم ComposableLambda كواجهة بدلاً من فئة ملموسة، ولم تعد تحتوي على معلمات النوع.
    • تم تصميم ComposableLambdaN كواجهة بدلاً من فئة ملموسة، ولم تعد تحتوي على معلمات النوع.
    • تم نقل دالة shortcutsFlow إلى مساحة الاسم androidx.compose.runtime.
    • لم تعُد طريقة الدمج لـ SnapshotMutationPolicy تجريبية.
    • تمت إزالة دالة clearRoots ذات المستوى الأعلى في @TestOnly. لم يعد من الضروري.
    • تمت إزالة الدالتين keySourceInfoOf وresetSourceInfo. لم تعُد ضرورية.
    • تمت إزالة Composer.collectKeySourceInfo. لم يعد من الضروري.
    • تمت إزالة طرق isJoinedKey وjoinKeyLeft وjoinKeyRight. لم تعُد ضرورية.
    • تم نقل العديد من واجهات برمجة التطبيقات ذات المستوى الأعلى وإعادة تنظيمها في ملفات مختلفة. ونظرًا للدلالات الدلالية لفئة الملفات في Kotlin، سيؤدي ذلك إلى إيقاف التوافق الثنائي وليس التوافق مع المصدر، لذا من المفترض ألا تكون هناك مشكلة لدى معظم المستخدمين.
    • (I99b7d، b/177245490)
  • تمت إعادة صياغة Modifier.scrollable. وهي تستخدم الآن واجهة Scrollable بدلاً من فئة ScrollableController (I4f5a5 وb/174485541 وb/175294473).

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

  • ZoomableController.smoothScaleBy وZoomableController.stopAnimation (I7f970، b/177457083)

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

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

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

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

  • تم تغيير Indexation#createIndexation() إلى Indexation#rememberupdatedتوثيق(InteractionState) وإزالة المعلمة InteractionState من المستنِدationInstance#draw قيمتها(). يجب أن يكون IndexationInstance مسؤولاً فقط عن رسم التأثيرات المرئية، وليس تشغيل الرسوم المتحركة / حالة الكتابة استجابةً لتغييرات InteractionState. يجب أن يتم تنفيذ هذه الرسوم المتحركة وكتابات الحالة ضمن rememberUpdatedIndication() بدلاً من ذلك. وتم أيضًا تغيير المَعلمة indication في Modifier.indication لتصبح مَعلمة مطلوبة. (Ic1764، b/152525426)

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

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

الإصدار 1.0.0-alpha12

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

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

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

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

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

  • تمت إعادة تسمية renameSavedInstanceState() إلى {8/}Saveable() وتم نقلها إلى androidx.compose.runtime.saveable package. (I1366e، b/177338004)

  • تم نقل Saver وlistSaver() وmapSaver() والحفظ التلقائي من androidx.compose.runtime.savedinstancestate إلى androidx.compose.runtime.saveable (I77fe6)

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

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

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

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

  • تم تقديم واجهة برمجة تطبيقات ColorMatrix، وتُستخدم لتعديل قيم rgb للمحتوى المصدر. (Ica1e8)

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

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

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

  • تم إيقاف clickOptionFilter وDoubleTapOptionFilter وlongPressOptionFilter و pressNodeaitonActivityFilter نهائيًا. استخدِم Modifier.clickable أو "Modifier.pointerInput" مع وظيفة "detectTapOptions" بدلاً من ذلك. (I6baf9، b/175294473)

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

  • تمت إزالة Recomposer.current(). [Abstract]ComposeView الآن يتم تعيينها افتراضيًا على أدوات إعادة الإنشاء التي يتم إنشاؤها ببطء على مستوى النافذة والعاملة بواسطة ViewTreeLifecycleOwner للنافذة. يتم إيقاف إعادة الإنشاء واستخدام علامات الرسوم المتحركة المستندة إلى FrameNanos مؤقتًا أثناء إيقاف دورة حياة المضيف. (I38e11)

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

  • سيتم الآن تكبير حجم الرمز ليناسب حجمه، مع مراعاة معدِّلات الحجم المطبَّقة عليه. على سبيل المثال، سترسم الآن Icon(.., modifier = Modifier.size(50.dp) مساحة بحجم 50x50 بكسل مستقل الكثافة. (Ib2ba9، b/178796190)

الإصدار 1.0.0-alpha11

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

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

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

  • الترويج لبعض واجهات Material API التي لم تعد @Experimental (I5d20e)
  • تمت إضافة معلمة وصف المحتوى إلى الصورة والرمز. ويتم استخدامه لتقديم وصف لخدمات تسهيل الاستخدام (I2ac4c).
  • يغيّر واجهات مَعلمات تحديد الحالة في المادة الأساسية لتصبح دوال @Composable التي تعرض الخطأ State<T>. تتم إضافة "Animatable.asState()" لتسهيل عملية تحويل صورة متحركة إلى حالة. يتم أيضًا تغيير animateElevation لتصبح امتداد تعليق على Animatable. (If613c)
  • لم تعُد Snackbar وSnackbarHost وSnackbarHostState @ExperimentalMaterialAPI (Id1fb5)
  • تغيير أسلوب الخط والأشكال وموضع علامة التبويب لم تعد فئات بيانات. تضيف دالة نسخ أسلوب الخط والأشكال لاستبدال تلك التي تم إنشاؤها. (I40037)
  • تم حذف بعض واجهات Material API التي تم إيقافها نهائيًا سابقًا (Ifaa25).

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

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

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

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

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

  • لم يعُد من الممكن تخصيص التموج المستخدَم في الزرّ وFloatingActionButton من خلال توفير مؤشر جديد من خلال ميزة "الإشارة الحيوية"، إذ لم يكن الغرض من ذلك أبدًا أن يكون طريقة لتخصيص هذه المكوّنات، ما يجعل هذه المكوّنات متوافقة مع مكوّنات Material الأخرى. لتخصيص التموّجات عبر أحد التطبيقات، راجع مظهر RippleTheme. (I546c5)

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

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

  • إصلاح خطأ جعل عرض حقل نص المادة أقل من 280.dp (I78373)

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

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

  • يمكن أن يحتوي السطح الآن على تصميمات ثانوية متعددة. (I66a92، b/144488459)

  • تم الآن إيقاف in مؤخرًا وchangeReference() لتحلّ محلّهما currentRecomposeScope، وتذكُّرمراقبة التركيب على التوالي. (I583a8)

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

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

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

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

  • تم تغيير التخفيف إلى واجهة وظيفية (Ib14e5)

  • تم إيقاف العمود القابل للتمرير/الصف. يُعد استخدام ScrollableColumn أقل كفاءة مقارنةً بـ LazyColumn عندما يكون لديك محتوى تمرير كبير لأنه باستخدام LazyColumn (بطريقة مختلفة)، يمكننا إنشاء/قياس/رسم العناصر المرئية فقط. ولمنع المستخدمين من الانتقال إلى الطريقة غير الفعّالة، قرّرنا إيقاف العمل بميزة ScrollableColumn و ScrollableRow وبدلاً من ذلك، ننصح باستخدام LazyColumn وLazyRow. يظل بإمكان المستخدمين تحديد أنّهم لا يحتاجون إلى السلوك الكسول واستخدام أدوات التعديل مباشرةً كما يلي: Column(Modifier.verticalScroll(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.toolsingGraphicsLayer التي تضيف معدِّل طبقة الرسومات عند تفعيل الفحص. (I315df)

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

  • تمت إعادة تسمية SemanticsProperty تلبيةr.hidden إلى invisibleToUser، وتم وضع علامة عليه تشير إلى @BETAComposeUiApi. تمت إعادة تسمية AccessibilityRangeInfo إلى ProgressBarRangeInfo. تمت إعادة تسمية StateDescriptionRange إلىPROGRESSBarRangeInfo. تمت إعادة تسمية Accessibility ScrollState إلى ScrollAxisRange. تمت إعادة تسمية horizontalAccessibilityScrollState إلى horizontal ScrollAxisRange. تمت إعادة تسمية verticalAccessibilityScrollState إلى العمود العمودي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)
  • تمت إعادة تسمية الموضع إلى Dp Offset وإزالة getمسافة() (Ib2dfd)
  • Ranamed Color.useOrElse() to Color.takeOrElse() (Ifdcf5)
  • إضافة مفتاح تبديل إلى Foundation Strings.kt (I4a5b7، b/172366489)
  • تم إيقاف تدفق الصف وعمود التدفق نهائيًا. يُرجى استخدام تنسيق مخصص بدلاً من ذلك. (I09027)
  • تم إيقاف Modifier.focus() وModifier.focusRequester() نهائيًا. استخدِم Modifier.focusModifier() وModifier.focusReference() بدلاً منها (I75a48 وb/175160751 وb/175160532 وb/175077829)
  • تم نقل المعلمةNativeClass إلى وحدة واجهة المستخدم وجعلها داخلية. تم تحديث استخدامات originalClass في عمليات تنفيذ تساوي استخدام "is MyClass" بدلاً من ذلك. (I4f734)

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

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

الإصدار 1.0.0-alpha09

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • تمت إعادة تسمية AccessibilityLabel إلى contentDescription. تمت إعادة تسمية إمكانية الوصول إلى StateDescription. (I250f2)

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

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

  • تمت إضافة إمكانية التفاعل مع InteractionState لـ TextFields. (I61d91)

  • تمت إضافة Modifier.clearAndSetSemantics لإزالة دلالات التابعة وإعداد دلالات جديدة. (I277ca)

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

الإصدار 1.0.0-alpha08

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

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

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

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

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

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

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

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

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

  • تم نقلcaptureToBitmap إلى captureToImage. (I86385)
  • تم نهائيًا إيقاف الميزات الأساسية "epTextStyle" و"OfferTextStyle" و""،ampContentColor" نهائيًا. وبدلاً من ذلك، يمكنك استخدام الإصدارات الجديدة المتوفرة في مكتبة Material. بالنسبة إلى التطبيقات غير Material، عليك إنشاء نظام التصميم الخاص بك البيئات المحيطة التي يمكن استخدامها في المكونات الخاصة بك. (I74acc، b/172067770)
  • Foundation.Text تم إيقاف العمل نهائيًا واستبداله بـmaterial.Text. بالنسبة إلى واجهة برمجة تطبيقات النص الأساسية غير المرئية التي لا تستهلك قيمًا من مظهر، يمكنك الانتقال إلى androidx.compose.foundation.BasicText. (If64cb)
  • إعادة تسمية KeyboardOptions باسم ImeOptions (I82f36)
  • تم نقل KeyboardType وImeAction إلى لوحة المفاتيح (I910ce).
  • تم إيقاف BaseTextField نهائيًا. استخدِم BasicTextField بدلاً من ذلك. (I896eb)
  • تمت إزالة التعليق التوضيحي BETASubcomposeLayoutApi. يمكن الآن استخدام SubcomposeLayout بدون إضافة @OptIn (I708ad)
  • تم نقل FirstBaseline وLastBaseline إلى حزمة androidx.compose.ui.layout (Ied2e7)
  • تم تحديث واجهة برمجة التطبيقات Accessibility API لتتحول إلى اللون.غير محدد باعتباره لونًا تلوينًا محتملاً سيرسم الأصل أو الطلاء المتوفر بدون استخدام ColorFilter. كان يحاول في السابق تجاهل التلوين باستخدام اللون.وغير محدد سوف يؤدي إلى التلوين باللون الشفاف فسينتهي به الأمر بدون عرض أي شيء على الإطلاق. (I049e2، b/171624632)
  • تمت إعادة تسمية SpamPaddingFrom إلى أدناهowFrom. تمت إضافة المعدِّل addingFromBaseline لتسهيل تحديد المسافات من حدود التنسيق إلى الأسس الأساسية للنص. (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() مع برنامج "Painter" إذا كنت لا تريد استخدام مكتبة Material. (I9f622)
  • لإضافة FloatingActionButtonElevation للتعبير عن الارتفاع الذي تستخدمه إجراءات الإجراء الرئيسي (FAB) في حالات مختلفة راجِع FloatingActionButtonConstants.defaultElevation() لمعرفة التنفيذ التلقائي (I2d4f5).
  • لإضافة واجهة SwitchColors لتمثيل الألوان التي يستخدمها "مفتاح تحكّم" في حالات مختلفة. يمكنك الاطّلاع على SwitchConstants.defaultColors لتخصيص هذه الألوان. (I93805)
  • لإضافة واجهتي ButtonElevation وButtonColors لتمثيل المسقط الرأسي والألوان المستخدمة بواسطة الأزرار في حالات مختلفة. اطّلع على الدوال الافتراضية في ButtonConstants لتخصيص هذه المعلمات. (Ic5b7b)
  • لإضافة واجهة RadioButtonColors لتمثيل الألوان التي يستخدمها "زر الاختيار" في حالات مختلفة. راجع RadioButtonConstants.defaultColors() لتخصيص الألوان المستخدمة في حالات مختلفة. (I74130)
  • لإضافة واجهة CheckboxColors لتمثيل الألوان المستخدمة في مربّع اختيار في حالات مختلفة راجع CheckboxConstants.defaultColors() لتخصيص الألوان المستخدمة في حالات مختلفة. (I7dbdb)

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

  • لم يعد بإمكان مكونات المواد ضبط الارتفاع على أنّه zIndex. وهذا يعني أنه ضمن نفس العنصر الأصل، لن يتم رسم الطفل الذي له حجم ظل أكبر فوق الطفل الأصغر تلقائيًا. إذا كنت لا تزال بحاجة إلى هذا السلوك، يُرجى ضبط Modifier.zIndex() يدويًا عند الحاجة (I70417، b/170623932).
  • أوقف VectorPainter لصالحتعرَّف على تذكرVectorPainter للإشارة بشكل أفضل إلى أنّ واجهة برمجة التطبيقات القابلة للإنشاء تستفيد داخليًا من عملية "تذكر" البيانات للحفاظ على البيانات عبر التركيبات. (Ifda43)
  • يمكنك تفعيل عمليات الانتقال في ComposeTestRule مع مراعاة إزالة خيار تفعيل المؤشر الوامض من ComposeTestRules. (If0de3)
  • تمت إضافة خيار لوحة المفاتيح من سطر واحد إلى CoreTextField (I72e6d).
  • تمت إعادة تسمية واجهة برمجة تطبيقات Radius إلى CornerRadius للتعبير بشكل أفضل عن كيفية استخدامها في Compose وثائق معدَّلة للإشارة إلى أنّ نصف قطر الزاوية السالبة مثبَّت على الصفر. (I130c7، b/168762961)
  • و DrawScope وContentDrawScope لإنشاء واجهتَين، بدلاً من الفئات المجرّدة
    • تم إنشاء تنفيذ CanvasDrawScope من DrawScope
    • تمت إعادة هيكلة عمليات تنفيذ DrawScope لاستخدام CanvasScope بدلاً من
    • تم إنشاء DrawContext لالتفاف التبعيات لـ DrawScope
    • تمت إزالة الطرق المتوقّفة نهائيًا في DrawScope (I56f5e).
  • تم تحويل Box إلى دالة مضمّنة. (Ibce0c، b/155056091)

الإصدار 1.0.0-alpha05

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

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

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

  • تكتسب النوافذ المنبثقة ومربعات الحوار الآن FLAG_SECURE من النافذة الرئيسية. تمت إضافة خيار لضبط هذا الإعداد بشكل صريح (I64966، b/143778148، b/143778149)
  • وفقًا للإعدادات التلقائية، يتضمّن تطبيق Modifier.sthroughable حدود تبلغ 56.dp للولايات المتحدة (Iab825 ، b/168610267).
  • تم نقل جميع حالات السقالة التي تم وضع علامة @Stable عليها. تفيد بأن drawerOptionsEnabled في ScaffoldState قد تم نقلها إلى Scaffold نفسها. (I36645، b/168297016)
  • لإزالة النوع القابل للقيم الفارغة من مَعلمات Scaffold lambda، يمكنك استخدام قيمة فارغة() لإزالة أي محتوى لمَعلمة معيّنة. (I2b318 وb/157633857 وb/158551084)
  • نهائيًا يمكنك الوصول إلى القيمة الحالية باستخدام .current في سمة "وضع الإضاءة السينمائية" كما هو الحال مع أي بيئة محيطة أخرى. تم إجراء هذا التغيير من أجل الاتساق وتجنب وجود طرق متعددة لإنجاز نفس الشيء. بالإضافة إلى ذلك، ستتم إعادة تسمية بعض الخصائص في البيئة المحيطة لوصف الغرض منها بشكل أفضل على النحو التالي:

    • ContentColor بيّنة -> ألوان شاشة الاستراحة
    • TextStyle أجواء استرخاء
    • الإشارة المحيطة -> الإشارة إلى البيئة المحيطة
    • التأكيد المحيط -> ampEmphasisLevels
    • RippleTheme am -> sitemapRippleTheme (I37b6d)
  • لإضافة ampElevationOverlay، ما يسمح بتخصيص أو إيقاف تراكب الارتفاع التلقائي الذي يتم تطبيقه على "الأسطح" في المظهر الداكن. (I5b74d)

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

  • كجزء من توحيد قيم الروابط للفئات المضمّنة، يُرجى إعادة تسمية اللون.غير محدَّد إلى اللون.غير محدَّد للتناسق مع الفئات المضمّنة الأخرى (I97611، b/169797763)
  • تم تقديم TextOverflow.لم يتم تقديم أي شيء. عندما تكون قيمة overflow (التجاوز) هي "None" (بلا)، لن يتعامل Text مع تجاوز overflow بعد ذلك، وسيتم الإبلاغ عن حجمه الفعلي إلى LayoutNode. (I175c9، b/158830170)
  • تمت إعادة تسمية runIn للتأكيد على LaunchedTask لمطابقة إرشادات Compose API (واجهة برمجة التطبيقات) (I99a8e).
  • تمت إعادة تسمية OnPositionedModifier إلى OnGloballyPositionedModifier وتمت إعادة تسمية onPositioned() إلى onGloballyPositioned(). (I587e8، b/169083903)

الإصدار 1.0.0-alpha04

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

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

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

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

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

  • تم تحديث العديد من واجهات برمجة التطبيقات للرسومات
    • تم تحديث واجهات برمجة التطبيقات للمقياس والتدوير لاستهلاك معلمة إزاحة واحدة لتمثيل الإحداثي المحوري بدلاً من المعلَمات العائمة المنفصلة للإحداثيات x/y في DrawScope وDrawTransform
    • تمت إزالة الطريقتين Rect.expandToinclude وRect.join
    • تم تحديث وثائق نصف القطر لتوضيح الشكل البيضاوي بالإضافة إلى البيضاوي
    • الوثائق الإضافية التي تشير إلى أن الدالة الإنشائية العامة لفئة نصف القطر المضمنة لا يتم استدعاءها بشكل مباشر ولكن بدلًا من ذلك يجب إنشاء مثيل لكائنات النطاق الجغرافي من خلال الدالة الإنشائية للدوال
    • تمت إزالة واجهات برمجة تطبيقات RoundRect لطلب البحث في topRight، وbottomRight، و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.minسام
    • تم تغيير 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 الجديد في تكديس العناصر الفرعية فوق بعضها البعض عندما يكون لديه العديد من العناصر الثانوية - وهذا يختلف عن Box السابق، الذي كان يعمل مشابهًا للعمود. (I94893، b/167680279)
  • تم إيقاف مَعلمات تزيين الصندوق نهائيًا. إذا كنت تريد إضافة زخارف أو مساحة متروكة في المربّع، استخدِم "المعدِّلات" بدلاً من ذلك (Modifier.background أو Modifier.الحد أو Modifier.adding) (Ibae92، b/167680279).
  • تم تحديث العديد من واجهات برمجة التطبيقات للرسومات
    • تم تحديث واجهات برمجة تطبيقات DrawScope باستخدام طرق تحويل النطاق للإشارة إلى أنّه لا يتم تطبيق التحويل إلا داخل طلب الاستدعاء وتتم إزالته بعد استدعاء الاستدعاء
    • وثائقClipPath المحدّثة للإشارة إلى "المسار" بدلاً من المستطيل المستدير
    • تباعد ثابت في وثائق المعلمة الصحيحة في tablePath
    • تمت إعادة تسمية DrawScope.DrawCanvas إلى drawIntoCanvas وإزالة معلمة الحجم
    • تمت إعادة تسمية معلمات dx/dy في طريقة الإدخال إلى الوضع الأفقي والرأسي
    • تمت إضافة الحمل الزائد للداخل الذي يوفر نفس قيمة الإدخال لجميع الحدود الأربعة
    • تمت إزالة الوثائق الموجودة على طريقة الإدخال التي تشير إلى أنه سيتم تطبيق الداخلية على جميع الجوانب الأربعة
    • مستندات معدَّلة لفئة Rect
    • تم تحديث التعليقات على معلمات Rect لمطابقة نمط kdoc
    • تمت إزالة Rect.join وRect.expandToFrom
    • تم إنشاء حِمل زائد لـ Rect.localized(offset) وإيقاف Rect.shift نهائيًا
    • (If086a، b/167737376)
  • لقد منعنا عمليات الاستيراد الثابتة لمحتويات نطاقات التنسيق (مثل وهذا النوع من المحتوى في 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 انتقلItem وTab، مما يسمح بزيادة هذه الحالة وضبط كيفية ظهور المكون في الحالات المختلفة. (Ia3e9e، b/168025711)
  • إزالة المعلمتَين disabledBackgroundColor وdisabledContentColor من الأزرار يجب عليك بدلاً من ذلك استخدام دوال اللون الافتراضية الجديدة داخل ButtonConstants. إذا سبق لك ضبط contentColor / colorColor بشكل صريح، عليك بدلاً من ذلك استخدام هذه الدوال التلقائية وتخصيص بعض أو كلّ المَعلمات لتجنُّب استبدال اللون لكلٍّ من الحالات المفعّلة أو غير المفعَّلة. (If9b52)
  • لم يعد لون خلفية Textfield يتضمن ألفا الشفافية ضمنًا. وبدلاً من ذلك، سيتم تطبيق أي لون يتم توفيره من خلال معلمة colorColor مباشرةً. (Iecee9، b/167951441)
  • تمت إعادة تسمية InnerPadding إلى PaddingValues. (I195f1، b/167389171)
  • تم استبدال المَعلمتَين resistanceFactorAtMin وresistanceFactorAtMax في Modifier.swipeable بمَعلمة مقاومة واحدة. تمت إضافة طريقة defaultResistanceConfig جديدة في SwipeableConstants. (I54238)
  • إضافة دعم للمسقط الرأسي ذي الحالة المتحركة لكل من الزر وFloatingActionButton. يتم الآن تحريك المسقط الرأسي بين الحالة الافتراضية والحالة المضغوطة. لتخصيص المسقط الرأسي بين الحالات، يُرجى استخدام ButtonConstants.defaultAnimatedElevation() وFloatingActionButtonConstants.defaultAnimatedElevation() بدلاً من تحديد قيمة ثابتة للكثافة في جميع الحالات. (I37925)
  • أصبح التصنيف معلَمة اختيارية داخل TextField وOutlinedTextField (I267f6، b/162234081).

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

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

الإصدار 1.0.0-alpha02

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

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

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

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

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

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

الإصدار 1.0.0-alpha01

26 آب (أغسطس) 2020

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

مشكلة معروفة

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

الإصدار 0.1.0-dev

الإصدار 0.1.0-dev17

19 آب (أغسطس) 2020

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

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

  • تمت إزالة RadioGroup وRadioGroupItems اللذين تم إيقافهما سابقًا. استخدِم Row وRadioBotton بدلاً من ذلك (I381b7، b/163806637)
  • تمت إزالة onFocusChanged لطلبات معاودة الاتصال من TextField. استخدِم Modifier.focusMonitorer بدلاً من ذلك. (I51089، b/161297615)
  • تم إيقاف Modifier.DrawBorder نهائيًا. يمكنك استخدام Modifier.الحدود بدلاً من ذلك. تم استبدال فئة البيانات الحدودية بـ BorderStroke (I4257d وb/158160576).
  • تمت إعادة تسمية بعض الخصائص في ScrollableState: مرِّر سريعًاTarget -> targetValue، ونمرر سريعًا -> مستوى التقدم، طريق تمرير سريع -> اتجاه. تمت إضافة دالة renameableState لإنشاء طريقة التمرير السريع. (I2fc9c، b/163129614، b/163132293)
  • تمّت إضافة ميزة Snackbar مع إمكانية تحديد الموضع والإضافة إلى قائمة الانتظار المناسبة. يمكن الوصول إليه من خلال وظيفة التعليق SnackbarHostState.showSnackbar. علاوة على ذلك:
    • تمت إضافة مكوّنات SnackbarHost. تستضيف Snackbars بناءً على الحالة وهي مسؤولة عن الانتقال بين Snackbar.
    • تمت إضافة SnackbarHostState للسماح بالتحكّم في أشرطة الإعلام المنبثق ومضيفات أشرطة الإعلام الخفيفة ولفصلها عن ScaffoldState. يمكنك الوصول إلى هذه الحالة من خلال scaffoldState.snackbarHostState أيضًا.
    • تمت إضافة التحميل الزائد لشريط Snackbar لدعم الواجهة المشتركة بين lightbarHostState وinstbars نفسها. (I79aaa)
  • إضافة المَعلمة المفعّلة إلى IconButton، وإعادة ترتيب المَعلمات في IconToggleButton (I0a941، b/161809385، b/161807956)
  • تمت إزالة إصدار ListItem مع واجهة برمجة التطبيقات المستندة إلى السلسلة. استخدِم إصدار الخانة بدلاً من ذلك. (Ib8f57، b/161804681)
  • تمت إزالة المكوِّن FilledTextField المتوقف نهائيًا. يُرجى استخدام TextField بدلاً من ذلك للحصول على طريقة تنفيذ التصميم المتعدد الأبعاد لحقل النص المعبّأ. (I5e889)
  • يستخدم تطبيق Alater Dialog الآن حدث FlowRow للأزرار (I00ec1، وb/161809319، وb/143682374)
  • تمت إضافة المعلمات في Modifier.sthroughable لتغيير مقدار المقاومة عند التمرير سريعًا خارج الحدود. تمت إزالة مَعلمات القيمة [min/max]. (I93d98)
  • تمت إضافة المعلمة colorColor إلى قائمة LinearProgressPresents وإزالة المساحة المتروكة الداخلية من CircularProgressIndexator. تمت إضافة ميزة Progress لأجهزة Constants.DefaultProgressAnimationSpec الجديدة التي يمكن استخدامها كقيمة AnimationSpec التلقائية عند تحريك التقدّم بين القيم (If38b5 وb/161809914 وb/161804677)
  • تمت إضافة معلمة velocityThreshold اختيارية إلى Modifier.ssurveyable. (I698ba)
  • السفليBarSize وfabSize وغير ذلك من الأشياء التي لم يعد متاحًا في ScaffoldState. استخدم Modifier.onPosition بدلاً من ذلك على المكون الذي تريد معرفة حجمه. تمت إضافة contentColor وModifier pamateres إلى Scaffold (Ic6f7b وb/161811485 وb/157174382).
  • إعادة تسمية بعض المَعلمات في علامة التبويب وإعادة ترتيبها من أجل التوافق مع واجهات برمجة التطبيقات الأخرى (Ia2d12، b/161807532)
  • يؤدي هذا الإجراء إلى تقسيم TabRow إلى TabRow وS ScrollableTabRow، ما يؤدي إلى إزالة سمة isScrollable من TabRow. يؤدي أيضًا إلى عرض EdgePadding في ScrollableTabRow، مما يسمح بالتحكم في المساحة الخالية قبل / بعد علامات التبويب. (I583e8، b/161809544)
  • تمت إزالة العنصر TabRow واستبداله بـ TabConstants. تم نقل TabRow.TabPosition إلى المستوى الأعلى (TabPosition)، كما تمت إعادة تسمية المنصوص Container إلى indicator. راجِع النماذج والوثائق للحصول على معلومات تفصيلية حول كيفية استخدام واجهة برمجة التطبيقات المُحدَّثة والإعدادات التلقائية. (I54d45، b/161809544)
  • تم تعديل معلمة الحدود في Modifier.s ميزاتable؛ وهي الآن تأخذ زوجًا من الحالات (من النوع T) وتعرض الحد الأدنى بينهما في شكل ThresholdConfig. تمت إضافة مَعلمة RejectThresholds إلى ScrollToEscape، وهي مَعلمة lambda ( المناسب( المطلوبة) -> ThresholdConfig. (Ie1080)
  • يحتوي شريط التمرير على المزيد من الألوان للتخصيص الدقيق (I73e64، b/161810475).
  • تمت إعادة تسمية معلمة لون البطاقة إلى colorColor (I01fc1، b/161809546).
  • يتميّز Snackbar الآن بخلفية قابلة للتخصيص وألوان محتوى قابلة للتخصيص (I238f2 وb/161804381).
  • تمت إضافة مَعلمات التخصيص المُعدّل وخلفيةColor و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. ويمكن استخدام ذلك لتحديد سياسة مخصصة لدمج دلالات الدمج AllDescendants. تتمثل السياسة الافتراضية في استخدام القيمة الرئيسية إذا كانت موجودة بالفعل، أو القيمة الفرعية. (Iaf6c4، b/161979921)
  • أصبح IntSize الآن فئة مضمّنة (I2bf42).
  • تمت إعادة تسمية PlacementScope.placeAbsolute() إلى PlacementScope.place()، كما تمت إعادة تسمية PlacementScope.place() السابق إلى PlacementScope.placeRelative(). ونتيجة لذلك، لن تعكس طريقة PlacementScope.place() الموضع تلقائيًا في السياقات من اليمين إلى اليسار بعد الآن. إذا كنت تريد ذلك، يمكنك استخدام PlacementScope.placeRelative() كبديل. (I873ac، b/162916675)
  • PxBounds المتوقف لصالح Rect. تم تحديث جميع استخدامات PxBounds باستخدام المستطيل وإضافة الإيقاف/الاستبدال المناسب بالتعليقات التوضيحية للمساعدة في الترحيل. (I37038، b/162627058)
  • تمت إعادة تسمية RRect إلى RoundRect لملاءمة أنماط التسمية لإنشاء إنشاءات دوال مماثلة بشكل أفضل وإنشاء منصات إنشاء دوال RRect تم إيقافها نهائيًا (I5d325)

الإصدار 0.1.0-dev16

5 آب (أغسطس) 2020

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

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

  • أصبحت الألوان الآن فئة نهائية بدلاً من واجهة. فبدلاً من التمديد وتقديم عملية تنفيذ مخصّصة، يجب إنشاء أجواء جديدة لكائن المظهر المخصّص، والوصول إلى كائن المظهر من خلال البيئة المحيطة الجديدة في المكوّنات، على غرار آلية عمل MaterialTheme داخليًا. (Ibae84)
  • تمت إعادة تسمية ColorPalette إلى "Colors" (الألوان) لتعيين نظام ألوان Material بشكل أفضل وإزالة الالتباس الذي يحدث حول ColorPalette كونه كائن تصميم "عام"، بدلاً من كونه تطبيقًا محددًا لنظام ألوان Material. بالإضافة إلى ذلك، ستتم إعادة تسمية lightColorPalette وdarkColorPalette إلى lightColors وdarkColors على التوالي. (I9e976، b/161812111)
  • تعيد تسمية المعلَمة text في Bottom NavigationItem إلى label وonSelected إلى onSelect وactiveColor إلى selectedContentColor وinactiveColor إلى unselectedContentColor وتعديل ترتيب المَعلمات بما يتوافق مع إرشادات المطابقة. (Icb605، b/161809324)
  • Modifier.stateDraggable بالكامل وتمت إعادة تسميته إلى Modifier.s ميزاتable. تم تقديم فئة ScrollableState جديدة، وتمت إعادة هيكلة DrawerState وBottomDrawerState ليكتسب منهما. [Modal/Bottom]لا يقبل DrawerLayout معلمة onStateChange بعد الآن. (I72332، b/148023068)
  • Foundation.shape.corner مُسطَّح على Foundation.share (I46491, b/161887429)
  • تمت إضافة التعليق التوضيحي BETAMaterialApi. تم وضع علامة على مظهر RippleTheme على أنه "تجريبي" (Ic5fa0، b/161784800)
  • تمت إعادة تسمية Material FilledTextField إلى TextField، تمت إعادة تسمية TextField الأساسي إلى BaseTextField لتسهيل اكتشاف واجهة برمجة التطبيقات البسيطة المطلوبة واستخدامها (Ia6242, b/155482676).

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

  • تم إيقاف OnChildPositioned نهائيًا. استخدم OnPositioned على الطفل بدلاً من ذلك. (I87f95، b/162109766)
  • معالجة الإصلاحات العامة لواجهة برمجة التطبيقات (I077bc)
    1. إزالة واجهة OffsetBase غير المستخدمة
    2. فئتا محاذاة الإزاحة وIntoffset للحصول على سطح واجهة برمجة تطبيقات متناسق
    3. أعد تسمية Int Offset.Origin إلى Int Offset.Zero ليتماشى مع واجهة برمجة التطبيقات Offset API
    4. تم نقل طريقة NativeCanvas خارج واجهة Canvas لدعم المستهلكين في إنشاء مثيلات خاصة بهم من Canvas.
    5. تم إنشاء فئة BlankCanvas لإعادة هيكلة التعليمات البرمجية DrawScope لتكون معلمة غير فارغة بدلاً من lateinit ويضمن عدم قابلية القيم الفارغة للحقل
    6. تمت إعادة تسمية تعدادات ClipOp إلى حالة Pascal
    7. تمت إعادة تسمية تعدادات FilterQuality إلى حالة Pascal
    8. تمت إعادة تسمية تعدادات StrokeJoin لتصبح حالة باسكال
    9. تمت إعادة تسمية تعدادات PointMode إلى حالة Pascal
    10. تمت إعادة تسمية تعدادات PaintingStyle لتصبح Pascal Case
    11. تمت إعادة تسمية تعدادات PathFillType إلى حالة Pascal.
    12. تمت إعادة تسمية تعدادات StrokeCap إلى حالة Pascal
    13. تم تحديث تنفيذ DrawCache بحيث يتوقف عن استخدام مَعلمات longinit
    14. تم تحديث DrawScope لكي يتوقف عن استخدام التفويض الكسول لمعلمات fillPaint وStrikePaint الداخلية
    15. صورة محدّثة قابلة للإنشاء لتجنب استخدام Box لتقليل النفقات العامة
    16. تم تعديل صف Outline ليشمل تعليقات توضيحية تشير إلى @Immutable.
    17. تم تحديث PathNode لإضافة تعليقات توضيحية @Immutable لكل تعليمات مسار
    18. تم تحديث التجميع الفرعي لـ Vector لإزالة عمليات التحقق الشرطية المتكررة للمساواة حيث يعالجها الإنشاء بالفعل
    19. طرق إنشائية رفيقة لـ Rect تم إيقافها لصالح الدوال الإنشائية للدوال
    20. تم تحديث فئات Brush ودوال الإنشاء للدوال باستخدام واجهات برمجة التطبيقات @Immutable و @Stable
    21. تم تعديل تعداد VertexMode ليصبح PascalCase
    22. تم تحديث طريقة Drawscope selectPaint لاستبدال معلمات الخط بشكل مشروط على الرسم إذا كانت قد غيّرت
    23. تم تحديث الحجم لإضافة واجهة برمجة تطبيقات تالفة، وإعادة تسمية UnspecifiedSize إلى Unspecified وإزالة الطرق غير المستخدمة
  • نقل مربع الحوار إلى واجهة المستخدم (I47fa6)
  • تمت إزالة SemanticsNodeInteraction.performPartialGesture. استخدِم SemanticsNodeInteraction.performGesture بدلاً من ذلك. (Id9b62)
  • تمت إعادة التسمية SemanticsNodeInteraction.getBoundsInRoot() إلى SemanticsNodeInteraction.getUnclippedBoundsInRoot() (Icafdf، b/161336532)
  • تم تحديث واجهات برمجة التطبيقات للدعم من اليمين إلى اليسار. تمت إضافة LayoutDirection للانغماس، والتي يمكن استخدامها لقراءة اتجاه التنسيق وتغييره. تمت إزالة Modifier.rtl وModifier.ltr. (I080b3)
  • تمت إعادة تسمية Modifier.deternimateProgress إلى Modifier.progressSemantics (I9c0b4)
  • يحدّث Material-icons-extended بأحدث الرموز التي تمت إضافتها إلى Material.io/icons (I4b1d3)
  • يمكنك طلب تحديد النوع T بشكل صريح من أجلtransitDefinition. (I1aded)
  • تم إيقاف Modifier.plus، لذا استخدِم Modifier.ثم بدلاً من ذلك. تقدّم القيمة "ثم" إشارة أقوى للطلب، بينما تحظر أيضًا كتابة Modifier.padding().background() + anotherModifier، التي تقسّم السلسلة وتصعب قراءتها (Iedd58، b/161529964)
  • تمت إعادة تسمية 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 وReact وFlutter).
    • قرار يمكن التراجع عنه يمكننا دائمًا إعادة استخدام @Model في وقت لاحق.
    • تساعد هذه الخطوة في إزالة حالات استخدام الحالات غير المعتادة والأسئلة التي يصعب الإجابة عنها بشأن ضبط @Model كأشياء نحتاج إلى معالجتها.
    • @Model فئات بيانات، يساوي، رمز تجزئة، إلخ
    • كيف تم رصد بعض السمات والخصائص الأخرى التي لم يتم رصدها؟
    • كيف يمكنني تحديد المساواة الهيكلية مقابل المرجعية لاستخدامها في الملاحظة؟
    • تقليل "السحر" في النظام. الحد من احتمالية افتراض شخص ما أن النظام كان أذكى مما هو عليه (أي معرفة كيفية التمييز بين القائمة)
    • تجعل دقة الملاحظة أكثر سهولة.
    • تحسين القدرة على إعادة الهيكلة من خاصية متغيّر -> في الفئة
    • إمكانية توفير فرص لإجراء تحسينات مصنوعة يدويًا خاصة بالولاية
    • يتماشى بشكل أوثق مع بقية المنظومة المتكاملة ويقلل من الغموض بشأن غير قابل للتغيير أو أننا "نتبنى حالة قابلة للتغيير"

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

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

    @Model class Position(
     var x: Int,
     var y: Int
    )
    
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    الإجراء البديل 1: استخدام State<OriginalClass> وإنشاء نُسخ

    وقد أصبح هذا المنهج أسهل باستخدام فئات بيانات Kotlin. وبشكل أساسي، حوِّل جميع سمات var السابقة إلى سمات val لفئة بيانات، ثم استخدِم state بدلاً من remember، وخصِّص قيمة الحالة للنُسخ المستنسَخة من القيمة الأصلية باستخدام طريقة الملاءمة لفئة البيانات copy(...).

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

    data class Position(
     val x: Int,
     val y: Int
    )
    
    @Composable fun Example() {
     var p by state { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p = p.copy(x=it) }
       onYChange={ p = p.copy(y=it) }
     )
    }
    

    البديل 2: استخدام mutableStateOf وتفويض الملكية

    وقد أصبح هذا الأسلوب أكثر سهولة باستخدام تفويضات المواقع الإلكترونية في Kotlin وواجهة برمجة التطبيقات mutableStateOf التي تتيح لك إنشاء مثيلات MutableState خارج نطاق الإنشاء. في الأساس، يجب استبدال جميع سمات var للفئة الأصلية بسمات var واستخدام mutableStateOf كمفوّض للمواقع الإلكترونية. ومن مزايا هذه الفئة أن استخدام الفئة لن يتغير على الإطلاق، بل على تطبيقها داخليًا فقط. ومع ذلك، فإن السلوك ليس مطابقًا تمامًا للمثال الأصلي، حيث تتم الآن ملاحظة/الاشتراك في كل خاصية على حدة، وبالتالي فإن عمليات إعادة التركيب التي تراها بعد إعادة الهيكلة هذه قد تكون أكثر تحديدًا (وهو أمر جيد).

    class Position(x: Int, y: Int) {
     var x by mutableStateOf(x)
     var y by mutableStateOf(y)
    }
    
    // source of Example is identical to original
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    (I409e8 وb/152050010 وb/146362815 وb/146342522 وb/143413369 وb/135715219 وb/143163။

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • تمت إضافة مكون Dropdownالقائمة في ui-material، وهو تنفيذ قائمة Material Design. (I9bb3d)

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

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

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

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

  • تتبع الأزرار التي تم إيقافها الآن مواصفات Material Design (I47dcb، b/155076924)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • الأطفال (Ia6d19)

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

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

  • تم تغيير واجهات برمجة تطبيقات MaterialTheme، مثل MaterialTheme.colors() وMaterialTheme.typography() لتكون خصائص بدلاً من دوال. عليك إزالة الأقواس من الطلبات الحالية، وليس من المتوقَّع أن يؤدي ذلك إلى أي تغيير في السلوك. (I3565a)

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

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

  • أصبح تطبيق Ripple الآن "معدِّل". في حين أن الاستخدام المقترح لم يتم تحويله بعد هو "Clickable(onClick = { ... }, modifier = ripple())" (Ie5200، b/151331852، b/150060763)

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

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

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

  • تمّت إزالة Snackbar API التي تتضمّن مَعلمات السلسلة لصالح استخدام الحِمل الزائد الذي يقبل ملفات lambda القابلة للإنشاء. راجع نماذج محدّثة لمعلومات الاستخدام (I55f80)

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

  • تمت إضافة مكوِّن Bottom Navigation، ويمكنك الاطّلاع على المستندات والنماذج لمعلومات الاستخدام (I731a0).

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

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

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

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

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

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

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

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

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

  • تم إيقاف FocusModifier نهائيًا لصالح Modifier.focus وModifier.focusRequester وModifier.focusMonitorer تم إيقاف FocusState وFocusStepState لتحل محله FocusState2 (I46919 وb/160822875 وb/160922136).
  • تم إيقاف كل من تطبيق "VerticalScroller" (التمرير العمودي) و"oriziontal Scroller" نهائيًا. يمكنك استخدام ScrollableColumn و ScrollableRow للحصول على تجربة مضمنة مع سلوك العمود/الصف والمعلمات، أو Modifier.vertical Scroll وModifier.horizontal Scroll على العنصر الخاص بك. وبالمثل، تم إيقاف ScrollerPosition نهائيًا لصالح ScrollState (I400ce وb/157225838 وb/149460415 وb/154105299).
  • تمت إعادة صياغة واجهتَي برمجة التطبيقات Modifier.draggable وModifier.scrollable. تمت إزالة DragDirection لصالح ميزة "الاتجاه". تم تبسيط الحالة المطلوبة للانتقال للأعلى أو للأسفل. تمت إعادة تسمية ScrollableState لتصبح أداة ScrollableController (Iab63c، b/149460415).
  • تمت إعادة تسمية runOnIdleCompose إلى runOnIdle (I83607)
  • تستخدم الآن خصائص الدلالات ذات القيمة الفردية نمط استدعاء. على سبيل المثال، تمت كتابة 'semantics {هناك = true }' الآن بالشكل: 'semantics { تؤثّريًا() }'. (Ic1afd، b/145951226، b/145955412)
  • تمت إعادة تسمية العديد من واجهات برمجة التطبيقات التجريبية لتصبح أكثر سهولة. تمت إعادة تسمية جميع واجهات برمجة تطبيقات FindXYZ إلى onNodeXYZ. تمت إعادة تسمية جميع واجهات برمجة تطبيقات doXYZ إلىperformXYZ. (I7f164)
  • تم تغيير واجهة برمجة تطبيقات transitionState لعرض TransitionState بدلاً من تمرير TransitionState إلى عناصر فرعية. وهذا يجعل واجهة برمجة التطبيقات أكثر اتساقًا مع واجهات برمجة تطبيقات ananimate(). (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 بدلاً من الاعتماد على منصات إنشاء (Ica0b4)
  • يظهر مفتاح التبديل الآن في حالة الإيقاف عند ضبط enabled على "خطأ" (If4624، b/155941869، b/159331694)
  • تمت إعادة تسمية Modifier.tag إلى Modifier.layoutId، لتجنّب حدوث أي التباس مع Modifier.testTag. (I995f0)
  • مواضع Int لخط المحاذاة التي تم إرجاعها من Placeable#get(AlignmentLine) أصبحت الآن غير فارغة. إذا كان خط المحاذاة الذي تم طلبه مفقودًا، سيتم عرض AuthenticationLine.Unspecified. (I896c5، b/158134875)
  • فئة النطاق الجغرافي المُعاد تصميمها لتكون فئة مضمّنة. تمت إزالة طرق الإنشاء المصاحبة لصالح الدالة الإنشائية للدالة ذات المعلمة التلقائية لجعل نصف القطر على المحور y مطابقًا للمعلَمة الإلزامية نصف القطر للمحور x.

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

  • من أجل دمج عدد الفئات المستخدمة لتمثيل معلومات تحديد الموضع، عليك توحيد استخدام فئة الإزاحة بدلاً من PxPosition. يوفر هذا فوائد الفئة المضمنة للاستفادة من قيمة طويلة لحزمة 2 من القيم العائمة لتمثيل إزاحة x وy ممثلة كأعداد عشرية. (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)

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

  • تم إيقاف TestTag نهائيًا الآن. استخدِم Modifier.testTag بدلاً منها. (If5110، b/157173105)

  • يتضمّن مؤشر "TextField" رسمًا متحركًا وامضًا (Id10a7).

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

  • يوفّر VerticalScroller الآن ميزة "العمود" بطريقة غير تقليدية. يوفّر "التمرير الأفقي" الآن ميزة "الصفوف" بطريقة مبتكرة. (Ieca5d، b/157020670)

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

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

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

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

  • تم إيقاف نقطة التكوين القابلة للإنشاء في ControlsLine Offset نهائيًا، يُرجى استخدام عنصر التعديل المقدَّر نسبيةPaddingFrom() بدلاً من ذلك. تمت إزالة CenterAlignmentLine القابل للإنشاء. (I60107)

  • تم تغيير واجهة برمجة التطبيقات اللاحقة لـ lambda في WithConstraints. والآن، بدلًا من معلّمتين، يتوفر نطاق للمستلم (بالإضافة إلى القيود) وLayoutDirection يوفِّر خصائص min width وmax width وminHeight وmaxHeight في Dp (I91b9a وb/149979702).

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

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

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

    تمت إضافة CanvasScopeعيّن كما تم تحديث التطبيق التجريبي لتضمين عرض توضيحي للرسومات التوضيحية (Ifd86d)

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

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

  • تم تغيير اسم LayoutModifier2 إلى LayoutModifier. (Id29f3)

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

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

  • تحتوي دوال القياس الأساسية في Layout وLayoutModifier2 على جهاز استقبال IntrinsicmeasureScope الآن يوفّر واجهة برمجة تطبيقات طلبات البحث الأساسية مع اتجاه تصميم يتم نشره بشكل ضمني. (Id9945)

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

  • تم نقل شكل المستطيل من androidx.ui.foundation.shape.* إلى androidx.ui.graphics.* (Ia74d5، b/154507984)

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

  • تمت إضافة معلمتي verticalGravity وhorizontalGravity إلى "الصف" والعمود، على التوالي. (I7dc5a)

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

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

  • تتم إزالة ServiceContentColor، ولكن يمكنك بدلاً من ذلك استخدام ContentColorبعث المباشر مع Providers (Iee942).

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

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

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

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

    • تم إنشاء نطاق المستلم لـ draw() ContentDrawScope
    • تمت إزالة جميع المعلمات في draw()
    • يحتوي DrawScope على الواجهة نفسها المُستخدَمة في تطبيق CanvasScope.
    • يحتوي ContentDrawScope على طريقة drawContent() (Ibaced، b/152919067)
  • runOnIdleCompose وrunOnUiThread هما الآن دالتان عموميتان بدلاً من الطرق في ComposeTestRules. (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 + Layout.Center أو بأحد العناصر القابلة للإنشاء في Box أو Stack مع تطبيق معدِّلات مناسبة (Idf5e0).

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

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

  • تمت إعادة تسمية Layout Flex إلى Layout Weight (وزن التخطيط). تمت إعادة تسمية المعلمة المحدودة للتعبئة. (If4738)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • تم دمج الكثافة وDensityScope في واجهة واحدة. يمكنك الآن استخدام Density الربط بواقع المحيطات بدلاً من استخدام "amindensity() ". بدلاً من withdensity(density) only with(density) (I11cb1)

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

  • تُظهر برامج التمرير الآن سلوك الحركة السريعة في نظام التشغيل Android. (I922af، b/147493715)

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