Compose Foundation

يمكنك كتابة تطبيقات Jetpack Compose باستخدام الوحدات الأساسية الجاهزة للاستخدام وتوسيع الأساس لإنشاء أجزاء نظام التصميم الخاصة بك.
التعديل الأخير الإصدار المستقر سحب المرشح الإصدار التجريبي إصدار أولي
4 سبتمبر 2024 1.7.0 - - 1.8.0-alpha01

البنية

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

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

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

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

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

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

Groovy

dependencies {
    implementation "androidx.compose.foundation:foundation:1.7.0"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.foundation:foundation:1.7.0")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

ملاحظات

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

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

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

الإصدار 1.8

الإصدار 1.8.0-alpha01

4 سبتمبر 2024

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

الإصدار 1.7

الإصدار 1.7.0

4 سبتمبر 2024

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

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

  • تم تحسين أداء Modifier.clickable وModifier.focusable وModifier.indication وModifier.scrollable وModifier.draggable بشكل كبير. في إطار هذه الجهود، تم إجراء التغييرات التالية على واجهة برمجة التطبيقات بالإضافة إلى التغييرات الداخلية.
    • تمت إضافة واجهة برمجة تطبيقات مؤشر جديدة، IndicationNodeFactory. يؤدي ذلك إلى تحقيق عمليات تنفيذ "المؤشرات" بشكل أفضل مقارنةً بواجهة برمجة تطبيقات rememberUpdatedInstance السابقة (المتوقّفة نهائيًا الآن). للحصول على معلومات عن النقل، يمكنك الاطّلاع على developer.android.com.
    • تقبل العناصر "clickable" / "combinedClickable" / "selectable" / "toggleable" الآن مَعلمة MutableInteractionSource قابلة للقيم الفارغة. إذا كانت القيمة "خالية" وكان المؤشر المقدَّم هو IndicationNodeFactory، لا يمكن إنشاء الإشارة إلا عند الحاجة إليها، ما يؤدي إلى تحسين الأداء. في حال عدم الرفع واستخدام MutableInteractionSource، يُنصح باستخدام قيمة فارغة بدلاً من تجاوز remember { MutableInteractionSource() }.
    • تم إيقاف Indication#rememberUpdatedInstance نهائيًا. تنطوي على عقوبة عالية لا مفر منها للأداء، وتمنع التحسينات الأخرى. وبدلاً من ذلك، عليك استخدام واجهة برمجة تطبيقات IndicationNodeFactory الجديدة.
  • أصبح استخدام BasicTextField باستخدام TextFieldState مستقرًا الآن، وننصح جميع مواقع الاتصال ببدء نقل البيانات من BasicTextField(value, onValueChange) إلى BasicTextField(TextFieldState).
  • تم إيقاف ClickableText نهائيًا. لإضافة روابط قابلة للنقر إلى النص، استخدِم BasicText مع التعليق التوضيحي الجديد LinkAnnotation في AnnotatedString. تسمح السمة LinkAnnotation بنمط مخصّص استنادًا إلى حالة الرابط (على سبيل المثال، عند التركيز عليها مع تمرير مؤشر الماوس).
  • نقدّم لك ContextualFlowRow وEnhanced FlowRow/Column مع MaxLines وOverflow. يسرّنا الإعلان عن تحسينات على الإصدارَين التجريبيَين FlowRow وFlowColumn، وهما الآن يتضمنان maxLines وإمكانية استخدام الميزات الإضافية، بالإضافة إلى إطلاق الميزتَين ContextualFlowRow وContextualFlowColumn. تم تصميم هذا التحديث لتوفير أفضل أداء ممكن، حيث تُعدّ السمة ContextualFlow* مثالية لعدد كبير من العناصر التي تستخدم إعداد maxLines الصغير، كما تؤدي إجراءات +N الديناميكية إلى عرض المزيد من الأزرار، ويشكّل FlowRow وFlowColumn خيارَين مثاليَين لعدد صغير من العناصر التي تقل عن 100 عنصر. ملاحظة مهمة: للحفاظ على السلوك الحالي في FlowRow أو FlowColumn حيث يتم إنشاء جميع العناصر بغض النظر عما إذا كانت تتناسب مع المحور المتقاطع كحد أقصى، اضبط التجاوز على FlowRowOverflow.Visible أو FlowColumnOverflow.Visible أثناء الإعداد. يمكنك استكشاف ContextualFlowRowSample وFlowRowSample للحصول على أمثلة على هذه الميزات الجديدة عمليًا. (Ib9135، b/293577082)
  • تمت إتاحة استخدام الصور المتحركة لشكل العنصر واختفائه في LazyColumn وLazyRow. في السابق، كان من الممكن إضافة مفتاح التعديل Modifier.animateItemPlacement() لإتاحة الصور المتحركة المتعلّقة بمواضع الإعلانات (إعادة الترتيب). لقد أوقفنا هذا التعديل نهائيًا وقدّمنا أداة تعديل جديدة غير تجريبية اسمها Modifier.animateItem() تتيح لك إمكانية استخدام أنواع الصور المتحركة الثلاثة كلها: المظهر (الاختفاء للداخل) والاختفاء (الاختفاء التدريجي) وإعادة الترتيب. (I2d7f7، b/150812265)
  • تم تنفيذ الدعم التجريبي للقطات الشاشة الطويلة في حاويات التمرير في Compose باستخدام واجهة برمجة تطبيقات Android الرسمية (ScrollCaptureCallback).
  • سيتم استبدال ميزة "السحب والنقل" لـ NestedScroll بـ UserInput وSideEffect لاستيعاب التعريف الموسّع لهذه المصادر التي تتضمن الآن الصور المتحركة (التأثير الجانبي) وعجلة الماوس ولوحة المفاتيح (UserInput).
  • يمكن وضع علامة "عاجلة" على طلبات الجلب المُسبَق لتطبيق LazyLayout الآن، ما يعني أننا نتوقّع أن تكون هناك حاجة إلى هذا العنصر في الإطار التالي ونريد تجاهل ميزانية الإطار للتأكّد من تنفيذ المزيد من الإجراءات مسبقًا (Id513f).
  • إتاحة ميزة الكتابة بخط اليد بقلم الشاشة على الأجهزة بعد Android U (I002e4)
  • تمت ترقية العديد من واجهات برمجة التطبيقات إلى واجهات برمجة تطبيقات مستقرة
    • أجهزة النداء والمحاذاة ومساحات النوافذ الداخلية

الإصدار 1.7.0-rc01

21 آب (أغسطس) 2024

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

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

  • تم إصلاح الانحدار حيث حدث العطل عند التركيز على أي عنصر داخل عنصر رئيسي يمكن التركيز عليه (أو النقر عليه) وتعطيله. (b/317561689)

الإصدار 1.7.0-beta07

7 أغسطس 2024

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

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

  • ستعرض دوال SemanticsNodeInteraction ذات الصلة بالإدخال النصي performTextReplacement وperformTextInput وperformTextClearance أخطاء تأكيد عند استدعائها في قسم "القراءة فقط" TextFields. (I4ae8f)
  • تم إصلاح خلل مرئي في الارتباطات التشعبية. (I23311)
  • تم إصلاح معدِّل contentReceiver لا يعمل مع بعض أدوات IME.
  • إنشاء السرعة: لمنع نشر قيم NaN في واجهة مستخدم Compose ومؤسسة.

الإصدار 1.7.0-beta06

24 يوليو 2024

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

الإصدار 1.7.0-beta05

10 يوليو 2024

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

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

  • حل مشكلة معالجة قيم Nan في SnapFlingBehavior وجهاز النداء

الإصدار 1.7.0-beta04

26 يونيو 2024

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

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

  • تجنُّب الأعطال عند قياس أسطر النص الكبيرة جدًا (على سبيل المثال، 10 آلاف حرف) (8157ab)
  • إصلاح قياس النص الكبير جدًا الذي يتسبّب في حدوث عطل في BasicTextField الجديد (6b7575)
  • إلغاء تغيير السلوك في قياس الصف/العمود الذي يوقف استخدام النص في سيناريوهات معيّنة (69e8ba)

الإصدار 1.7.0-beta03

12 يونيو 2024

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

الإصدار 1.7.0-beta02

29 مايو 2024

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

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

  • إضافة واجهة برمجة تطبيقات تجريبية لضبط سلوك الجلب المُسبَق لواجهة LazyGrids المشابهة لواجهة برمجة التطبيقات التجريبية الحالية في LazyLists ويشمل ذلك إمكانية الجلب المسبق للعناصر في LazyGrids المدمجة. على غرار LazyListPrefetchStrategy، فإن الإعداد التلقائي للتنفيذ هو جلب أول عنصرين مدمجين من كل شبكة، ولكن يمكن ضبط ذلك من خلال واجهتَي برمجة التطبيقات LazyGridPrefetchStrategy(nestedPrefetchItemCount) وLazyListPrefetchStrategy#onNestedPrefetch الجديدتين. (I591c4)
  • تمت إعادة تسمية SemanticsProperties.Editable إلى IsEditable وتغيير SemanticsPropertyReceiver.editable إلى قيمة isEditable. أصبحت السمة الآن منطقية ويتم تحديدها دائمًا من خلال حقول نصية. (I8acd8)
  • تم نقل القيم التلقائية لـ basicMarquee إلى كائن MarqueeDefaults. (I12ff6)
  • تمت إعادة تسمية المعلَمة delayMillis basicMarquee إلى repeatDelayMillis. (I12ff6)
  • تحديث واجهة برمجة التطبيقات لتنسيق الروابط: تم نقل TextLinkStyles إلى TextStyle وإزالة TextDefaults من المادة (I5477b).

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

  • تمت إعادة تسمية "LayoutCoordinates.introducesFrameOfReference" إلى "LayoutCoordinates.introducesMotionFrameOfReference" لتوضيح الغرض منه بشكل أفضل. تمت إعادة تسمية الدالة ذات الصلة لاحتساب الإحداثيات بناءً على تلك العلامة. (I3a330)
  • تمت إزالة "الخيار التلقائي". من سمات MarqueeDefaults. (I1d8a0)
  • تمت إزالة 'Marquee' من MarqueeDefaults موقعًا. (Iad4f4)
  • تمت إزالة "TextLinkStyles" من الصف TextStyle. بدلاً من ذلك، تكون TextLinkStyles جزءًا من الدالة الإنشائية LinkAnntation والطريقة AnnotatedString.fromHtml (I90b2b).
  • تم إصلاح الخطأ الذي كان ينبثق جهاز النداء عند الاندفاع نحو الحد بينما كان ثابتًا بالفعل عند الحد. (I9f373، b/339171222)
  • يضم الجزء BTF2 الآن إيماءات تحديد الماوس الصحيحة. (Ibe8c6)

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

  • إعادة إرسال "إنشاء محتوى حساب وقت الإنشاء/قياس الوقت استنادًا إلى الجلب المُسبَق لتحسين الدقة" (Iea622)
  • إنشاء محتوى لحساب وقت الإنشاء/قياس الوقت استنادًا إلى الجلب المُسبَق لتحسين الدقة (Ibccb1)
  • إتاحة مفاتيح تعديل WindowInsetsPadding من مجموعة المصادر المشتركة (I070b2)

الإصدار 1.7.0-beta01

14 مايو 2024

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

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

  • تمت إضافة السمة KeyboardOptions.shouldShowKeyboardOnFocus مرة أخرى لأنّها مخفيّة للتوافق مع النظام الثنائي. (I15cfe)
  • تعكس Modifier.anchoredDraggable الآن دلتا السحب تلقائيًا للمكوّنات ذات الاتجاه الأفقي عند استخدامها بتنسيق من اليمين إلى اليسار. (I3c6d9)
  • تغيّر اسم AnnotatedString.hasEqualsAnnotations ليصبح الآن hasEqualAnnotations. (I685c0)
  • تم تحديث واجهة برمجة التطبيقات للحصول على روابط ذات طابع متعدد الأبعاد في نص. وعلى وجه التحديد، تمت إزالة الطرق من TextDefaults لإنشاء LinkAnnotations ذي موضوع معيّن وتحليل رموز HTML باستخدام روابط ذات مواضيع محدّدة. بدلاً من ذلك، تمت إضافة فئة TextLinkStyles تسمح بتصميم الروابط كمَعلمة في النص القابل للإنشاء. (I31b93)
  • تم استبدال onDragStarted وonDragStopped باستدعاءات غير معلَّقة. (I59de8)

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

  • تم إصلاح الخطأ الذي كان يؤدي إلى تعطُّل جهاز النداء عندما كانت قيمة "contentPadding" أكبر من القيود الواردة. يفرض جهاز النداء الآن القيم السالبة التي يتم عرضها من PageSize إلى 0. (Iba5d8، b/314008560)

الإصدار 1.7.0-alpha08

1 مايو 2024

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

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

  • تمت إضافة قائمة سياقات للنقر بزر الماوس الأيمن إلى BasicTextField وSelectionContainer تحتوي على عناصر لقص ونسخ ولصق وتحديد جميع الإجراءات. (If8c93 وIa2b49 وI6f268)

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

  • يمكن وضع علامة "عاجلة" على طلبات الجلب المُسبَق لتطبيق LazyLayout الآن، ما يعني أننا نتوقّع أن تكون هناك حاجة إلى هذا العنصر في الإطار التالي ونريد تجاهل ميزانية الإطار للتأكّد من تنفيذ المزيد من الإجراءات مسبقًا (Id513f).
  • تمت إعادة تسمية "isPositionedByParentWithDirectManipulation" إلى "introducesFrameOfReference". يُرجى العِلم أنّ لهذه السياسة الآن تأثير عكسي، أي أنّ معظم LayoutCoordinates تقدِّم تلقائيًا إطارًا مرجعيًا، وتكون السمة "خطأ" فقط عندما يتم وضعها تحت التلاعب المباشر. لطلب البحث عن موضع مع تلك التي تقدم إطارًا مرجعيًا فقط، استخدِم positionInLocalFrameOfReference(...). أو positionInLocalLookaheadFrameOfReference من LookaheadScope. (Ifc5f7)
  • تمت إعادة تسمية "onClicked" إلى "onClick" داخل "LinkInteractionListener" (Iaa35c).
  • تغيير الإجراء lambda في getScrollViewportLength وفقًا لملاحظات مجلس واجهة برمجة التطبيقات. (Ibc74a)
  • تمت إعادة تسمية واجهات برمجة التطبيقات لتفويض الكتابة بخط اليد بقلم الشاشة. (Ica45f، b/327271923)
  • إعادة تسمية "TextInclusionStrategy.isInside" إلى "isIncluded" جعل نوع الإرجاع Paragraph/MultiParagraph#getRangeForRect() غير قابل للقيم الفارغة. (I51f26)

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

  • تمت إضافة خيار "اختيار الكل". إلى جميع القوائم السياقية النصية في SelectionContainer. (Ib750e، b/240143283)
  • تم إصلاح التقاط لقطات شاشة طويلة في حاويات التمرير باستخدام reverseScrolling=true. (I7c59c)
  • تم إصلاح المشكلة المتمثلة في تغيير currentValue في AnchoredDraggableState عند الاقتراب من حدود الولاية. (Iea30b، وb/333846848)

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

  • تمت إعادة التسمية PrefetchExecutor -> "PrefetchScheduler" للتعبير عن مسؤولياته بشكل أفضل. (Ib9154)
  • تمت إضافة إمكانية الجلب المسبق للعناصر في LazyLists المدمجة (مثل LazyColumn الذي يعرض LazyRows مدمَجة). من المتوقّع أن يؤدي هذا التغيير إلى تقليل انخفاض عدد اللقطات في الثانية أثناء التمرير لهذه LazyLists. الإعداد التلقائي للتنفيذ هو جلب أول عنصرين مدمجين، ولكن يمكن التحكّم في هذا السلوك من خلال واجهتَي برمجة التطبيقات LazyLayoutPrefetchStrategy(nestedPrefetchItemCount) وLazyListPrefetchStrategy#onNestedPrefetch الجديدتَين. (I51952)

الإصدار 1.7.0-alpha07

17 أبريل 2024

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

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

  • تمت إضافة عنصر TextDefaults يحتوي على طرق لإنشاء LinkAnnotation وتحليل السلسلة التي تحمل علامة HTML والتي تطبّق MaterialTheme على الروابط. (I98532، b/139312671)
  • تمت إتاحة الصور المتحركة لمظهر العنصر واختفائه في LazyVerticalGrid وLazyHorizontalGrid. في السابق، كان من الممكن إضافة مفتاح التعديل Modifier.animateItemPlacement() لإتاحة الصور المتحركة المتعلّقة بمواضع الإعلانات (إعادة الترتيب). لقد أوقفنا هذا التعديل نهائيًا وقدّمنا أداة تعديل جديدة غير تجريبية اسمها Modifier.animateItem() تتيح لك إمكانية استخدام أنواع الصور المتحركة الثلاثة كلها: المظهر (الاختفاء للداخل) والاختفاء (الاختفاء التدريجي) وإعادة الترتيب. (Ib7d12، b/330510929)
  • تمت إتاحة استخدام الصور المتحركة لشكل العنصر واختفائه في LazyVerticalStaggeredGrid وLazyHorizontalStaggeredGrid. في السابق، كان من الممكن إضافة مفتاح التعديل Modifier.animateItemPlacement() لإتاحة الصور المتحركة المتعلّقة بمواضع الإعلانات (إعادة الترتيب). لقد أوقفنا هذا التعديل نهائيًا وقدّمنا أداة تعديل جديدة غير تجريبية اسمها Modifier.animateItem() تتيح لك إمكانية استخدام أنواع الصور المتحركة الثلاثة كلها: المظهر (الاختفاء للداخل) والاختفاء (الاختفاء التدريجي) وإعادة الترتيب. (I69bc9، b/330511290)

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

  • تتم إضافة "ContextMenuColors" وقيمة ProvidableCompositionLocal المرتبطة بـ LocalContextMenuTheme. يمكن تعديل ألوان قائمة السياق في الحقول النصية والنص القابل للاختيار من خلال توفير التركيبة المحلية. (Ifa154)
  • تم تفعيل خيار تصميم حالة الضغط على الروابط النصية بالإضافة إلى النمط العادي، حيث تم التمرير والتركيز على الروابط النصية. (I5f864، b/139312671)
  • أدخِل ViewConfiguration.HandwritingGestureLineMargin لإيماءات الكتابة بخط اليد. دعم إيماءة الكتابة بخط اليد باللغة BasicTextField (Ie6e13، وb/325660505)
  • تمت إزالة DelegatableNode.scrollIntoView للإصدار 1.7 لأنّه لم يكن لدينا الوقت لإكمال عملية تثبيت بقية سطح واجهة برمجة التطبيقات ذات الصلة. ستتم إعادة تقديم هذه الدالة في الإصدار 1.8 (I6cf61 وb/333421581 وb/332900232).
  • عند طلب البحث عن إحداثيات التنسيق، يمكنك الآن استخدام الوسيطة excludeDirectManipulationOffset لاستبعاد الإزاحة التي تم ضبطها من خلال التنسيقات الرئيسية التي وضعت عناصرها الثانوية باستخدام Placeable.PlacementScope.withDirectManipulationPlacement. وبالمثل، فإنّ التنسيق الذي يغيِّر موضع العناصر الثانوية كثيرًا قد يضعها الآن باستخدام ميزة "withDirectManipulationPlacement" (مثل "التمرير"، يتم تنفيذها تلقائيًا). يساعد هذا الإجراء في جعل الصور المتحركة المستندة إلى approachLayout أكثر سهولة، وأصبح بإمكان المستخدم الآن التمييز بين التعويض الذي سيتم إنشاؤه من خلال الصور المتحركة، والعناصر التي يمكن تطبيقها مباشرةً عند اتخاذ قرار تعديل أسلوب الحركة. (I60ec7)
  • أدخِل requestScrollToItem لـ LazyStaggeredGrid. وبالنسبة إلى كل تمريرة قياس، يمكن للعميل الآن إيقاف الحفاظ على الفهرس استنادًا إلى المفتاح من خلال طلب requestScrollToItem. ولا يؤدي ذلك إلى تغيير السلوك الحالي بأي شكل من الأشكال ما لم يتم استدعاء requestScrollToItem. (I63983)
  • تقديم "requestScrollToPage" في جهاز النداء وبالنسبة إلى كل تمريرة قياس، يمكن للعميل الآن إيقاف الحفاظ على الفهرس استنادًا إلى المفتاح من خلال طلب requestScrollToPage. ولا يؤدي ذلك إلى تغيير السلوك الحالي بأي شكل من الأشكال ما لم يتم استدعاء requestScrollToPage. (Ic4213)
  • تم تقديم requestScrollToItem للنطاق LazyGrids. وبالنسبة إلى كل تمريرة قياس، يمكن للعميل الآن إيقاف الحفاظ على الفهرس استنادًا إلى المفتاح من خلال طلب requestScrollToItem. ولا يؤدي ذلك إلى تغيير السلوك الحالي بأي شكل من الأشكال ما لم يتم استدعاء requestScrollToItem. (I0a7a0)
  • تم وضع علامة متوقّفة نهائيًا على تطبيق ClickableText. لإضافة روابط إلى النص، عليك إنشاء AnnotatedString باستخدام LinkAnnotation مطابق لرابطك وضبط AnnotatedString هذا على عنصر Text القابل للإنشاء (I34d4b، b/323346994).
  • تم إيقاف UrlAnnotation نهائيًا، ويمكنك استخدام LinkAnnotation.Url بدلاً منه. إذا كنت تستخدم تصاميم "المادة الأساسية"، استخدِم كائن TextDefaults لإنشاء تعليق توضيحي مع تطبيق "نسق المواد" عليه (I8d180 وb/323346545).
  • تمت إعادة تسمية "String.parseAsHtml" إلى "AnnotatedString.Companion.fromHtml" (I43dcd).
  • تمت إضافة وسيطات النمط (linkStyle، focusedLinkStyle، hoveredLinkStyle) وأداة استماع للتفاعل مع الرابط إلى طريقة parseAsHtml. عند تحليل السلسلة التي تحمل علامة HTML باستخدام علامات <a>، ستنشئ الطريقة LinkAnnotation.Url لكل علامة من هذا النوع وتمرر كائنات الأنماط وأداة استماع التفاعل للرابط إلى كل تعليق توضيحي. (I7c977)
  • يحصل LinkAnnotation الآن على وسيطات النمط المستندة إلى الحالة وLinkInteractionListener. أضِف هذا التعليق التوضيحي إلى AnnotatedString للحصول على رابط تشعّبي. من خلال ضبط focusedState و/أو hoveredState، يمكنك تحديد الإعدادات المرئية للروابط عندما يتم التركيز عليها و/أو تمرير مؤشر الماوس فوقها. (I81ce4، b/139312671)
  • تمّت إزالة علامة الميزة الخاصة بلقطات الشاشة الطويلة. (I28648، b/329128246)
  • سيعرض تطبيق LazyColumn الآن العناوين الثابتة بشكل صحيح في لقطات الشاشة الطويلة. (I8d239، b/329296635)
  • تم تثبيت أغلب واجهات برمجة التطبيقات التجريبية المتبقية التي تم تقديمها مع BasicTextField الجديد. (I714e2)
  • تمت إضافة مَعلمة textObfuscationCharacter إلى BasicSecureTextField التي تتحكّم في الحرف الذي يجب استخدامه مع إخفاء مفاتيح فك تشفير المحتوى. (I0588b)
  • سيتم استبدال ميزة "السحب والنقل" لـ NestedScroll بـ UserInput وSideEffect لاستيعاب التعريف الموسّع لهذه المصادر التي تتضمن الآن الصور المتحركة (التأثير الجانبي) وعجلة الماوس ولوحة المفاتيح (UserInput). (I40579)
  • قدِّم LocalBringIntoViewSpec، وهو سلوك يعتمد على تمرير التركيز على النظام الأساسي ويتم تطبيقه على طبقة التعديل القابلة للتمرير. (I27aa5، b/317453911)
  • تمت إزالة TextFieldCharSequence. تم استبدال TextFieldBuffer.originalValues بـ TextFieldBuffer.originalText وTextFieldBuffer.originalSelection. (I2c7d6)
  • لم يعُد ImeOptions.hintLocales قابلاً للقيم الفارغة. إذا أردت تمرير قائمة لغة فارغة، يُرجى استخدام LocaleList.Empty. (Ic5bc4)
  • تمت إعادة تسمية "getOffsetFractionForPage" إلى "getOffsetDistanceInPages". (Ia05e2)

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

  • عند ضم InputTransformations إلى next، يتم الآن دمج KeyboardOptions بشكل صحيح مع خيارات فردية باستخدام طريقة KeyboardOptions.merge الجديدة. (Ie5304، b/295951492)
  • لم يراعي targetValue في AnchoredDraggableState الآن حدود موضع الإعلان بعد الآن. أصبح مستوى الحد الضمني الآن 50%، ما يعني أنّ قيمة targetValue تتغير عند نقطة المنتصف بين اثنين من أشرطة الارتساء. (I82c2c)

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

  • تمت إعادة تسمية واجهتَي برمجة تطبيقات للتمرير (I56a75).

الإصدار 1.7.0-alpha06

3 أبريل 2024

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

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

  • تمت إتاحة استخدام الصور المتحركة لشكل العنصر واختفائه في LazyColumn وLazyRow. في السابق، كان من الممكن إضافة مفتاح التعديل Modifier.animateItemPlacement() لإتاحة الصور المتحركة المتعلّقة بمواضع الإعلانات (إعادة الترتيب). لقد أوقفنا هذا التعديل نهائيًا وقدّمنا أداة تعديل جديدة غير تجريبية اسمها Modifier.animateItem() تتيح لك إمكانية استخدام أنواع الصور المتحركة الثلاثة كلها: المظهر (الاختفاء للداخل) والاختفاء (الاختفاء التدريجي) وإعادة الترتيب. (I2d7f7، b/150812265)
  • يمكن لعملاء LazyColumn/LazyRow الآن إيقاف الاحتفاظ بالفهرس استنادًا إلى المفتاح لتصريح القياس القادم من خلال استدعاء LazyListState.requestToScroll غير معلَّق. (I98036، b/209652366)
  • تمت إضافة طريقة parseAsHtml للسلاسل ذات الأنماط: تسمح بتحويل السلسلة التي تم وضع علامات HTML عليها إلى AnnotatedString. يُرجى ملاحظة أنّه لا تتوفّر كل العلامات، على سبيل المثال، لن تتمكّن من عرض قوائم التعداد النقطي بعد. (I84d3d)
  • تم تنفيذ الدعم التجريبي للقطات الشاشة الطويلة في حاويات التمرير في Compose باستخدام واجهة برمجة تطبيقات Android الرسمية (ScrollCaptureCallback). هذه الميزة تجريبية وقد لا تتعامل حاليًا مع جميع الحالات بشكل صحيح. ولهذا السبب، تم إيقاف الميزة تلقائيًا في الوقت الحالي. للموافقة، اضبط علامة ComposeFeatureFlag_LongScreenshotsEnabled على "صحيح". ستتم إزالة هذه العلامة قبل الإصدار 1.7 التجريبي. (I2b055، b/329296471)
  • قدِّم واجهة برمجة تطبيقات GraphicsLayer الجديدة لتوفير المزيد من المرونة في موضع وعرض مثيلات GraphicsLayer ولإتاحة ميزات العرض الأساسية بدون الحاجة إلى التنسيق مع عمليات التنفيذ القابلة للتعديل لتحديد مثيلات تعديل GraphicsLayer.

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

  • تحتوي جميع مَعلمات KeyboardOptions الآن على قيمة غير محدّدة تلقائيًا. تمت إضافة طريقة KeyboardOptions.merge.
  • تمت إعادة تسمية "KeyboardOptions.autoCorrect" إلى "autoCorrectEnabled" وجعلها قابلة للإلغاء، حيث تشير القيمة "فارغ" إلى عدم تحديد أي قيمة. (Ia8ba0، b/295951492)
  • تمت إعادة تسمية "outOfBoundsPageCount" إلى "beyondViewportPageCount". (I129c6)
  • تم تغيير قيمة fun ClipEntry.getMetadata() إلى val ClipEntry.clipMetadata. (I50155)
  • تمت إزالة TextFieldState.valueAsFlow(). أفضّل استخدام snapshotFlow { state.text } أو snapshotFlow { TextFieldCharSequence(state.text, state.selection) } (I7d629)
  • تمت إعادة تنظيم مَعلمات InputTransformation.transformInput. تمت إزالة جهة الاتصال "originalValue: TextFieldCharSequence". بدلاً من ذلك، تحمل TextFieldBuffer الآن هذه القيمة بالاسم نفسه. تمت أيضًا إزالة مَعلمة valueWithChanges: TextFieldBuffer. TextFieldBuffer الآن هو نطاق المُستلِم في الدالة. (I919cc)
  • يستخدم كل من الصيغة BasicTextField(state) وBasicSecureTextField الآن KeyboardActionHandler بدلاً من KeyboardActions لمعالجة الإجراءات التي تتخذها لوحة المفاتيح البرمجية. (I58dda)
  • واجهات برمجة التطبيقات لتفويض الكتابة بخط اليد باستخدام قلم الشاشة لدعم الكتابة بخط اليد بقلم الشاشة على المحتوى "الزائف" حقول إدخال النص. (I9c09c، b/327271923)
  • تمت إعادة تسمية "KeyboardOptions.shouldShowKeyboardOnFocus" إلى "showKeyboardOnFocus". (Ib4b7a، b/295951492)
  • تمت إزالة مَعلمة hintMediaTypes من Modifier.contentReceiver. سبق أن تم تشجيع المطوّرين على التحقّق من نوع وسائط TransferableContent الذي تم استلامه لأنّه قد يكون غير متوافق مع hintMediaTypes الذي تم ضبطه. (I82f99)
  • تم إعادة ترتيب معلمات BasicSecureTextField. تمت إزالة المَعلمتَين keyboardType وimeAction لصالح الفئة KeyboardOptions الكاملة مع الحفاظ على الإعدادات التلقائية نفسها المناسبة للسمة BasicSecureTextField. تمت أيضًا إزالة مَعلمة scrollState. (Ibbfa9)
  • تم تغيير نوع TextFieldState.text من TextFieldCharSequence إلى CharSequence فقط. وبالتالي، تمت إضافة TextFieldState.selection: TextRange وTextFieldState.composition: TextRange? لقراءة الاختيار الحالي وقيم التكوين مباشرةً من عنصر الحالة.
  • تمت إزالة TextFieldState.forEachTextValue. (Idb2a2)
  • تمت إزالة الدالتَين ClipboardManager.getClipMetadata وClipboardManager.hasClip. يُرجى استخدام clipEntry.getMetadata() لقراءة البيانات الوصفية لإدخال المقطع الحالي. تحقَّق أيضًا من نتيجة ClipboardManager.getClip إذا كانت فارغة أو لا لمعرفة ما إذا كانت الحافظة تتضمّن مقطعًا حاليًا. (I50498)
  • يقبل ClipboardManager.setClip الآن القيمة "فارغة" لتتمكّن من محو الحافظة. (I7d2e9)
  • يتم تحويل ReceiveContentListener إلى واجهة دالة. بالإضافة إلى ذلك، تتم إزالة حِمل Modifier.receiveContent الزائد الذي يتطلب lambda لأنّ ReceiveContentListener هي واجهة دالة الآن.
  • تمت إعادة تسمية "Modifier.receiveContent" إلى "Modifier.contentReceiver". (I1e6af)
  • تمت إعادة تسمية "TransferableContent.consumeEach" إلى "TransferableContent.consume". (I1e462)
  • تمت ترقية واجهة برمجة التطبيقات rememberTextFieldState إلى واجهة برمجة تطبيقات ثابتة. (I37999)

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

  • تم إصلاح خطأ عدم توافق صيغة BasicTextField(state) مع لوحات مفاتيح CJK(المستندة إلى التركيب). (I54425)
  • تم إصلاح الخطأ الذي كان يمكن أن يشير فيه Modifier.dragAndDropTarget() إلى البيانات القديمة في سيناريوهات معيّنة مع إعادة استخدام Modifier.Node. (I05bb1)
  • تم التراجع عن تغيير حديث في العقد كان يتطلّب إجراء مكالمات AnchoredDraggableState#anchoredDrag في نهاية عملية anchoredDrag. (I95715)

الإصدار 1.7.0-alpha05

20 مارس 2024

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

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

  • تمت إزالة مكان تركيب LocalTextLinkStyle التجريبي لتصميم الروابط التشعّبية. (Iebfa7)
  • تمت إزالة الإلغاء التجريبي للسمة BasicText مع الوسيطة onLinkClicked. وسيتم في المستقبل استخدام واجهة برمجة تطبيقات بديلة لإتاحة الروابط التشعّبية. (I107d5)
  • تمت إزالة الطرق والخصائص ذات الصلة بميزة "نقاط الرموز" ضمن TextFieldState وTextFieldBuffer. تمت أيضًا إزالة لاحقات inChars من واجهات برمجة التطبيقات ذات الصلة بالاختيار والإنشاء. (Ief7ce)
  • سيتم الآن تحديث currentValue في AnchoredDraggable عند المرور بنقطة ارتساء. استخدِم settledValue لتلقّي دلالات currentValue السابقة، ولا يتم تعديلها إلا عند ضبطها على علامة ارتساء. يظهر التقدم الآن كدالة (تتطلّب نقطة بداية ونهاية) بدلاً من خاصية. (Ibe6e8، وb/318707189، وb/298271489، وb/294991954)
  • تمت ترقية BasicTextField(state) وTextFieldState وInputTransformation وOutputTransformation وTextFieldLineLimits وTextFieldDecorator إلى الإصدار الثابت. (I9582b)
  • تم تقديم InterceptPlatformTextInput للمساعدة في كتابة الاختبارات المنخفضة المستوى المتعلّقة بأداة IME وغيرها من حالات الاستخدام المنخفضة المستوى الخاصة بأداة IME. تم إيقاف PlatformTextInputTestOverride نهائيًا. (I862ed، b/322680547)
  • تقسيم restrictedConstraints() إلى طريقتَين: fitPrioritizingWidth() وfitPrioritizingHeight() (I6d7fd)

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

  • تمت إضافة واجهتَي برمجة تطبيقات جديدتين isLastScrollForward/isLastScrollBackward للتحقّق من اتجاه التمرير لمعرفة أحدث إجراء تمرير، وعرض القيمة "خطأ" في حال عدم توفُّر إجراء التمرير حتى الآن. (I63a0e)

الإصدار 1.7.0-alpha04

‫6 مارس 2024

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

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

  • إتاحة ميزة الكتابة بخط اليد بقلم الشاشة على الأجهزة بعد Android U (I002e4)
  • تمت إضافة hintLocales إلى KeyboardOptions لإتاحة TextFields لتعديل أدوات IME بلغات معيّنة لضبط لغة مفضّلة. (Id18c2)
  • تمت إزالة التحميل الزائد التجريبي BasicTextField2 وBasicSecureTextField الذي استهلك المَعلمتَين value: String وonValueChange: () -> String. (I568b4)
  • أضِف دالة applySemantics اختيارية إلى InputTransformation للتأثير في دلالات BasicTextField2 التي يتم تطبيقها عليها. (I74a2f، b/170648072)
  • في CL هذا، نضيف الإجراء الدلالي GetScrollViewportLength حتى نتمكن من تمرير المعلومات حول المكوّنات التي يتم تمريرها في إنشاء إلى نظام a11y. تُطبق CL هذه أيضًا استخدام الخاصية المذكورة في قوائم الوظائف القابلة للتمرير في الأساس. (Ic5fa2)
  • تمت إعادة تسمية "BasicTextField2" إلى "BasicTextField". (Ie5713)
  • FocusRequester.createRefs ثابت الآن (I4d92c، b/261436820)
  • تم تقديم DelegatableNode.scrollIntoView() للسماح لعُقد التعديل بإجراء طلبات scrollIntoView مباشرةً. (I2b3b7، b/299939840)
  • تم تقديم DelegatableNode.requireView() للسماح لعُقد التعديل بالحصول على الإصدار View الحالي من نظام Android بدون قراءة تركيبة محلية. (I40768)
  • إضافة معلومات التنسيق السياقية ضمن نطاق صف تدفق المحتوى ونطاق عمود تدفق المحتوى، مع عرض مؤشر الخط والموضع والقيود المفروضة على الحد الأقصى للعرض والارتفاع للبقاء في الموضع المحدد. قد تتدفق العناصر التي تتجاوز الحد الأقصى للعرض/الارتفاع إلى السطر التالي أو يتم حذفها استنادًا إلى إعدادات التجاوز. (Id13f8، b/292114798)

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

  • تم إصلاح خطأ أدى في حالات معيّنة تبديل سمات enabled أو readOnly لـ TextField إلى حدوث عطل. (Iae17b)

الإصدار 1.7.0-alpha03

21 فبراير 2024

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

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

  • تم تقديم DelegatableNode.requireLayoutCoordinates() كوسيلة للحصول على LayoutCoordinates الحالي لـ Modifier.Node بدون الحاجة إلى إلغاء onPlaced وتخزين الإحداثيات في الموقع بنفسك. (Ia8657)
  • تم تقديم DelegatableNode.currentLayoutCoordinates كوسيلة للحصول على LayoutCoordinates الحالي لـ Modifier.Node بدون الحاجة إلى إلغاء onPlaced وتخزين الإحداثيات في الموقع بنفسك. (إيبا)
  • تحسينات الأداء في DraggableAnchors المستخدمة من قِبل AnchoredDraggable. (I89cff)
  • تم نقل BasicTextField2 وواجهات برمجة التطبيقات ذات الصلة ضمن الحزمة androidx.compose.foundation.text2 إلى androidx.compose.foundation.text. (I9f635)
  • لم يعد BasicTextField2 يقبل مَعلمة CodepointTransformation. استخدِم BasicSecureTextField أو OutputTransformation. (Id34ff)
  • تمت إضافة طريقة لمقارنة تعليقين توضيحيين فقط من AnnotatedStrings. (I32659)
  • نقدّم لك ContextualFlowRow وميزة FlowRow/Column المحسّنة مع MaxLines وOverflow. يسرّنا الإعلان عن تحسينات على الإصدارَين التجريبيَين FlowRow وFlowColumn، وهما الآن يتضمنان maxLines وإمكانية استخدام الميزات الإضافية، بالإضافة إلى إطلاق الميزتَين ContextualFlowRow وContextualFlowColumn. تم تصميم هذا التحديث لتوفير أفضل أداء ممكن، حيث تُعدّ السمة ContextualFlow* مثالية لعدد كبير من العناصر التي تستخدم إعداد maxLines صغيرًا، بينما تعرض ميزتا +N الديناميكي عددًا أكبر من الأزرار، ويشكّل كل من FlowRow وFlowColumn خيارَين مثاليَين لعدد صغير من العناصر التي تقلّ عن 100 عنصر. ملاحظة مهمة: للحفاظ على السلوك الحالي في FlowRow أو FlowColumn حيث يتم إنشاء جميع العناصر بغض النظر عمّا إذا كانت تتوافق مع الحد الأقصى للمحور المتقاطع، اضبط overflow على FlowRowOverflow.Visible أو FlowColumnOverflow.Visible أثناء الإعداد. يمكنك استكشاف ContextualFlowRowSample وFlowRowSample للحصول على أمثلة على هذه الميزات الجديدة عمليًا. (Ib9135، b/293577082)

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

  • لم تعُد الصورة المتحركة للمؤشر تطلب الإطارات بين حالتَي التفعيل والإيقاف. (Ia2253)
  • KeyboardOptions دقيقة وستنسخ دوال إنشاء النسخ التي تم إيقافها نهائيًا جميع المواقع بشكل صحيح. (If12de)

الإصدار 1.7.0-alpha02

7 فبراير 2024

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

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

  • تمت ترقية HorizontalPager وVerticalPager وPagerState إلى قيمة ثابتة. (I67660، b/316966909)
  • تمت إضافة معلومات تركيب LocalTextLinkStyle على الجهاز الذي يسمح بتغيير نمط الروابط في "النص" في التطبيق. إذا كنت تستخدم المظهر الخاص بك في التطبيق، يجب ضبط هذه المقطوعة الموسيقية على المستوى المحلي حسب الموضوع. عند استخدام تحديد نسق المواد، سيتم تعيين لون الرابط تلقائيًا على اللون الأساسي للمواد. (I7eb10)
  • تم تقديم أداة تعديل receiveContent التي توفّر للمطوّرين طريقة للحصول على محتوى وافٍ في Jetpack Compose.
  • يتكامل receiveContent مع BasicTextField2 لقبول المحتوى الوافي الذي توفّره لوحة المفاتيح البرمجية أو من خلال إجراء اللصق في الحافظة. (I81b72)
  • في هذا التغيير، سيتم استبدال SnapFlingBehavior بـ TargetedFlingBehavior في جهاز النداء لإتاحة حالات استخدام أخرى وتوفير مرونة أكبر. (I762ea)
  • في هذا التغيير، ستصبح واجهات برمجة التطبيقات Snapping ثابتة. ونعمل أيضًا على تحسين بعض الرموز البرمجية للاختبار وإضافة المزيد من العيّنات إلى عملية Snap. (Id8da9)
  • قدِّم TargetedFlingBehavior، وهي FlingBehavior التي تسمح بنشر المعلومات حول حالة الصورة المتحركة الجارية ووتيرة الانتقال المستهدفة. (I6a207)

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

  • تُبقي ميزة "BasicTextField2" الآن المؤشر في وضع العرض أثناء الكتابة عندما يتم تمرير المؤشر خارج إطار العرض أو عندما يتم إبعاده بسبب الإدخال. (Ieb856 وb/237190748)

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

  • إضافة واجهة برمجة تطبيقات تجريبية لضبط سلوك الجلب المُسبَق للقوائم الكسولة (I022a4)

الإصدار 1.7.0-alpha01

24 يناير 2024

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

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

  • تمت إضافة Indication API جديد، IndicationNodeFactory. يؤدي ذلك إلى تحسين أداء عمليات تنفيذ Indication مقارنةً بواجهة برمجة تطبيقات rememberUpdatedInstance السابقة (المتوقفة الآن). للحصول على معلومات عن النقل، يمكنك الاطّلاع على developer.android.com.
  • تقبل clickable / combinedClickable / selectable / toggleable الآن مَعلمة MutableInteractionSource قابلة للقيم الفارغة. إذا كانت القيمة فارغة، وكانت قيمة Indication المقدَّمة هي IndicationNodeFactory، لا يمكن إنشاء Indication بشكل كسول إلا عند الحاجة، ما يؤدي إلى تحسين الأداء. في حال عدم الرفع واستخدام MutableInteractionSource، يُنصح باستخدام قيمة فارغة.

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

  • قدِّم DecayAnimation في AnchoredDraggable، وسيُضيف هذا التغيير مَعلمة decayAnimationSpec إلى AnchoredDraggable، ما يسمح باستخدام الصور المتحركة لتناقص عند الاستقرار عند ارتساء إحدى علامات الارتساء. يشمل التغيير أيضًا إعادة تسمية animationSpec الحالية إلى snapAnimationSpec للمساعدة في فهم حالة استخدام كل مواصفة.
  • يتوفر تطبيق "BasicTextField2" للاستخدام التجريبي. ومن المفترض أن تتساوى الميزة تقريبًا مع السمة BasicTextField، ويجب أن يكون السلوك جاهزًا للاستخدام في الإنتاج. ومع ذلك، لا تزال واجهة برمجة التطبيقات تجريبية في الوقت الحالي. قبل تثبيت الصورة، ستتم إعادة تسميتها إلى BasicTextField ونقلها إلى الحزمة نفسها.
  • تم تقديم أول مسودة من واجهة برمجة تطبيقات OutputTransformation للنطاق BasicTextField2. تحل واجهة برمجة التطبيقات هذه محل معظم حالات استخدام VisualTransformation في الإصدار القديم من BasicTextField. ومع ذلك، لم تكتمل هذه المسألة إلى الآن، وبعض الأمور لن تعمل بشكل صحيح، ولكننا نقدِّر أي تعليقات حول سهولة استخدام واجهة برمجة التطبيقات في حالات استخدامك. (aosp/2708848)
  • تم تقديم LinkAnnotation للسماح بإضافة روابط وعناصر قابلة للنقر إلى النص. لم تكتمل ميزة الروابط بعد، وسيتم إجراء المزيد من التغييرات على واجهة برمجة التطبيقات.
  • تم تقديم أداة تعديل receiveContent التي توفّر للمطوّرين طريقة للحصول على محتوى وافٍ في Jetpack Compose.
  • يتكامل receiveContent مع BasicTextField2 لقبول المحتوى الوافي الذي توفّره لوحة المفاتيح البرمجية أو من خلال اللصق من "الحافظة".
  • يتيح لك KeyboardOptions.shouldShowKeyboardOnFocus إيقاف السلوك التلقائي لـ BasicTextField المتعلِّق بطلب لوحة مفاتيح برنامج التركيز.
  • تم إيقاف TextInputService وLocalTextInputService نهائيًا. يمكنك استخدام PlatformTextInputModifierNode للدمج مباشرةً مع واجهات برمجة تطبيقات IME للنظام الأساسي. (aosp/2862698)
  • تم إيقاف Indication#rememberUpdatedInstance نهائيًا. تنطوي على عقوبة عالية لا مفر منها للأداء، وتمنع التحسينات الأخرى. وبدلاً من ذلك، عليك استخدام واجهة برمجة تطبيقات IndicationNodeFactory الجديدة.

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

  • سيتحقق BasicTextField الآن مسبقًا من مجموعة صغيرة من تعيينات الإزاحة عند تمرير VisualTransformation. يساعد هذا في اكتشاف أخطاء البرمجة الشائعة التي تؤدي إلى استثناءات غير قابلة للإصلاح في القياس لاحقًا أو رسم البطاقات. من خلال ذكر هذه الأخطاء أثناء عملية الإعداد، من المرجّح أن يلاحظ المطوّرون هذه الأخطاء أثناء عملية التطوير، ما يساعد في تجنُّب حدوث أعطال في مرحلة الإنتاج. (I0fd42)
  • لن تعرض الدالة VisualTransformation إذا تم عرض فهرس غير صالح لفهرس غير صالح (b/316401857 ).

الإصدار 1.6

الإصدار 1.6.8

12 يونيو 2024

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

الإصدار 1.6.7

1 مايو 2024

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

الإصدار 1.6.6

17 أبريل 2024

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

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

  • تم إصلاح خطأ أدى في حالات معيّنة تبديل سمات enabled أو readOnly لـ TextField إلى حدوث عطل. (Iae17b)

الإصدار 1.6.5

3 أبريل 2024

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

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

  • تضيف سجلات تصحيح الأخطاء إلى الأخطاء التي يصعب إعادة إنتاجها في الصف/العمود: (b/300280216 b/297974033)

الإصدار 1.6.4

20 مارس 2024

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

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

  • لم تعد إيماءة تحديد الضغط مع الاستمرار ثم السحب التي تنتقل من حدود تخطيط النص في الإطار الأول من السحب تتعطل بعد الآن. (Icdf90، b/325307463)

الإصدار 1.6.3

‫6 مارس 2024

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

الإصدار 1.6.2

21 فبراير 2024

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

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

  • حلّ مشكلة عدم إعادة ضبط "AnimateContentSize" بشكلٍ صحيح (I07051)
  • يمكنك حل مشكلة تخزين intrinsicHeight من النص بشكلٍ زائد في بعض الحالات. (3cd398، b/217910352)

الإصدار 1.6.1

7 فبراير 2024

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

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

  • إصلاح مقياس الشبكة المقسّمة عند التمرير فوق الحد. (bffc39)
  • إضافة فحص للتخطيط بأبعاد كبيرة. (e74af5)
  • أصلِح موضع العناصر ذات الحجم 0 في بداية الشبكة التقسيمية. (785f94)
  • يمكنك استدعاء onRelease معاودة الاتصال بنفس الترتيب كما في onForgotten. (31ce3b)

الإصدار 1.6.0

24 يناير 2024

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

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

  • مفتاح تعديل جديد Modifier.anchoredDraggable يتيح إمكانية السحب والمؤثرات الحركية بين مجموعة محدّدة مسبقًا من علامات الارتساء. تم تصميم عنصر التعديل هذا ليكون بديلاً لـ "Modifier.swipeable". يمكنك التعرّف على كيفية استخدامها ونقل البيانات من Modifier.swipeable في دليل نقل البيانات.
  • تمت إضافة وظائف السحب والإفلات بين التطبيقات والمكونات. يمكنك الرجوع إلى DragAndDropTarget وModifier.dragAndDropSource وواجهات برمجة التطبيقات الأخرى للبدء.
  • Modifier.draggable2D هو أداة التعديل الجديدة التي تتيح إمكانية السحب الثنائي الأبعاد بسهولة. اطّلِع على النموذج.
  • تمت إضافة AndroidExternalSurface وAndroidEmbeddedExternalSurface لتسهيل إضافة العناصر التي تعتمد على مساحة العرض في إنشاء الرسائل.
  • تغييرات وتحسينات عديدة على واجهة برمجة التطبيقات في Pager وsnapFlingBehaviour
  • تمت ترقية واجهات برمجة التطبيقات التي تركّز على التركيز والنصوص والأجزاء الداخلية إلى واجهات برمجة تطبيقات ثابتة.

الإصدار 1.6.0-rc01

10 يناير 2024

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

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

  • تمت إزالة الدالة الإنشائية للإضافة DragAndDropTarget(). يمكنك إنشاء مثيل جديد باستخدام "object: DragAndDropTarget {}". (I32318)

الإصدار 1.6.0-beta03

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

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

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

  • إصلاح الأعطال التي أثّرت في نص كبير جدًا تم قياسه بقيود غير محدودة. (I1a7df، b/312294386)
  • أصبحت PlatformImeOptions الآن فئة ملموسة بدلاً من واجهة. (If40a4)

الإصدار 1.6.0-beta02

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

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

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

  • حل مشكلة عدم تحديث "canScroll" بعد الانتقال للأعلى أو للأسفل في الانتقال فقط (I60a86)
  • إصلاح Modifier.animateItemPlacement() وLookaheadScope بعد التمريرات الصغيرة (I3a2b7)

الإصدار 1.6.0-beta01

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

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

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

  • يستخدم مفتاح التعديل DragAndDropTarget الآن عنصر DragAndDropTarget المستلِم بشكل صريح ولديه دالة lambda لتفعيل جلسة السحب والإفلات. هناك وظيفتان في المصنع لجهاز "DragAndDropModifierNode". أحدهما لاستلام عمليات النقل والآخر لنقل البيانات (I69481)
  • تم تعديل maximumFlingVelocity ليتم تمثيله كعدد عائم. تم تعديل المستندات لتكون أكثر وضوحًا بشأن توحيد maximumFlingVelocity. (I8adc7)
  • onDragAndDropStart في DragAndDropModifierNode تمت إعادة تسمية المصنع ليصبح acceptDragAndDropTransfer.

    تمت إضافة acceptsDragAndDropTransfer إلى Modifier dragAndDropTarget للموافقة عليه من جلسة سحب وإفلات. تقوم دالة lambda هذه بإرجاع DragAndDropTarget إذا كنت مهتمًا بجلسة السحب والإفلات. تم استخدام هذا بدلاً من دالة lambda الأخرى التي تُستخدم لمعالجة أحداث السحب.

    تمت إضافة دالة المصنع لـ DragAndDropTarget للاستلام من جلسات السحب والإفلات (Iebf3a).

  • عند عرض startDragImmediately في AnchoredDraggable، يصبح بإمكانك التحكّم في رصد إيماءات السحب عند استخدامه. من المفيد ضبطها عندما تتحرك الأداة إلى علامة ارتساء مستهدفة. اطّلِع على النموذج. (Ie6d13، وb/285139987)

  • واجهة برمجة تطبيقات أداة Foundation API أصبحت الآن @ExperimentalFoundationApi (I30b0b).

  • تمت إزالة DragAndDropInfo كنوع DragAndDropModifierNode.drag الآن، وتأخذ الآن المَعلَمات للدالة transferData وحجم الديكور وسحب الديكور DrawScope lambda

    تتضمن الدالة DragAndDropTarget طرق لأحداث سحب وإفلات معيّنة بدلاً من أن تكون طريقة مجردة واحدة.

    تمت إعادة تسمية "onDragAndDropEvent" في دالة المصنع لـ "DragAndDropModifierNode" إلى "onDragAndDropStart" للإشارة بشكل أفضل إلى أنّ "DragAndDropTarget" المقدَّم صالح لجلسة سحب وإفلات معيّنة فقط.

    تمت إزالة DragAndDropEventType (I645b1).

  • تمت إعادة تسمية "PlatformTextInputModifierNode.runTextInputSession" إلى "establishTextInputSession". (I03cd0)

  • استبدال OriginalText بـ TextSubstitution (Ifa5a8)

  • تمت إعادة تسمية "PlatformTextInputModifierNode.textInputSession" إلى "runTextInputSession". (Ie9c6b)

  • إنّ العناصر الثانوية في "SubcomposeLayout" (والتنسيقات مثل LazyColumn المستندة إليها) والتي يتم الاحتفاظ بها لإعادة استخدامها في المستقبل تُعتبر غير مفعّلة. تم طرح واجهة برمجة تطبيقات assertIsDeactivated() تجريبية جديدة لاختبار هذه العُقد. وستعمل بقية واجهات برمجة التطبيقات الاختبارية على تصفية العُقد المعطلة بشكل افتراضي. (I2ef84، b/187188981)

  • تمت إعادة تسمية المعلَمة clippingEnabled لـ Modifier.magnifier لتصبح clip.

  • تم جعل المعلمة magnifierCenter لـ Modifier.magnifier قابلة للقيم مع الحفاظ على السلوك التلقائي نفسه. (I6aa66)

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

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

  • نفِّذ قيمة يساوي ورمز التجزئة لـ PageSize.Fixed. (Ie3ede، b/300134276)
  • تم إصلاح خطأ يؤدي إلى عدم تقليص تنسيق BasicText عند تغيير minWidth وminWidth أقل من قيود القياس الأولية maxWidth (Idb19c).
  • إضافة دعم العارض من خلال ميزة "Sweep Gتدرّج" في ArcLine (I4d5bb)
  • إصلاح مشكلة التوافق الثنائي مع تغيير النافذة الداخلية (Iee695)
  • إزالة الطبقة الأساسية المادية لرقاقة/زر Material3 حيث تُظهر مقاييس الأداء الدقيقة أداءً أفضل بدونها. (I55555)

الإصدار 1.6.0-alpha08

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

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

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

  • Modifier.draggable2D هو أداة التعديل الجديدة التي تتيح إمكانية السحب الثنائي الأبعاد بسهولة. راجِع عيّنة (Id95f5، b/214412658)

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

  • تمت إعادة تسمية دالة lambda onDrawDragShadow إلى "Modifier.dragAndDrawSource" إلى drawDragDecoration، وتم إعادة تسمية مَعلمة الحجم للسمة DragAndDropInfo إلى dragDecorationSize. (Id0e30، b/303904810)
  • تمت إعادة تسمية معلَمة decorationBox في BasicTextField2 إلى decorator. وتم تغيير نوعها أيضًا إلى واجهة ممتعة مكافئة TextFieldDecorator. (I23c1c)

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

  • مستندات محسّنة عن BasicTextField بشأن متطلبات onValueChange. (I90fc9، b/160257648)

الإصدار 1.6.0-alpha07

‫4 أكتوبر 2023

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

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

  • تم تقديم PlatformTextInputMethodTestOverride لكتابة الاختبارات لمحرّري النصوص المخصّصة. (Id159b)
  • تمت إعادة تسمية "GraphicsSurface" إلى "AndroidExternalSurface" (I11680).
  • تمت إضافة علامة DisableNonLinearFontScalingInCompose مؤقتة لإيقاف الضبط غير الخطّي لحجم الخط. حدِّد DisableNonLinearFontScalingInCompose = true في اختباراتك إذا كنت بحاجة إلى وقت للحذف. ستتم إزالة هذه العلامة في الإصدار 1.6.0-beta01 من Compose. (Ic9486)
  • تمت إضافة المجموعات ColorList وColorSet التي لا تتطلّب عمليات تخصيص. (I744bd)
  • يؤدي هذا التغيير إلى إزالة shortSnapVelocityThreshold التي تم تحويلها إلى تفاصيل تنفيذ SnapLayoutInfoProvider. (I65f6d)
  • إضافة معدِّل dragAndDropSource لبدء جلسات السحب والإفلات وdragAndDropTarget معدِّل للاستلام من جلسات السحب والإفلات (Ib7828، وb/286038936)
  • تعديل المستندات وطريقة الموضع في "SnapPositionInLayout" قدِّم المساحة المتروكة للمحتوى إلى طريقة الموضع في SnapPositionInLayout. (Id7938، وb/300116110)
  • تمت إضافة UndoState إلى TextFieldState لإتاحة إمكانية التراجع عن التغييرات التي أجراها المستخدم أو إعادتها. (Icc024)

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

  • تم إصلاح مشكلة عدم تحريك basicMarquee بعد تغيير السرعة. (Id2e77، b/297974036)

الإصدار 1.6.0-alpha06

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

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

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

  • برامج تضمين جديدة قابلة للإنشاء لـ SurfaceView وTextureView: GraphicsSurface() وEmbeddedGraphicsSurface(). هي واجهة برمجة تطبيقات تجريبية وتخضع للتغييرات والتعديلات. (I9ddb2)
  • أصبحت Modifier.magnifier() الآن واجهة برمجة تطبيقات مستقرة. ويشمل ذلك إزالة MagnifierStyle لصالح المعلَمات المضمّنة في أداة التعديل نفسها. (I83bec، وb/298381260، وb/262367109، وb/261438887)

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

  • تم تقديم updateCurrentPage وupdateTargetPage في ScrollScope، وهما الأجزاء الأخيرة اللازمة للسماح بتخصيص التمرير المتحرك في PagerState.scroll. (I9cad5، b/267744105، b/243786897)
  • إزالة الكثافة من SnapFlingBehavior تتضمّن جميع عمليات تنفيذ SnapLayoutInfoProvider طريقة للوصول إلى الكثافة، ويمكن إزالة نطاق المُستلِم، ما سيؤدي إلى تنفيذ أقل تعقيدًا لكل من SnapFlingBehavior وSnapLayoutInfoProviders. (I153c3)
  • تم وضع علامة "ثابتة" على المزيد من مفاتيح التعديل. (I56af1، b/298046462)
  • تمت إزالة "SnapStepSize" من SnapLayoutInfoProvider. يجب أن يتم الحساب باستخدام معلومات التخطيط وتقديمها من خلال النهج أو إزاحة المحاذاة. (If320c)

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

  • تستخدم ميزة "إنشاء" الآن إمكانية الضبط غير الخطّي لحجم الخط لتحسين إمكانية القراءة وسهولة الاستخدام. عند تغيير حجم الخط > 100% في إعدادات النظام، سيزيد حجم النص الصغير بشكل طبيعي، ولكن النص الكبير فعلاً لن يزداد إلا قليلاً. إضافةً إلى ذلك، سيتم ضبط ارتفاعات الأسطر المحدّدة في مقدِّم الخدمة تلقائيًا لتظل متناسبة مع الارتفاع المقصود بالمقياس بنسبة 100%. راجِع أفضل ممارسات تغيير حجم الخطوط للحصول على مزيد من المعلومات. (I11518)

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

  • إزالة استخدام rememberSaveable للحصول على تلميحات الأدوات (Icc131، b/299500338)

الإصدار 1.6.0-alpha05

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

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

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

  • يمكنك إضافة أحمال زائدة لـ BasicSecureTextField تقبل قيمة غير قابلة للتغيير ومعاودة الاتصال لتغيير هذه القيمة، تمامًا كما في واجهة برمجة تطبيقات BasicTextField الحالية. (Ia4882)
  • أضِف Modifier.preferKeepClear() لوضع علامة "مفضّل" على أنّه قابل للإنشاء بعيدًا عن النوافذ العائمة في الإصدار 33 من واجهة برمجة التطبيقات والإصدارات الأحدث. (Ib51d5، b/297260115)
  • تم ضبط سرعات التنقُّل في مكونات "عرض" مثل ScrollView وRecyclerView على ViewConfiguration.ScaledMaximumFlingVelocity. تحتوي ميزة "إنشاء" الآن على إصدارها الخاص من maximumFlingVelocity والذي يسري الآن على Draggable. (Ibf974)
  • تمت إزالة عمليتَي التحميل الزائدَين Pager وPagerState نهائيًا. (Iea07e)
  • تمت إضافة BasicTooltipBox إلى "compose.foundation" وتعديل PlainTooltipBox وRichTooltipBox لاستخدام TooltipBox مع العناصر الجديدة القابلة للإنشاء PlainTooltip وRichTooltip. (I79e1d)

الإصدار 1.6.0-alpha04

23 آب (أغسطس) 2023

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

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

  • إضافة واجهة ReusableComposition لإدارة مراحل النشاط وإعادة استخدام التركيبات الفرعية. (I812d1، b/252846775)
  • تمت ترقية Modifier.focusGroup إلى واجهات برمجة تطبيقات ثابتة. (I7ffa3)
  • يمكنك إضافة أحمال زائدة لـ BasicTextField2 تقبل قيمة غير قابلة للتغيير ومعاودة الاتصال لتغيير هذه القيمة، تمامًا كما في واجهة برمجة تطبيقات BasicTextField الحالية. (I3f2b8)
  • أصبحت GridItemSpan::currentLineSpan الآن واجهة برمجة تطبيقات مستقرة. (Icc29c)
  • لوحة الرسم التي تقبل contentDescription أصبحت الآن واجهة برمجة تطبيقات مستقرة. (Ib3d29)
  • تم تقديم viewportSize في ScrollState، وهي طريقة لمعرفة الحجم viewPort للمكون الذي يستخدم ScrollState بعد إجراء القياس. (I8b85a، b/283102682)
  • تم إصلاح مشكلة عدم تطابق الجلب المُسبَق في جهاز النداء مع السلوك في بانوراميات. (I93352، b/289088847)
  • سعر Modifier.consumeWindowInsets(PaddingValues) ثابت الآن.
    • تمّت الآن إزالة واجهة برمجة تطبيقات Deprecated Modifier.consumedWindowInsets. يمكنك استخدام Modifier.consumeWindowInsets كبديل. (Id72bb)

الإصدار 1.6.0-alpha03

9 آب (أغسطس) 2023

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

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

  • تمت إضافة حمولة زائدة لـ LazyLayout، وتقبل دالة lambda بقيمة LazyLayoutItemProvider، وهي لا تقبل كائنًا عاديًا كما كان في السابق. تم إيقاف التحميل الزائد السابق نهائيًا. (I42a5a)
  • تمت إضافة دعم لإعداد privateImeOptions (Idb772)

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

  • تم إصلاح حقول نصية تعرض لوحة المفاتيح وقابلة للتعديل عندما تكون السياسة readOnly صحيحة. وتم أيضًا إصلاح عدم ظهور لوحة المفاتيح عند تغيير قيمة readOnly من "صحيح" إلى "خطأ" أثناء التركيز. (I34a19، b/246909589)

الإصدار 1.6.0-alpha02

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

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

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

  • تم تقديم PagerLayoutInfo مع المعلومات التي تم جمعها بعد اجتياز القياس في Pager. تم أيضًا إدخال PageInfo، وهي المعلومات عن صفحة واحدة تم قياسها في Pager. (Iad003، b/283098900)
  • تعليقات توضيحية إضافية لتحديد الإدخالات المسموح بها للعناصر القابلة للإنشاء (I51109)
  • تمت إضافة "SemanticsNodeInteraction.requestFocus" كطريقة أكثر ملاءمة وقابلية للاكتشاف لطلب التركيز في الاختبارات. (Ie8722)
  • تمت إعادة تصميم PlatformTextInput* API بالكامل. (I6c93a، وb/274661182، وb/267235947، وb/277380808)
  • لم يعُد SoftwareKeyboardController وLocalSoftwareKeyboardController في مرحلة تجريبية. أصبحت LocalSoftwareKeyboardController أيضًا الآن CompositionLocal مناسبة. (I4c364)
  • توفّر Modifier.transformable الآن ميزة "التحريك دلتا" في مَعلمة canPan للمساعدة في تحديد اتجاه التصوير للسماح بعرضه أو عدم السماح به. (I692aa، b/266829800)
  • لتعديل مفتاح التعديل consumeWindowInsets لتوسيع الفئة الفائقة AbstractComposeView (Iacd74 وb/269479941)

الإصدار 1.6.0-alpha01

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

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

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

  • تم تقديم واجهة برمجة تطبيقات AnchoredDraggable جديدة في Foundation. يمكن استخدامها لبناء مكونات يمكن سحبها بين الحالات المنفصلة، مثل الأوراق السفلية المشروطة. تحلّ واجهة برمجة التطبيقات هذه محلّ Swipeable API في Material. (I4a2ed)

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

  • دعم InputConnection#requestCursorUpdates (I0c69b)
  • تم تقديم scrollAnimationSpec للسماح بمواصفات الصور المتحركة المخصّصة. تم تعديل دور "BringIntoViewCalculator" إلى BringIntoViewScroller. (Idb741)
  • أضِف النوع ResourceResolutionException إلى العناصر القابلة للالتفاف التي يتم طرحها عند محاولة تحميل مواد عرض الصور النقطية مع وصف مسار مادة العرض الذي تعذّر تحميله. (I19f44 وb/230166331 وb/278424788)
  • تمت إضافة سمات وإجراءات دلالية لإتاحة ترجمة النصوص. (I4a6bc)
  • تم تقديم واجهة برمجة تطبيقات BringIntoViewCalculator يمكن استخدامها لتخصيص كيفية استجابة مكوّنات مثل Scrollable لطلبات bringIntoView. تم تغيير الحمل الزائد للإعلانات القابلة للتمرير لقبول نسخة افتراضية من BringIntoViewCalculator اختياريًا. (Iaf5af)

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

  • تمت إضافة فحص Lint لتحذير إذا كنت تنشئ MutableInteractionSource في تركيبة بدون تذكّرها، وهي تشبه عمليات فحص Lint لإنشاء حالة قابلة للتغيير / Animatable. (I5daae)
  • تمت إضافة دعم التحديد بالماوس. سيتم توسيع التحديد المستند إلى اللمس حسب الكلمات، ثم تقليصه حسب الحرف. (Ic0c6c، b/180639271)
  • تمت إضافة واجهة FocusTargetModifierNode التي يمكن استخدامها لإنشاء FocusTarget مخصّصة. (I9790e)

الإصدار 1.5

الإصدار 1.5.4

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

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

الإصدار 1.5.3

‫4 أكتوبر 2023

تم طرح androidx.compose.foundation:foundation-*:1.5.3. لم تطرأ أي تغييرات على هذا الإصدار.

الإصدار 1.5.2

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

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

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

  • تم إصلاح خطأ في النص أدّى إلى حدوث أعطال في ظروف معيّنة عندما تم إيقاف الدلالات.

الإصدار 1.5.1

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

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

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

  • تم إصلاح حقول نصية تعرض لوحة المفاتيح وقابلة للتعديل عندما تكون السياسة readOnly صحيحة. وتم أيضًا إصلاح عدم ظهور لوحة المفاتيح عند تغيير قيمة readOnly من "صحيح" إلى "خطأ" أثناء التركيز. (I34a19، b/246909589)

الإصدار 1.5.0

9 آب (أغسطس) 2023

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

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

  • تم نقل العديد من مفاتيح التعديل الأساسية، بما في ذلك Modifier.clickable وModifier.draggable وModifier.scrollable، ومعدِّلات التنسيق وغيرها إلى Modifier.Node API، ما يقلّل من أعباء التركيب الأوّلية.
  • تحسينات على ثبات أجهزة النداء تمت معالجة العديد من الأخطاء.
  • توفّر مَعلمة pageCount الآن في PagerState بدلاً من جهاز النداء نفسه

الإصدار 1.5.0-rc01

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

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

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

  • يتوفّر فحص اختياري للتوصية بنقل بيانات "mutableStateOf()" إلى الأنواع المتخصّصة المناسبة لها لإجراءات الإجراءات الأولية. معرّف الوبر هو AutoboxingStateCreation. في السابق، تم تفعيل هذا الفحص تلقائيًا لجميع المشاريع. للاطّلاع على هذا التحذير في محرّر "استوديو Android" ونتجات أداة الوبر الخاصة بمشروعك، عليك تغيير درجة الخطورة من "إشعار" إلى تحذير (أو أعلى) من خلال تحديد warning "AutoboxingStateCreation" ضمن إعدادات build.gradle أو build.gradle.kts في الوحدة على النحو الموضّح (I34f7e):

        android {
            lint {
                warning "AutoboxingStateCreation"
            }
            ...
        }
    

الإصدار 1.5.0-beta03

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

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

الإصدار 1.5.0-beta02

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

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

الإصدار 1.5.0-beta01

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

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

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

  • يمكنك تنفيذ PlatformDataProvider لتوفير معدّل نبضات القلب وعدد الخطوات اليومية. تمت إزالة واجهة SensorGateway من واجهة برمجة التطبيقات العامة. (I55b84)

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

  • يمكنك تقليل التخصيصات أثناء استخدام القوائم أو الشبكات الكسولة أو غير ذلك. القياسات (Iaf9e2)
  • تقليل عمليات التخصيص عند تطبيق اللقطات (I65c09)
  • تمت إزالة التخصيصات من الصور المتحركة لفصل الربيع (Ie9431)
  • تمت إزالة التخصيص من TextLayout (I0fd11)
  • تمت إزالة عمليات تخصيص متعدّدة في تتبُّع سرعة المؤشر (I26bae).

الإصدار 1.5.0-alpha04

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

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

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

  • تمت إضافة TextStyle.merge(...) المحسّنة مع قائمة المَعلمات الكاملة. (Iad234، b/246961787)
  • أدخِل SnapLayoutInfoProvider التي يمكن استخدامها مع LazyGridState. (I92134، وb/269237141، وb/260914964)
  • تمت إضافة Modifier.animateItemPlacement() التجريبي لنطاق عناصر الشبكات التدريجية الكسولة. يمكنك تطبيقه على العناصر من أجل تغيير موضع التشغيل الآلي أو إعادة ترتيب الصور المتحركة. (I4b62d، b/257034719)
  • ترقية GridCells.FixedSize إلى الإصدار الثابت. تحدد FixedSize قيمة LazyGrid حيث تتخذ كل خلية حجمًا دقيقًا على المحور المتقاطع، مع توزيع المساحة المتبقية حسب ترتيب المحور المتقاطع. (I8542f)
  • تم تقديم نطاق المستلِم PagerScope لجهاز النداء ودالة أداة لحساب إزاحة معيّنة للصفحة. (If2577)
  • قدِّم snapPositionalThreshold عند إنشاء سلوك "التمرير السريع". استخدِم هذه المَعلمة لتحديد حدّ موضعي للمحاذاة القصيرة في جهاز النداء. (If8f7f)
  • تم استبدال "SnapLayoutInfoProvider.calculateSnappingOffsetBounds" بـ "calculateSnappingOffset". وفي هذه الطريقة الجديدة، نطلب ببساطة الإزاحة التالية للمحاذاة. ويجب تنفيذ الحدود على مستوى التنفيذ، إذ قد يختلف ذلك حسب حاجتك إلى المحاذاة. (I923a4)
  • تمت ترقية LazyStaggeredGrid واجهة برمجة تطبيقات إلى ثابتة. (I633a5)
  • إزالة pageCount من Horizontal/VerticalPager يجب تقديم هذه السمة عند إنشاء الولاية. تم تعديل PagerState وrememberPagerState لقبول pageCount. (Ieb52d، b/266965072)
  • إزالة pageCount من Horizontal/VerticalPager يجب تقديم هذه السمة عند إنشاء الولاية. تم تعديل PagerState وrememberPagerState لقبول pageCount. (Ifa3cb وb/266965072)
  • أدخِل "shortSnapVelocityThreshold" في SnapFlingBehavior الخاص بجهاز النداء. (I7379e، b/275579012)
  • لإضافة FlowRowScope وFlowColumnScope (I54fe2)

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

  • المكالمات للحصول على دلالات على النص عندما تحتوي القيود على minWidth وminHeight لم تعد معطَّلة. (Ibd072)
  • تم إصلاح الانحدار بعدم ظهور لوحة المفاتيح للحقول النصية داخل مربّعات الحوار التي لم يتم إنشاؤها من خلال عنصر Dialog القابل للإنشاء. (I82551، b/262140644)

الإصدار 1.5.0-alpha03

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

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

يعمل هذا الإصدار على تفعيل حزمة عرض النص الجديدة في Compose. تم تحسين الأداء للحزمة الجديدة، ومن المفترض أن لا تظهر لك أي تغييرات.

إذا لاحظت تغييرات في النص المعروض، يمكنك تصحيح الأخطاء من خلال ضبط NewTextRendering1_5 = false لتأكيد اختلاف السلوك. سيؤدي ضبط هذا الإعداد إلى فرض إعادة التركيب. يُرجى الإبلاغ عن أي اختلافات في السلوك على أنّها أخطاء.

وستتم إزالة علامة تصحيح الأخطاء قبل الإصدار 1.5 prot01.(Iada23، وb/246960758)

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

  • جعل FlowColumn/FlowRow مضمّنًا. (Idab37)

الإصدار 1.5.0-alpha02

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

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

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

  • تمت إضافة دعم للخلايا ذات الحجم الثابت في LazyGrid وترتيبها بترتيب متقاطع المحاور. (I83ed9، b/235121277، b/267942510)
  • تم توفير دعم للممرات ذات الحجم الثابت في LazyStaggeredGrid وترتيبها بترتيب متقاطع المحاور. (I7d519)
  • يمكن الآن فتح UrlAnnotation في AnnotatedString من خلال خدمات تسهيل الاستخدام مثل TalkBack. (If4d82، b/253292081)
  • تمت إضافة إجراء دلالات InsertTextAtCursor للحقول النصية. (I11ed5)
  • ستطلب الآن الإجراءات الاختبارية ذات الصلة بالنص (مثل performTextInput) التركيز مباشرةً، باستخدام إجراء دلالي، بدلاً من النقر على الحقل. (I6ed05)
  • يضيف دعمًا لتباعد/ترتيب متقاطع المحاور باستخدام verticalArrangement في FlowRow وhorizontalArrangement في FlowColumn. سنزيل أيضًا المستوى الأعلى verticalAlignment وhorizontalAlignment في FlowRow/FlowColumn. يمكن للمطوّرين استخدام Modifier.align بدلاً من ذلك. وهذا يقلل من الالتباس بين اصطلاحات التسمية لـ verticalAlignment وverticalArrangement. (I87b60، b/268365538)

الإصدار 1.5.0-alpha01

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

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

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

  • تمت إعادة ضبط النص وBasicText لاستخدام نظام التعديل الجديد. ويؤدي ذلك إلى تحسينات جوهرية في الأداء في كثير من الحالات. ويجب ألا تظهر أي تغييرات. (If1d17، b/246961435)
  • تمت إضافة إجراء دلالات PerformImeAction لاستدعاء إجراء IME على عُقد محرّر النصوص. (Ic606f، b/269633506)

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

  • تم تعديل الإعدادات الداخلية لـ Modifier.hoverable. ولن يظهر عنصر التعديل hoverable في أداة الفحص إلا في حال تفعيله. (I82103)

الإصدار 1.4

الإصدار 1.4.3

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

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

الإصدار 1.4.2

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

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

الإصدار 1.4.1

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

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

الإصدار 1.4.0

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

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

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

  • تمت إضافة دمج الرموز التعبيرية إلى Text وTextField، بالإضافة إلى فقرة ذات مستوى أقل. ويتم تفعيله تلقائيًا عندما يتم ضبط إعدادات الرموز التعبيرية.
  • يمكن ضبط EmojiCompat على نص محدّد باستخدام PlatformParagraphStyle.
  • تمت إضافة دعم امتداد السطر بالكامل إلى LazyStaggeredGrid(I28252).
  • إضافة onHover التجريبي إلى ClickableText (I6938f)
  • تم تقديم حِمل زائد تجريبي جديد لدالتَي runComposeUiTest وcreate*ComposeRule اللتين تقبلان مَعلمات CoroutineContext. سيتم استخدام السياق للمقطوعة الموسيقية الخاصة بالاختبار وأي استدعاءات للسمتَين LaunchedEffect وrememberCoroutineScope() في المقطوعة الموسيقية. (I10614، b/265177763)
  • يتوفر FlowRow وFlowColumn الآن باسم @ExperimentalFoundationApi، ما يتيح تخطيطًا أكثر مرونة للمكوّنات استنادًا إلى الصف والعمود والذي سينقسم إلى سطر جديد إذا لم تكن هناك مساحة كافية على المحور الرئيسي. (I3a7b2)
  • يتوفّر Modifier.basicMarquee() كميزة تجريبية لعرض المحتوى باستخدام تأثير التظليل المتحرك. (I2df44، b/139321650)

الإصدار 1.4.0-rc01

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

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

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

  • تم تقديم واجهة برمجة تطبيقات PlatformTextInputAdapter جديدة منخفضة المستوى لإنشاء عمليات تنفيذ إدخال نصية مخصّصة تتيح التواصل مباشرةً مع واجهات برمجة تطبيقات النظام الأساسي. (I58df4)
  • يمكنك إتاحة التنسيق العكسي في LazyStaggeredGrid. (I3ef4a)

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

  • عند استخدام إجراء دلالات SetText في BasicTextField، سيتم تعديل المخزن المؤقت للنص باستخدام مسار الرمز نفسه المستخدَم في تعديلات أداة IME ووظائف الاختبار (مثل performTextReplacement).
  • تستخدم دوال اختبار النص performTextClearance وperformTextReplacement وperformTextSelection الآن السمة SemanticsActions. (I0807d، وb/269633168، وb/269624358)

الإصدار 1.4.0-beta02

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

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

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

  • تمت إضافة استدعاء Modifier.Node.onReset() جديد يسمح لك بإعادة ضبط حالة محلية لمعالجة الحالة بشكل صحيح عند إعادة استخدام Layout (على سبيل المثال، العنصر LazyColumn). تم إصلاح FocusTargetModifierNode لإعادة ضبط الحالة التي تم التركيز عليها بشكل صحيح. (I65495، b/265201972)
  • تمت إضافة مَعلمة BlendMode إلى طرق DrawScope.drawText وParagraph.paint وMultiParagraph.paint لإتاحة خوارزميات مزج مختلفة عند رسم نص على "لوحة الرسم". (I57508)
  • تمت إزالة واجهة برمجة تطبيقات modifierElementOf(). يُرجى التوسيع من ModifierNodeElement مباشرةً بدلاً من ذلك. (Ie6d21)

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

  • لن يؤدي ضبط مقابض التحديد إلى تحديد حرف جزئي بعد الآن. (Idedd1)
  • إصلاح التعطُّل عند استخدام ctrl+backspace على TextField فارغ (I0427f، b/244185537)

الإصدار 1.4.0-beta01

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

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

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

  • بدءًا من الإصدار 1.3، تمت إضافة دمج الرموز التعبيرية المتوافقة مع Text وTextField، بالإضافة إلى الفقرة ذات المستوى الأدنى. ويتم تفعيله تلقائيًا عندما يتم ضبط إعدادات الرموز التعبيرية.
  • يمكن ضبط EmojiCompat على نص محدّد باستخدام PlatformParagraphStyle.

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

  • تمت إضافة التنفيذ المشترك لـ PinnableContainer API المستخدم في جميع LazyLayouts للاحتفاظ بالعناصر التي تنسحب من المقطوعة، ولكن لا تزال بحاجة إلى أن تكون نشطة. (If45a4)
  • تمت إعادة تسمية "PinnableContainer.PinnedHandle.unpin()" إلى "release()" (I4667a).

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

  • تمت إضافة الموقع الإلكتروني mainAxisItemSpacing إلى LazyListLayoutInfo وLazyGridLayoutInfo وLazyStaggeredGridItemInfo (I52fad).

الإصدار 1.4.0-alpha05

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

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

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

  • تمت إضافة دعم نطاق السطر بالكامل إلى LazyStaggeredGrid (I28252)
  • إضافة onHover التجريبي إلى ClickableText (I6938f)
  • تم تقديم حِمل زائد تجريبي جديد لدالتَي runComposeUiTest وcreate*ComposeRule اللتين تقبلان مَعلمات CoroutineContext. سيتم استخدام السياق للمقطوعة الموسيقية الخاصة بالاختبار وأي استدعاءات للسمتَين LaunchedEffect وrememberCoroutineScope() في المقطوعة الموسيقية. (I10614، b/265177763)

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

  • دمج واجهات برمجة التطبيقات قبل/بعد OverscrollEffect في أداة "التصميم" المدمجة الدالتان applyToScroll وapplyToFling. يمكنك الاطّلاع على النماذج المعدَّلة في المستندات للحصول على أمثلة حول كيفية تنفيذ تأثير التمرير الزائد باستخدام شكل واجهة برمجة التطبيقات الجديد. (I8a9c4، b/255554340)
  • المزيد من أنواع/قابلية القيم الفارغة للدوال المضمَّنة/المخفية نهائيًا (I24f91)
  • تمت ترقية واجهتَي برمجة التطبيقات LineBreak وHyphens في TextStyle إلى ثباتهما. (Ic1e1d)

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

  • وسيستمر المؤشر في الحقول النصية في الوميض حتى في حال إيقاف الصور المتحركة. (I95e70، b/265177763)
  • يتحرك Modifier.basicMarquee الآن حتى في حال إيقاف الصور المتحركة في إعدادات النظام. (I23389، b/262298306، b/265177763)

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

  • لم يتم إيقاف notifyFocusedRect طريقة في TextInputSession وTextInputService نهائيًا مرة أخرى. (I23a04، b/262648050)

الإصدار 1.4.0-alpha04

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

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

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

  • يتوفر FlowRow وFlowColumn الآن باسم @ExperimentalFoundationApi، ما يتيح تخطيطًا أكثر مرونة للمكوّنات استنادًا إلى الصف والعمود والذي سينقسم إلى سطر جديد إذا لم تكن هناك مساحة كافية على المحور الرئيسي. (I3a7b2)
  • يتوفّر Modifier.basicMarquee() كميزة تجريبية لعرض المحتوى باستخدام تأثير التظليل المتحرك. (I2df44، b/139321650)

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

  • FocusRequesterModifierFocusRequesterNode
  • أصبحت الآن دالة إنشاء AndroidFont التي تتضمن variationSettings واجهة برمجة تطبيقات ثابتة ويمكن استخدامها لإنشاء أنواع جديدة من أدوات وصف الخطوط. (I5adcc، b/261565807)
  • تم تقديم واجهة برمجة تطبيقات PinnableContainer التي تم نشرها بواسطة القوائم الكسولة عبر مقطوعة موسيقية محلية تسمح بتثبيت العنصر الحالي. وهذا يعني أنّه لن يتم التخلص من هذا العنصر عند تمريره بعيدًا عن العرض. على سبيل المثال، سيتم في Modifier.focusable() تثبيت العنصر الحالي محل التركيز باستخدام هذه الآلية. (Ib8881، b/259274257، b/195049010)
  • تمت إعادة صياغة الطريقة التي تتجاوب بها الأجهزة القابلة للتمرير مع bringIntoViewRequesters والعناصر القابلة للتركيز عليها لتوضيح مدى تعقيد تلك العمليات بشكل أفضل والتعامل مع المزيد من الحالات الحدّية. (I2e5fe وb/241591211 وb/192043120 وb/237190748 وb/230756508 وb/239451114)
  • المزيد من قابلية إدخال القيم الفارغة للدوال المخفية المتوقّفة نهائيًا (Ibf7b0)
  • تمت إضافة السمة TextMotion التجريبية إلى TextStyle لتحديد النص ليكون Static(default) أو متحركًا. استخدِم TextMotion.Animated إذا سيتم تحجيم النص أو ترجمته أو تدويره من خلال الصورة المتحركة. (I24dd7)
  • إضافة TextFieldFocusModifier لإصلاح سلوك التنقل للتركيز على نظام Android الأساسي (I00303)
  • تم استبدال وسيطة maxSize: IntSize في drawText بـ size: Size لكي يتم تضمينها مع دوال DrawScope الأخرى. تم ضبط size على Size.Unspecified تلقائيًا، ومن المفترض ألا يؤدي ذلك إلى تغيير السلوك التلقائي السابق. (Icd27d)

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

  • تعديلات في فيزياء الانطباق في SnapFlingBehaviour لإضفاء شعور طبيعي أكثر.

مشكلة معروفة

  • عند التحديث من 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.foundation:foundation:1.4.0-alpha03 وandroidx.compose.foundation:foundation-layout:1.4.0-alpha03. يحتوي الإصدار 1.4.0-alpha03 على هذه عمليات التنفيذ.

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

  • في اختبارات واجهة المستخدم التي تستخدم قاعدة الإنشاء، لن يتم إرسال عمليات المتابعة التي تم استئنافها أثناء عمليات استدعاء withFrameNanos إلا بعد انتهاء تشغيل جميع استدعاءات الإطارات. يتطابق هذا مع سلوك التأليف عند التشغيل بشكل طبيعي. ومع ذلك، قد يتعذّر إجراء الاختبارات التي تعتمد على السلوك القديم. من المفترَض أن يؤثر ذلك فقط في الرمز البرمجي الذي يستدعي withFrameNanos أو withFrameMillis مباشرةً، ويكون له منطق خارج نطاق الاستدعاء الذي يتم تمريره إلى الدوال التي قد تحتاج إلى نقلها داخل الاستدعاءات. يُرجى الاطّلاع على التغييرات في اختبار الصور المتحركة في قائمة الأمثلة هذه للحصول على أمثلة.
  • تمت إضافة مَعلمة onPerformTraversals: (Long) -> Unit الاختيارية إلى الدالة الإنشائية TestMonotonicFrameClock ودالة الإعدادات الأصلية لتشغيل الرمز بعد عمليات معاودة الاتصال بـ withFrameNanos ولكن قبل استئناف المتصِلين. الكوروتينات. (Idb413 وb/254115946 وb/222093277 وb/255802670)
  • تقديم إجراءات تسهيل الاستخدام إلى الصفحة: PageUp وPageDown وPageLeft وPageRight يُرجى العلم أنّ هذه لا تتوفّر إلا من خلال واجهة برمجة التطبيقات 29. (Ida4ab)
  • قدِّم HorizontalPager وVerticalPager، وهما طريقة لعرض العناصر القابلة للإنشاء بطريقة جهاز نداء. تم تقديم PagerState للتحكّم في أجهزة النداء بالإضافة إلى معلومات طلب البحث عن حالة جهاز النداء الحالية. تم تقديم PageSize، وهي طريقة للتحكم في حجم الصفحة على جهاز نداء، ويمكن استخدامها لإنشاء لوحة عرض دوّارة مثل أجهزة النداء. تم تقديم PagerSnapDistance، وهي طريقة للتحكم في طريقة عمل المحاذاة في سلوك الانتقال السريع في جهاز النداء. (I01120)
  • تم إدخال حِمل زائد في "SnapFlingBehavior.performFling" للمساعدة في معرفة مكان استقرار الرياح. (I569f6)
  • تمت إزالة OverscrollEffect#isEnabled. بدلاً من تذكُّر هذه العلامة وضبطها، يُرجى عدم تمرير الأحداث إلى تأثير التمرير الزائد في الحالات التي لا تريد فيها ظهور التمرير الزائد (على سبيل المثال، إذا كان كلٌّ من ScrollableState#canScrollForward/backward يعرض القيمة false). (I1a4b0، b/255554340، b/255557085)
  • تمت إضافة ScrollableState#canScrollForward وScrollableState#canScrollBackward للاستعلام عن ما إذا كان ScrollableState لديه مساحة للتمرير في أي من الاتجاهين (سواء كان عند الحد الأدنى أو الأقصى للنطاق). يتم ضبط هذه السياسة تلقائيًا على "صحيح" للتوافق مع الأنظمة القديمة مع عمليات التنفيذ الحالية لـ ScrollableState. يمكن للمستهلكين استخدام هذه البيانات لإطلاع المستخدمين على أنّه لا يزال هناك مجال للتمرير، ويمكن استخدام ذلك أيضًا لتجنُّب إرسال الدلتا إلى "ScrollableStates" التي لا تتضمّن مساحة للتمرير في اتجاه معيّن، وذلك لتقليل العمل غير الضروري. (Idf1a0، b/255557085)
  • تمت إضافة واجهة برمجة تطبيقات Modifier API لطلب بحث عن معلومات التنقّل الخاصة بالأجهزة الأصلية. (I2ba9d، b/203141462)
  • يتم استخدام هذه البيانات في Clickable لتأخير تفاعلات الضغط بشكل صحيح، عندما يمكن أن تتحوّل الإيماءات إلى أحداث تمرير.
  • تم إصلاح مشكلة "Clickables" التي لا تؤخّر الموجات بشكل صحيح، عند استخدامها داخل Scrollable ViewGroup.
  • تم تعديل "الأدراج" و"جداول بيانات Google" لتأخير الضغطات بشكل صحيح في حال تحولت الإيماءات إلى أحداث تمرير.
  • عدِّل تسمية snapStepSize لتصبح متسقة مع الطرق الأخرى في SnapLayoutInfoProvider. (Ife67c)
  • تمت إضافة EmojiCompat إلى Compose (Ibf6f9 وb/139326806).
  • تمت إعادة تسمية consumedWindowInsets() إلى "consumeWindowInsets()" و"withConsumedWindowInsets()" إلى "onConsumedWindowInsetsChanged()" وجعلت مفاتيح التعديل متاحة للجميع. (Ie44e1)

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

  • تم إصلاح العُطل في "Modifier.animateItemPlacement()" والشبكات الكسولة. وقد حدث ذلك في بعض الحالات عندما يكون عدد العناصر الجديدة أصغر من العدد السابق. (I0bcac، b/253195989)

الإصدار 1.4.0-alpha02

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

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

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

  • يتم الآن قبول PointerEventPass في awaitFirstDown وwaitForUpOrCancellation لتوفير مزيد من المرونة. (I7579a، b/212091796)
  • إعادة واجهة برمجة تطبيقات beyondBoundCount من واجهات برمجة التطبيقات الكسولة* (I12197)
  • تم إدخال المَعلمة في Lazy APIs لإنشاء عناصر إطار العرض ووضعها خارجها (I69e89 وb/172029355).
  • تمت إضافة المَعلمة minLines إلى BasicText وBasicTextField. تسمح بتعيين الحد الأدنى لارتفاع هذه العناصر القابلة للإنشاء من حيث عدد الأسطر (I24294، b/122476634)

الإصدار 1.4.0-alpha01

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

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

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

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

الإصدار 1.3

الإصدار 1.3.1

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

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

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

  • إصلاح مشكلة الأداء في BeyondBoundsLayout (aosp/2255266)
  • لن يقرأ ContentInViewModifier إحداثيات التنسيق ما لم يتم إرفاقه (aosp/2241316)

الإصدار 1.3.0

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

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

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

  • تم طرح إصدارات تجريبية من LazyVerticalStaggeredGrid وLazyHorizontalStaggeredGrid.
  • تمت إضافة واجهات برمجة التطبيقات SnapFlingBehavior وrememberSnapFlingBehavior وغيرها من واجهات برمجة التطبيقات المقابلة كميزة تجريبية.
  • تظهر الآن موجات على Modifier.clickable وModifier.toggleable وModifier.selectable إذا تم النقر عليها باستخدام لوحة المفاتيح أو لوحة التحكّم في وحدة التحكّم عن بُعد.

الإصدار 1.3.0-rc01

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

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

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

  • تم تقديم السمة lowVelocityAnimationSpec المستخدمة في خطوة الاقتراب عندما لا يكون هناك سرعة انتقال كافية للتضاؤل. (Iaeb27)
  • تمت إضافة واصلات تجريبية جديدة في واجهة برمجة التطبيقات لإتاحة الواصلة التلقائية في النص (Iaa869).

الإصدار 1.3.0-beta03

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

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

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

  • أضِف خيارات لتخصيص فواصل الأسطر في "النص". (I86907)
  • يمكن لـ "BringIntoViewResponder" الآن الاطّلاع على أحدث القيود المتعلّقة بالطلب أثناء معالجته. (If86a5 وb/241591211)
  • تقديم إمكانية استخدام المسافات بين العناصر في Staggered Grid التجريبي (I10b82)
  • تقديم المساحة المتروكة للمحتوى إلى Staggered Grid التجريبي (I342ea)
  • تم تغيير وسيطة size:IntSize باستخدام constraints: Constraints في طريقة TextMeasurer.measure لتوفير قيود الحد الأدنى للعرض. (I37530، b/242707525)
  • تمت إضافة Modifier.withConsumedWindowInsets() ليتم استهلاك WindowInsets للاستخدام خارج windowInsetsPadding.
  • تمت إضافة MutableWindowInsets للسماح بتغيير WindowInsets بسهولة بدون إعادة التركيب. (I7fd28 وb/237019262 وb/243119659)

الإصدار 1.3.0-beta02

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

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

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

  • الإصدار الأولي من StaggeredGrid التجريبي (Ia48be)
  • تمت إعادة تسمية "FocusDirection.In" و"FocusDirection.Out" إلى "FocusDirection.Enter" و"FocusDirection.Exit" (Ia4262، وb/183746982).
  • تم تقديم حِمل زائد rememberSnapFlingBehavior لتوفير طريقة سريعة لتفعيل المحاذاة في LazyLists. (Ifb48a)
  • تم استبدال مصنع "snapFlingBehavior" بفئة SnapFlingBehavior خرسانية. تم ضبط SnapLayoutInfoProvider طريقة على الكثافة لتسهيل عمليات تحويل Dp<->Px لمستخدمي واجهة برمجة التطبيقات. (I54a11)
  • عدِّل LazyLayoutMeasureScope.measure لعرض قائمة بالعناصر المتغيّرة، مع إبراز قابلية القيمة غير القابلة للتغيير المطلوبة. (I48b7c)
  • تم تقديم SnapLayoutInfoProvider، والذي يحتاج إلى LazyListState لإنشاء مثيل من SnapLayoutInfoProvider يمكن استخدامه لتفعيل لقطة FlingBehavior سريعة لـ LazyLists. (I2dd10)

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

  • إعادة ضبط الإعدادات لـ AwaitPointerEventScope#awaitLongPressOrCancellation لتتطابق مع دوال أخرى بانتظارك (I646e6)

الإصدار 1.3.0-beta01

24 آب (أغسطس) 2022

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

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

  • تمت إزالة pointerPosition من OverscrollEffect - يمكن للتأثيرات التي تهتم بموضع المؤشر استخدام Modifier.pointerInput { } في effectModifier للحصول على موضع المؤشر الحالي بدلاً من ذلك. (I9f606، b/241239306)
  • تم عرض "AwaitPointerEventScope#awaitLongPressOrCancellation" كوحدة أساسية إضافية لرصد الإيماءات الأكثر تعقيدًا (I04374، b/181577176).
  • تم تقديم lazyListSnapLayoutInfoProvider لتفعيل الالتقاط في القوائم الكسولة. (I3ecdf)
  • تم تقديم SnapFlingBehavior، وهو سلوك تمرير سريع يتيح التقاط القوائم. قم بتوفير مثيل لـ SnapLayoutInfoProvider بمعلومات حول تنسيق المحاذاة. (Ie754c)

الإصدار 1.3.0-alpha03

10 آب (أغسطس) 2022

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

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

  • تتيح "خطوط الموارد" الآن ضبط إعدادات تنوع الخطوط (API 26+). (I900dd، b/143703328)
  • إتاحة الخطوط المتغيّرة في DeviceFontFamilyNameFont (Ic1279، b/143703328)
  • تمت إزالة التعليق التوضيحي التجريبي من PlatformTextStyle وLineHeightStyle. (I64bef)
  • ستعرض الحقول النصية الآن استثناءات أكثر تفصيلاً عندما يعرض OffsetMapping الذي يوفره VisualTransformation فهارس غير صالحة. (Ie73f9، وb/229378536)
  • إدخال واجهات برمجة التطبيقات التجريبية لمشاركة منطق موفِّر العناصر بين التنسيقات "الكسولة" (Ic891c)
  • لم يعُد تطبيق "ScrollableDefaults.reverseDirection()" في مرحلة تجريبية. (Iba646)
  • تم إيقاف العمل بسياسة SemanticsModifier.id ونقل رقم تعريف الدلالة إلى LayoutInfo.semanticsId بدلاً منه. (Iac808، b/203559524)
  • لم يعُد تطبيق "checkScrollableContainerConstraints()" في مرحلة تجريبية. (I2c290)
  • لم يعُد تطبيق "Modifier.clipScrollableContainer()" في مرحلة تجريبية. (Ia2b44)
  • إيقاف TextInputService.show|hideSoftwareKeyboard يُرجى استخدام SoftwareKeyboardController بدلاً من ذلك في رمز التطبيق وTextInputSession في رمز إدارة IME. (I14e4c، b/183448615)

الإصدار 1.3.0-alpha02

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

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

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

  • تمت إضافة دالة الإضافة drawText في DrawScope لتوفير طريقة لرسم نص متعدد الأنماط على العناصر القابلة للإنشاء والتعديل التي تعمل على DrawScope مثل Canvas وdrawBehind. (I16a62، b/190787898)

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

  • سيتم الآن إخفاء لوحة المفاتيح اللينة عندما يكون حقل النص غير مفعَّل أثناء التركيز. (I6e3e4، b/237308379)
  • عند إضافة أحداث InputEventChange إلى Velocity Tracker، سنعتبر دلتا الآن بدلاً من المواضع، وهذا سيضمن حساب السرعة بشكل صحيح لجميع الحالات حتى إذا تحرّك العنصر المستهدف (Icea9d وb/216582726 وb/223440806 وb/227709803).
  • عندما يحتوي عنصر قابل للتمرير على طفل مركَّز، سيتم الآن التمرير بشكل صحيح لإبقاء الطفل الذي تم التركيز عليه ظاهرًا عند تقليل حجمه، حتى عندما يكون الحجم متحرّكًا. (I80867، b/230756508، b/220119990)
  • تم إصلاح عطل يؤدي إلى محو TextField وإعادة تعبئته أثناء تفعيل التحديد. (I1235b، وb/208655565، وb/214253689)

الإصدار 1.3.0-alpha01

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

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

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

  • تم تقديم نوع التعليق التوضيحي UrlAnnotation والطرق المرتبطة به لإتاحة روابط TalkBack في AnnotatedString. (I1c754، b/231495122)

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

  • قد تظهر الصور المتحركة في BasicTextField cursorBrush الآن بدون إعادة تشغيل موقِّت استخدام المؤشر. (I812e6، b/236383522)

الإصدار 1.2

الإصدار 1.2.1

10 آب (أغسطس) 2022

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

الإصدار 1.2.0

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

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

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

  • LazyVerticalGrid وLazyHorizontalGrid ثابتان الآن.
  • يمكنك الآن تحديد نوع محتوى للعناصر في القوائم والشبكات الكسولة. سيسمح هذا للمكونات بإعادة استخدام العناصر بشكل أكثر كفاءة.
  • تحتوي القوائم والشبكات الكسولة الآن على مَعلمة userScrollEnabled التي تسمح بإيقاف التنقّل باستخدام إيماءات المستخدم.
  • تمت إضافة واجهة برمجة تطبيقات تجريبية جديدة باسم LazyLayout. وهي واجهة برمجة التطبيقات التي نستخدمها داخليًا لتعزيز القوائم والشبكات الكسولة.
  • تم طرح واجهة برمجة التطبيقات OverscrollEffect كإصدار تجريبي. يمكنك تحديد تأثيرات مخصّصة للتمرير الزائد بالإضافة إلى إضافة نظام أساسي عادي واحد إلى الحاويات المخصّصة القابلة للتمرير.
  • تم طرح واجهات برمجة تطبيقات إمكانية التشغيل التفاعلي للتمرير الداخلي لإتاحة التشغيل التفاعلي بين طرق العرض وإنشاء عناصر التمرير.
  • تمت إضافة إمكانية تمرير الماوس ولوحة اللمس إلى جميع حاويات التمرير.

الإصدار 1.2.0-rc03

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

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

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

الإصدار 1.2.0-rc02

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

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

الإصدار 1.2.0-rc01

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

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

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

  • تم تقديم OverscrollEffect تجريبي للسماح بتأثيرات مخصّصة للتمرير الزائد، إلى جانب أحمال Modifier.scrollable الزائدة التي تقبل هذا التأثير.
  • تم نقل الإصدار التجريبي LocalOverScrollConfiguration من foundation.gesture إلى حزمة المؤسسة وتمت إعادة تسميته إلى LocalOverscrollConfiguration (If19fb، وb/204650733).
  • يتم الآن إنشاء الواجهات في مكتبات الإنشاء باستخدام طرق الواجهة التلقائية jdk8 (I5bcf1).
  • تم تقديم واجهة برمجة تطبيقات checkScrollableContainerConstraints() تجريبية تتيح التحقّق من عدم دمج الحاويات القابلة للتمرير. ويمكنك استخدامها عند إنشاء تنسيقاتك الكسولة القابلة للتمرير من خلال LazyLayout. (Id6fab، وb/233352497)
  • تمت إزالة طريقة الدفع LazyVerticalGrid نهائيًا من حزمة androidx.compose.foundation.lazy. تقع واجهة برمجة التطبيقات الثابتة الجديدة في androidx.compose.foundation.lazy.grid (I73c76، b/225192009).

الإصدار 1.2.0-beta03

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

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

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

  • تمت إضافة IntervalList وMutableIntervalList تجريبي جديد. يُتيح تمثيل بعض قوائم القيم عبر فواصل متعددة. ستكون هذه الميزة مفيدة عندما تريد تحديد dsl الخاص بك بطريقة مماثلة لتلك التي يستخدمها LazyColumn، حيث يمكن تحديد عناصر القائمة من خلال استدعاء عناصر/عناصر متعددة. (I2d05e، b/228580728)

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

  • تمت إضافة توضيح في مستندات "WindowInsets.ime" للإشارة إلى أنّ إدراج ime داخلية يعود تاريخها إلى الإصدار 23 من واجهة برمجة التطبيقات، لكنّها تتحرك فقط للمستخدمين الذين يبلغون من العمر 30 عامًا أو أكثر. (Ia7fc0، b/230756508)
  • وعند الضغط على مفتاح الحذف للأمام عند وضع المؤشر في نهاية الحقل النصي، لن يتعطل بعد ذلك.
  • تتطلّب DeleteSurroundingTextCommand وDeleteSurroundingTextInCodePointsCommand الآن أن تكون وسيطات الدالة الإنشائية غير سالبة. (Ica8e6، b/199919707)

الإصدار 1.2.0-beta02

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

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

  • درجة دقة الخط القابلة للتنزيل والتي لا تغيّر حجم تنسيق النص أو لن تتم إعادة رسم TextField في السابق، ما يؤدي إلى عرض الخط القديم. يضمن إصلاح الأخطاء هذا أن تخطيط النص يؤدي دائمًا إلى إعادة الرسم (b/229727404). (I1d49e، b/229727404)

الإصدار 1.2.0-beta01

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

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

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

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

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

  • تمت إضافة BeyondBoundsInterval التجريبي الذي يمكن استخدامه. من خلال عمليات تنفيذ مخصّصة لـ LazyList عند تنسيق العناصر خارج الحدود المرئية (Ifabfb وb/184670295)
  • تمت إعادة تسمية "LineHeightBehavior" باسم "LineHeightStyle".
  • تمت إعادة تسمية "LineVerticalAlignment" باسم "LineHeightStyle.Alignment".
  • تمت إعادة تسمية "LineHeightTrim" لتصبح "LineHeightStyle.Trim"
  • تمت إزالة قيم الدالة الإنشائية التلقائية من LineHeightStyle (I582bf، b/181155707).
  • تمت إضافة القيم التلقائية للأعضاء الاختياريين في واجهة LazyLayoutItemProvider. (Iba8a0)
  • في واجهة برمجة التطبيقات LazyLayoutItemProvider، بدلًا من أن يعرض المصنع دالة lambda القابلة للإنشاء حسب الفهرس، أصبح لدينا الآن دالة بسيطة قابلة للإنشاء تشير إلى قبول الفهرس. (Id2196)
  • تمت إعادة تسمية LazyLayoutItemsProvider ليصبح LazyLayoutItemProvider (I0638c).
  • تمت إعادة تسمية "LazyLayoutItemsProvider.itemsCount" إلى "itemCount" (Id409c).
  • تمت إضافة الفرشاة إلى TextStyle وSpanStyle لتوفير طريقة لرسم نص باستخدام تلوين التدرج. (I53869، b/187839528)
  • trimFirstLineTop، trimLastLineBottom سمة من تم تغيير LineHeightBehavior إلى تعداد واحد: LineHeightTrim. تتضمن LineHeightTrim قيمًا لأربع حالات يتم تحديدها بواسطة منطقيتين: FirstLineTop وLastLineBottom وكلاهما ولا شيء (Ifc6a5 وb/181155707)
  • تتم إضافة LineHeightBehavior إلى TextStyle وParagraphStyle. LineHeightBehavior لتحديد ما إذا كان سيتم تطبيق ارتفاع السطر أعلى السطر الأول وأسفل السطر الأخير. وتحدّد أيضًا محاذاة الخط في المساحة التي توفّرها الدالة TextStyle(lineHeight).

    على سبيل المثال، من الممكن الحصول على سلوك مشابه لسلوك صفحات الأنماط المتتالية (CSS). يحدد عبر LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false).

  • إعدادا trimFirstLineTop وtrimLastLineBottom يعملان بشكل صحيح فقط عندما تكون includeFontPadding خطأ. (I97332، b/181155707)

  • تمت إضافة تعديل imeNestedScroll() التجريبي ليتمكّن المطوّرون من التحكّم في أداة IME من خلال الانتقال للأعلى أو للأسفل. (I60759)

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

  • إصلاح الانحدار حيث لا تخفي الحقول النصية لوحة المفاتيح عند إزالتها من المقطوعة أثناء التركيز. (I7a410، b/230536793، b/225541817)
  • دعم علامة الحذف عندما يكون الارتفاع محدودًا ولا يتناسب مع جميع أسطر النص (Ie528c، وb/168720622)
  • سيعلّق BringIntoViewRequester.bringIntoView دائمًا إلى أن يكتمل الطلب أو تتم مقاطعته بسبب طلب أحدث غير متداخل. ستتم إضافة الطلبات المتداخلة إلى قائمة الانتظار. (I43e7f، b/216790855)
  • استدعاءات BringIntoViewRequester.bringIntoView المتزامنة للمستطيلات المتداخلة تمامًا ستحترم الآن فقط طلب مستطيل أكبر. (I34be7، وb/216790855، وb/184760918)
  • تم تفعيل الإعداد التلقائي "includeFontPadding". من الممكن إيقاف includeFontPadding باستخدام السمة TextStyle.platformTextStyle. في المستقبل القريب، سنغيّر السلوك التلقائي، ولكن سيتيح لنا ذلك إجراء تحسينات أفضل على مستوى ارتفاع السطر (aosp/2058653) وحلّ مشاكل اقتصاص TextField. (I01423، b/171394808)
  • لم يعُد "Modifier.bringIntoViewRequester" يستخدم "onGloballyPositioned". (I630f5)

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

  • أصبح MouseInjectionScope.scroll(delta = someDelta) معكوسًا الآن على Android إذا انتقلنا رأسيًا (إذا كانت بعض Delta موجبة، سيتم الانتقال للأسفل) (Ifb697، b/224992993)

الإصدار 1.2.0-alpha08

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

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

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

  • عرض كل الأوزان المتاحة لخطوط الأنظمة على Android عند استخدام FontFamily.SansSerif سيؤدي هذا إلى استخدام أسماء خطوط احتياطية مثل sans-serif-medium داخليًا على واجهة برمجة التطبيقات 21-28. يُعد هذا تغييرًا في السلوك، حيث كان الترجيح 400 و700 فقط متاحًا في السابق على واجهة برمجة التطبيقات 21-28. (I380fe، b/156048036، b/226441992)
  • يقبل الآن تطبيق "الفقرة" و"متعدد الفقرات" معلمة القيود. لا يمكن تجاوز Constraints.maxHeight في الوقت الحالي، ولكنّه سيسمح قم ببعض العمليات الحسابية في المستقبل، مثل الحذف بناءً على الارتفاع. (I6afee، b/168720622)
  • يقبل SubcomposeSlotReusePolicy.getSlotsToRetain() الآن فئة مخصَّصة تشبه MutableSet لا تسمح بإضافة عناصر جديدة إليها. (Icd314)
  • تم إيقاف الاستهلاك الجزئي (الموضع أو الموضع) نهائيًا في PointerInputChange. ويمكنك استخدام consume() لاستهلاك التغيير بالكامل. يمكنك استخدام السمة isConsumed لتحديد ما إذا كان شخص آخر قد استخدم التغيير من قبل أم لا.
  • يصنع PointerInputChange::copy() الآن نسخة سطحية. يعني ذلك أنّه سيتم استهلاك نُسخ من PointerInputChange بعد استهلاك إحدى النُسخ. إذا أردت إنشاء PointerInputChange غير مرتبطة، استخدِم الدالة الإنشائية بدلاً منها. (Ie6be4، b/225669674)
  • تم طرح واجهة برمجة تطبيقات LazyLayout تجريبية جديدة. يتيح لك هذا الإجراء إنشاء مكوّنات خاصة بك مثل LazyColumn من LazyVerticalGrid. يُرجى العِلم أنّ واجهة برمجة التطبيقات لا تزال في مراحلها الأولى ويمكن تغييرها في الإصدارات المستقبلية. (Iba2bc، b/166591700)
  • تستخدم AndroidFont الآن typefaceLoader كمَعلمة دالة إنشائية. (I2c971)
  • يعرض تطبيق "WindowInsets" المصاحب الآن مستوى الرؤية (سواء كان معروضًا على الشاشة أم لا، بغض النظر عما إذا كان يتقاطع مع النافذة) والحجم المحتمل إذا كان متاحًا على الجهاز، ولكنه غير نشط حاليًا. (I65182، b/217770337)

الإصدار 1.2.0-alpha07

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

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

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

  • تمت إضافة واجهة برمجة تطبيقات PinnableParent تسمح للعناصر الثانوية ذات التنسيقات الكسولة بمنع التخلص من العناصر التي تم إنشاؤها حاليًا (Ibbdd0، b/184670295).
  • يحتوي LazyListLayoutInfo وLazyGridLayoutInfo الآن على حقلَين beforeContentPadding وafterContentPadding (I3b628 وb/200920410)
  • تمت إضافة KeyboardType.Decimal كبديل لـ Keyboard.Number لتضمين فاصل عشري على وجه التحديد في أداة IME. (Iec4c8، وb/209835363)
  • إضافة واصف الخط الجديد Font(DeviceFontFamilyName) إلى يمكنك البحث عن الخطوط المثبَّتة من خلال النظام اختياريًا أثناء السلاسل الاحتياطية للخطوط. (I30468، b/219754572)
  • PointerEventType.Scroll وPointerEvent.scrollDelta هما واجهتا برمجة تطبيقات ثابتتان الآن (I574c5 وb/225669674)
  • يمكن تغيير إعدادات التوافق المؤقتة لتطبيق includeFontPadding في TextStyle/ParagraphStyle. includeFontPadding من خلال TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false)). هذا خيار إعداد مؤقت لتفعيل نقل البيانات وستتم إزالته. (If47be، وb/171394808)
  • تم تعديل FontFamily.Resolver ليدمج إعداد تسهيل استخدام النص الغامق على مستوى النظام (I6c1e7).
  • تسمح سمة الإضافة consumeWindowInsets في ComposeView للمطوّرين بإيقاف استخدام Android WindowInsets. ويسمح ذلك بفصل ComposeViews في التسلسل الهرمي لكل تطبيق WindowInsets بدون التداخل مع بعضها البعض. (I0ef08، b/220943142)

الإصدار 1.2.0-alpha06

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

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

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

  • تمت إضافة إجراء دلالي RequestFocus لطلب التركيز على الهدف القابل للتركيز. (I17b71)
  • تم دمج FocusOrder في FocusProperties وأصبح لدى focusProperties() الآن كل إمكانات focusOrder(). تم إيقاف FocusOrder وfocusOrder() نهائيًا. يجب استبدال focusOrder() الذي يقبل السمة focusRequester بمفتاح تعديل focusRequester() إلى جانب focusProperties(). يسمح هذا للمُعدِّلات بفصل المخاوف بشكلٍ أقوى. (I601b7)
  • تمت إضافة WindowInsets.asPaddingValues(Density) للسماح للمطوّرين بإجراء الإحالة الناجحة بدون الحاجة إلى تركيبها. (I94c35)
  • تم تعديل تحليل العناصر القابلة للرسم المتّجهية لإتاحة النسخ المطابق التلقائي لقلب محتوى VectorPainter في حال كان التنسيق الحالي. والاتجاه هو من اليمين إلى اليسار. (I79cd9، b/185760237)

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

  • سيتم الآن تمرير تعديلات الانتقال (Modifier.verticalScroll() وModifier.horizontalScroll() وModifier.scrollable()) لإبقاء المحتوى القابل للإنشاء الذي يتم التركيز عليه مرئيًا إذا تم تغيير حجم منطقة الانتقال وكان العنصر القابل للإنشاء الذي تم التركيز عليه مرئيًا في السابق.
  • ستبقى الحقول النصية الآن فوق لوحة المفاتيح عند التركيز عليها وعرض لوحة المفاتيح، وذلك عندما يكون وضع "الإدخال البسيط" هو ADJUST_RESIZE في وضع التمرير غير الكسول. (I4a485، وb/190539358، وb/192043120، وb/216842427)

الإصدار 1.2.0-alpha05

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

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

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

  • أصبح الوضع "LazyVerticalGrid" و"LazyHorizontalGrid" ثابتًا الآن. (I307c0)
  • تم استبدال LazyGridItemInfo.Unknown بـ LazyGridItemInfo.UnknownRow وLazyGridItemInfo.UnknownColumn منفصلين (I56d51).
  • تم نقل LazyVerticalGrid/LazyHorizontalGrid وجميع واجهات برمجة التطبيقات ذات الصلة إلى الحزمة الفرعية .grid. يُرجى تعديل عمليات الاستيراد من androidx.compose.foundation.lazy إلى androidx.compose.foundation.lazy.grid. (I2d446، b/219942574)
  • النص: تم إيقاف includeFontPadding تلقائيًا. تشير رسالة الأشكال البيانية تتم معالجة مشاكل اقتصاص المحتوى الناتجة عن includeFontPadding=false. وينبغي ألا يحدث أي اقتصاص للنصوص الطويلة. (I31c84، b/171394808)
  • تعرض الواجهة التي تم قياسها الآن خاصية parentData (I3313f)
  • تم تقديم Modifier.onFocusedBoundsChanged التجريبي للسماح من ملاحظة حدود العناصر التي يمكن التركيز عليها لدى الأطفال. (I14283، وb/220030968، وb/190539358، وb/192043120، وb/216842427)
  • تمت إضافة LazyHorizontalGrid. (I61ae7، b/191238807)
  • تمت إضافة واجهة برمجة تطبيقات LazyVerticalGrid جديدة لتحديد الأحجام المتقاطعة (I17723).
  • تمت إضافة مفتاح تعديل FocusGroup (I64bc0، b/213508274، b/184670295)

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

  • ستعرض WindowInsets.toString() الآن القيم الصحيحة. (I1585d)

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

  • تم التحديث لاستخدام الكوروتينات في Kotlinx 1.6.0 (I3366d).

الإصدار 1.2.0-alpha04

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

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

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

  • لم يعد مطلوبًا من BringIntoViewResponders إجراء ما يلي يدويًا تمرير الطلبات إلى المجيبين الرئيسيين، ويتوجب عليهم بدلاً من ذلك وإرجاع المستطيل الذي يريد من والده أن يجلبه على الفور في العرض. (I8e66a)
  • دعم تحميل الخط غير المتزامن في Text (I77057، b/214587005)
  • يتيح LazyVerticalGrid الآن استخدام line breaking قبل أن يبدأ عرض العناصر التي لم يتّسع نطاقها داخل الخط الحالي. (I05c40، b/207462103)
  • تمت إعادة تسمية "excludeFromSystemGestures" إلى "systemGesturesExclusion" (I19526).
  • يتيح تطبيق "LazyVerticalGrid" الآن ميزة "التنسيق العكسي". (I6d7d7، وb/215572963، وb/211753558)
  • يمكنك إضافة طريقة WindowInsets.only() للسماح للمطوّرين لتضمين أبعاد من WindowInsets فقط. (I14c94، b/217768486)
  • تمت إضافة ComposableTarget وComposableTargetMarker ComposableOpenTarget التي تسمح بالإبلاغ عن وقت التجميع تسمى الدالة القابلة للإنشاء استهداف تطبيق لم يكن مصممة للاستخدام.

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

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

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

  • يُسمح الآن بتمرير إزاحات تمرير سلبية إلى LazyGridState.scrollToItem() وLazyGridState.animateScrollToItem(). (I025c6، b/211753558)
  • دعم تحميل الخط غير المتزامن لحقل النص. (Icc4bf، b/214587005)

الإصدار 1.2.0-alpha03

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

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

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

  • notifyFocusedRect طريقة في TextInputSession تم إيقاف واجهة برمجة التطبيقات TextInputService نهائيًا ولن يتم طلبها. استخدام BringIntoViewRequester بدلاً من ذلك. (Ia4302، وb/192043120، وb/216842427، وb/178211874)
  • تم تفعيل الصور المتحركة لعناصر الشبكات الكسولة باستخدام Modifier.animateItemPosition(). (Ib6621، b/211753218)
  • ينشر BringIntoViewRequester الآن الطلبات على المضيف. طريقة عرض Android (Ia7a51)
  • يتوفّر تطبيق "FontFamilyResolver" الآن عبر LocalFontFamilyResolver.current
    • تمت إضافة createFontFamilyResolver(context) و createFontFamilyResolver(context, coroutineScope) لإنشاء تصنيف جديد برامج تعيين FontFamily خارج نطاق استخدام الإنشاء.
    • تأخذ الفقرة والفقرات المتعددة الآن FontFamily.Resolver
    • تحتوي TextLayoutResult.layoutInput.fontFamilyResolver الآن على برنامج التعيين المستخدَم لهذا التنسيق متوقف نهائيًا TextLayoutResult.layoutInput.resourceLoader لأنّها لم تعُد مُستخدَمة. (Id5a45، b/174162090)
  • تمت إضافة AndroidFont، وهي واجهة برمجة تطبيقات جديدة منخفضة المستوى لتوفير أنواع جديدة أدوات وصف موارد الخطوط على Android على سبيل المثال، يؤدي تحميل الخطوط من خلفية خاصة بالتطبيق، واختيار تحديد موقع الخطوط المثبَّتة مسبقًا على الجهاز فقط، أو تحميل خط من مورد غير متوفر من خلال شركات الخطوط.
    • تم توسيع واجهة برمجة تطبيقات Font.ResourceLoaded لتوفير الميزات الاختيارية وغير المتزامنة. جارٍ تحميل الخط لا يُنصَح باستخدام مطوّري التطبيقات هذه الميزة. واجهة برمجة التطبيقات مباشرةً. لإضافة أنواع جديدة من الخطوط، يمكنك الاطّلاع على AndroidFont.
    • تسمح دالة الإضافة Font.AndroidResourceLoader إنشاء Font.ResourceLoader عندما يكون خارج المقطوعة الموسيقية.
    • تمت إضافة مَعلمة loadingStrategy إلى الخطوط المستندة إلى موارد، وذلك للسماح. تحميل غير متزامن عندما يشير خط المورد إلى ملف XML للخطوط القابلة للتنزيل (Ie5aea، b/174162090)
  • تم إيقاف دالة الإنشاء Typeface(FontFamily) نهائيًا. كان هذا المستخدم سابقًا لتحميل الخطوط مسبقًا، والذي قد يستغرق ما يصل إلى 10 ثوانٍ خطوط قابلة للتنزيل. مع الخطوط القابلة للتنزيل، قد يتم حظر هذه المكالمة لـ 10 أشخاص ثوانٍ. بدلاً من ذلك، يمكنك استخدام FontFamilyResolver.preload.
    • تم إيقاف fontResource(FontFamily): Typeface نهائيًا. كان هذا المستخدم سابقًا لتحميل الخطوط مسبقًا، والذي قد يستغرق ما يصل إلى 10 ثوانٍ خطوط قابلة للتنزيل. بدلاً من ذلك، استخدِم FontFamilyResolver.preload (If8e7c، وb/174162090).
  • يمكنك الآن تحديد نوع المحتوى للعناصر في LazyVerticalGrid: دوال العناصر/العناصر في LazyGridScope تقبل الآن هذه المَعلمة. ويساعد تقديم هذه المعلومات في إعادة استخدام منطق التركيبة، وذلك لجعلها أكثر كفاءة وإعادة استخدام المحتوى فقط بين العناصر من النوع المماثل. (I7b355، b/215372836)
  • لدى LazyListLayoutInfo وLazyGridLayoutInfo الآن خصائص جديدة: viewportSize وorientation وreverseLayout (Ifc8ed وb/200920410)
  • يمكنك الآن تحديد نوع المحتوى لعناصر LazyColumn/LazyRow - تقبل دوال العناصر/العناصر في LazyListScope هذه المَعلمة الآن. ويساعد تقديم هذه المعلومات في إعادة استخدام منطق التركيبة، وذلك لجعلها أكثر كفاءة وإعادة استخدام المحتوى فقط بين العناصر من النوع المماثل. (I26506)
  • تم إيقاف دالة الإنشاء SubcomposeLayoutState التي تقبل maxSlotsToRetainForReuse نهائيًا. بدلا من ذلك، هناك أداة إنشاء جديدة تقبل SubcomposeSlotReusePolicy - وهي واجهة جديدة تتيح التحكم بدقة أكبر في الخانات التي يجب الاحتفاظ بها لإعادة استخدامها مستقبلاً. (I52c4d)
  • إضافة معدِّلات لـ WindowInsets، لكل من المساحة المتروكة وتحديد المقاسات. وهذا يسمح لبعض المحتوى بالامتداد إلى المنطقة الداخلية، وأن يظل المحتوى الأساسي خارج المنطقة الداخلية على سبيل المثال، يمكن استخدام windowInsetsPadding حشو المحتوى المنطقة لتجنب المناطق التي قد تكون مغطاة كليًا أو جزئيًا. (Id0395، b/213942085)

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

  • ستبقى الحقول النصية الآن فوق لوحة المفاتيح عندما تكون التركيز وعرض لوحة المفاتيح، عندما يكون وضع الإدخال البسيط ADJUST_PAN (I8eaeb، b/190539358، b/192043120)
  • يستخدم الكمبيوتر المكتبي مقطوعة موسيقية محلية في FontFamily.Resolver.
    • تم إيقاف سطح المكتب FontLoader نهائيًا
    • مصنع "createFontFamilyResolver" جديد على الكمبيوتر المكتبي (I6bbbb، b/174162090)
  • لم يعد نوع إدخال لوحة المفاتيح المرنة تومض عند التغيير. التركيز بين الحقول النصية. (I1bf50، b/187746439)
  • لم تعد الحقول النصية تتطلب ضغطة خلفية إضافية عند يظهر مقبض المؤشر. (Ideb4b، b/205726883)
  • تم تحسين سلوك مكبر اختيار النص إلى تتطابق مع مكبر النظام الأساسي. (Idd918، b/206833278)

الإصدار 1.2.0-alpha02

26 يناير 2022

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

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

  • تمت إضافة NonRestartableComposable إلى الطرق التي تتضمّن أحمالاً زائدة. الأساليب الحالية بدون منطق معقد. يؤدي هذا إلى تقليل برنامج التجميع عمليات فحص للمذكرة التي تم إنشاؤها (تساوي) لجميع المعلمات التي في الدالة الداخلية التي تسمى. (I90490)
  • تمت إضافة معدِّلات excludeFromSystemGesture لـ يمكن بسهولة الوصول إلى setSystemGestureExclusionRects على Android (I46f07)

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

  • تم تحسين سلوك مكبر اختيار النص إلى تتطابق مع مكبر النظام الأساسي. (Idd918، b/206833278)
  • إنّ الحاويات LazyColumn وLazyRow وModifier.verticalScroll وغيرها من الحاويات التي تستخدم Modifier.scrollable أصبحت متوافقة الآن مع التمرير بعجلة الماوس. (I2b5e1، b/198214718)

الإصدار 1.2.0-alpha01

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

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

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

  • تمت إضافة مَعلمة جديدة "userScrollEnabled" إلى LazyColumn وLazyRow وLazyVerticalGrid من أجل السماح للمستخدمين بإيقاف التمرير الذي يبدأه المستخدم مؤقتًا أو نهائيًا من خلال إيماءات اللمس أو إجراءات تسهيل الاستخدام. سيظل مسموحًا بالتمرير آليًا عبر الطرق في الحالة. (I7eae9، b/201150093)
  • إضافة رد الاتصال onSizeChanged إلى أداة تعديل المكبِّر. (I6879f)
  • تظهر الآن أداة "المكبِّر" عند سحب الجزء المحدّد الأسماء المعرِّفة في SelectionContainer. (I30b38، b/139320979)

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

  • لإصلاح مقبض مؤشر TextField الذي لا يختفي عند التمرير للخارج مشاهدة. (I14552، b/208883748)

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

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

الإصدار 1.1

الإصدار 1.1.1

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

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

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

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

الإصدار 1.1.0

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

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

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

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

الإصدار 1.1.0-rc03

26 يناير 2022

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

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

  • تم التحديث لدعم Compose 1.1.0-rc03

الإصدار 1.1.0-rc01

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

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

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

  • يُسمح الآن بتمرير إزاحات تمرير سلبية إلى LazyListState.scrollToItem() وLazyListState.animateScrollToItem(). (Iceb90، b/184252837)
  • تم إصلاح الخطأ الذي تسبَّب في فقدان إجراءات التمرير الخاصة بميزات تسهيل الاستخدام (I7cbfb)

الإصدار 1.1.0-beta04

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

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

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

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

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

  • تم محو القيم الفارغة في androidx.core.view(I7078a، b/204917439)
  • وقد تمت إضافة واجهات برمجة تطبيقات تجريبية تتيح استخدام PointerInputchange ككل أو معرفة ما إذا تم استهلاكه أم لا. (I2e59d)
  • إظهار تطبيق مصغّر للمكبِّر عند سحب المؤشر أو مقابض التحديد داخل الحقول النصية. (I5391e، b/203781358)

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

  • إصلاح مقابض النص التي لا تتحرك عند تغيير مستوى رؤية أداة IME. (I25f2e)

الإصدار 1.1.0-beta03

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

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

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

  • تمت إضافة دعم الامتدادات الأفقية إلى LazyVerticalGrid. (I7e2fa، وb/176758183)
  • تمّت إضافة القدرة التجريبية على تحريك مواضع العناصر في القوائم الكسولة. يتوفّر تعديل جديد في LazyItemScope باسم "Modifier.animateItemPlacement()". مثال على الاستخدام:

      var list by remember { mutableStateOf(listOf("A", "B", "C")) }
      LazyColumn {
          item {
              Button(onClick = { list = list.shuffled() }) {
                  Text("Shuffle")
              }
          }
          items(list, key = { it }) {
              Text("Item $it", Modifier.animateItemPlacement())
          }
      }
    
    • عند توفير مفتاح من خلال LazyListScope.item أو LazyListScope.items، سيتيح هذا التعديل تفعيل الصور المتحركة لإعادة ترتيب العناصر. بالإضافة إلى إعادة ترتيب العناصر، سيتم تحريك جميع التغييرات الأخرى في الموضع الناتجة عن أحداث مثل تغييرات الترتيب أو المحاذاة. (I59e7b، b/150812265)

الإصدار 1.1.0-beta02

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

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

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

  • لن تتأخر الآن الأمواج والمؤشرات الأخرى إلا إذا كانت داخل حاوية Modifier.scrollable()، بدلاً من أن تتأخر دائمًا بسبب حدث عطل. (Ibefe0، b/203141462)
  • تمت إضافة واجهة برمجة تطبيقات BringIntoView التجريبية التي تتيح لك إرسال طلبات إلى الأهل لكي يتمكّنوا من الانتقال للأسفل أو للأعلى لإظهار عنصر معيّن (Ib918d وb/195353459)

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

  • تمت إضافة Modifier.pointerHoverIcon (I95f01)

الإصدار 1.1.0-beta01

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

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

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

  • تمت إضافة واجهة برمجة تطبيقات BringIntoView التجريبية التي تتيح لك إرسال طلبات إلى الأهل لكي يتمكّنوا من الانتقال للأسفل أو للأعلى لإظهار عنصر معيّن (Ib918d وb/195353459)

الإصدار 1.1.0-alpha06

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

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

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

  • تمت إضافة أحمال زائدة أقل من الأطفال لتنسيق "التنسيق"، مع تحسين الكفاءة (Ib0d9a).
  • يمكن الآن إرجاع المشتريات في "SemanticsNodeInteraction.performSemanticsAction" العلامة SemanticsNodeInteraction التي تم استدعاء الدالة عليها. (I9e5db)
  • تمت إضافة performScrollToNode(matcher: SemanticsMatcher) الذي تنقل الحاوية القابلة للتمرير إلى المحتوى المتطابق مع مُطابق معين. (Ic1cb8)

الإصدار 1.1.0-alpha05

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

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

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

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

  • دعم ثابت لإمكانية الوصول للعناصر القابلة للتمرير (البطيء غير الكسول) بالنسبة إلى التمرير (I6cdb0)

الإصدار 1.1.0-alpha04

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

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

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

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

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

  • أتحنا ميزة التمرير الزائد عن الحد على أجهزة Android 12. (Iccf3c، b/171682480)

الإصدار 1.1.0-alpha03

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

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

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

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

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

  • تمت إضافة تأثير اللمعان عند الانتقال للأعلى أو للأسفل. تمت إضافة واجهة برمجة تطبيقات تجريبية جديدة لـ Over ScrollConfiguration للسماح بتهيئة التأثير المرئي للتمرير الزائد. قم بتوفير قيمة فارغة لإيقاف تأثير التمرير الزائد. (I0c304، b/171682480)
  • يتضمّن AwaitPointerEventScope الآن withTimeout() وwithTimeOrNull() (I507f0 وb/179239764 وb/182397793)
  • تمت إضافة طريقة اختبار للحصول على الحدود المقطوعة. (I6b28e)
  • تمت إضافة الحدّ الأدنى لحجم ناحية اللمس المستهدفة إلى ViewConfiguration. للاستخدام في الدلالة وإدخال المؤشر لضمان سهولة الوصول. (Ie861c)

الإصدار 1.1.0-alpha02

18 آب (أغسطس) 2021

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

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

  • تمت إضافة إصدارات DpSize لـ Modifier.size وrequiredSize (I3fc7e وb/194219828).

الإصدار 1.1.0-alpha01

4 آب (أغسطس) 2021

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

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

  • تم تعديل طريقة واحدة (DrawScope#drawImage) لـ تستهلك ساحات المصدر والوجهة استهلاك نوع تصفية اختياري . يفيد ذلك في هواتف Pixel الأعمال الفنية المعدّة لتقطيعها عند توسيع نطاقها لاستخدام رسومات بكسل تعديل BitmapPainter + الصور القابلة للإنشاء أيضًا استهلاك نوع تصفية اختياري مَعلمة (Ie4fb0، وb/180311607)
  • يمحو حقل النص الآن التحديد عند الضغط على زر الرجوع، الذي يتطابق مع سلوك Android EditText (I3ca16، b/174173645)
  • إضافة مقبض المؤشر. (I07a82، b/173016579)

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

  • الانتقال من خلال إجراءات الدلالة للقوائم الكسولة ومكوّنات التمرير العادي أصبحت متحركة الآن (Id9066، b/190742024)

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

  • تقبل الدالة LazyVerticalGrid الآن مَعلمتَي الترتيب الأفقي والعمودي. (If9c92)

الإصدار 1.0

الإصدار 1.0.5

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

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

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

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

الإصدار 1.0.4

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

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

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

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

الإصدار 1.0.3

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

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

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

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

الإصدار 1.0.2

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

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

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

الإصدار 1.0.1

4 آب (أغسطس) 2021

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

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

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

الإصدار 1.0.0

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

تم طرح androidx.compose.foundation:foundation:1.0.0 وandroidx.compose.foundation:foundation-layout: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.foundation:foundation:1.0.0-rc02 وandroidx.compose.foundation:foundation-layout:1.0.0-rc02. يحتوي الإصدار 1.0.0-rc02 على عمليات التنفيذ هذه.

  • تم تعديل عرض الحدود للأشكال العامة لمعالجة المشاكل المتعلقة بالمسارات محددة بأبعاد ثابتة. (aosp/1748871، b/191817116)

الإصدار 1.0.0-rc01

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

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

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

  • تدعم لوحة الرسم الآن معلمة contentDescription سهولة الوصول. (Ib547c)

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

  • سيؤدي إيقاف الزر والبطاقة ومربّعات الاختيار وModifier.clickable(enabled=false) بشكل عام إلى حظر النقرات من الانتقال إلى الصفحة الرئيسية. (Ic2c3b، b/183908811)

الإصدار 1.0.0-beta09

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

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

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

  • تمت إزالة ManualFrameClock. إذا كنت بحاجة إلى التحكم في الرسوم المتحركة، استخدِم composeTestRule.mainClock بدلاً من ذلك. (I3c3e8، b/189951065)
  • تغيير دور enum وLiveRegionMode إلى فئات مضمّنة مع دالة إنشاء خاصة (Id1890)
  • يتم تحويل الكتابة بالأحرف الكبيرة للوحة المفاتيح إلى فئة مضمّنة. (Id5a1c)
  • تم تغيير TextOverflow إلى فئة مضمّنة. (I433af)

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

  • الآن، عند تحديد المفاتيح الفريدة لعناصر LazyColumn/Row، سيتم الاحتفاظ بموضع التمرير بناءً على المفتاح، مما يعني أنه إذا أضفت/أزلت عناصر قبل العنصر المرئي الحالي، فسيتم الاحتفاظ بالعنصر الذي يحتوي على المفتاح المحدد كأول عنصر مرئي. (Id263f، b/184257857)
  • الثوابت الرئيسية هي @experimentalComposeUiApi في الوقت الحالي. استهلاك التعليمة البرمجية أن تعلن عن الثوابت الخاصة قبل التثبيت. (Ia5d48)
  • تمت إضافة IdlingStrategy إلى AndroidComposeTestRule التي يمكن استخدامها. لاختبار أطر العمل لتثبيت آلية بديلة أو تحقيق التوازن. استخدام AndroidComposeTestRule.setIdlingStrategyFactory() قبل الاختبار في تثبيت استراتيجيتك الخاصة (I608fa)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

آلية العمل

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

الإصدار 1.0.0-beta08

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

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

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

  • يتم استبدال تعداد Nested scrollSource بفئة مضمّنة. (Ie321b، b/187055290)
  • إعادة ضبط استخدامات التعداد إلى الفئات المضمَّنة لتجنُّب بعبارات تتضمن عبارات شاملة عند إضافة قيم enum جديدة. (I2b5eb)
  • إضافة مهلة النقر إلى قابلة للنقر / قابلة للتبديل لمنع ظهور موج أثناء التمرير / السحب (Ia2704، b/168524931)
  • لم تعُد خصائص ContentDescription وText دلالات قيم فردية ولكن القوائم. يتيح ذلك دمجها كما هي بدلاً من ذلك التجميعات. وتم أيضًا تقديم واجهات برمجة تطبيقات اختبارية أفضل للاستفادة من هذه التغييرات (Ica6bf، b/184825850)
  • تم إيقاف Modifier.focusModifier() نهائيًا واستبداله بـ Modifier.focusTarget() (I6c860).
  • يتم استبدال تعداد boardType بفئة مضمّنة. (I73045، b/187055290)
  • تم استبدال تعداد FocusState بواجهة FocusState (Iccc1a، وb/187055290).
  • يتم استبدال تعداد ImeAction بفئة مضمّنة. (I18be5، b/187055290)
  • دوال AnnotatedString.withAnnotation هي أصبح الآن تجريبيًا TextApi بدلاً من تجريبيComposeApi. (I0cd0a)
    • دالة إنشاء TextUnit مع TextUnitType أصبحت الآن تجريبيTextApi بدلاً من تجريبيComposeApi.
  • أصبحت قيمة PaddingValues الآن @Stable بدلاً من @Immutable (I88c50)

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

  • إصلاح أعطال الضغط المطوّل على المنطقة الفارغة في نص غير فارغ. (I33ab5، b/187437299)
  • إظهار شريط الأدوات بعد SelectAll (I495d9، b/185919613)
  • حلّ مشكلة الحاويات القابلة للتمرير التي تشبك عناصرها الثانوية على المحور العرضي. وكان يمكن إعادة إنتاجه بسهولة إذا كان لديك LazyRow الذي يحتوي على عناصر Card. فلن يتم قص الظل الآن. (Icb635 وb/186318448)
  • تم إصلاح مشكلة تعثُّر التموجات / المؤشرات الأخرى أحيانًا عند نقرة طويلة عند استخدام Modifier.combinedClickable (I2298c، وb/186223077).
  • الآن، ستستهلك detectDragGesures وdetectVerticalGestures وdetectHorizontalGestures تغيير الموضع تلقائيًا، ولن تحتاج إلى استدعاء change.consumePositionChange في استدعاءات onDrag (I42fc4 وb/185096350 وb/187320697)
  • تم تغيير Modifier.onGloballyPositioned() للإبلاغ عن إحداثيات هذا التعديل في سلسلة مفاتيح التعديل، وليس إحداثيات التنسيق بعد تطبيق جميع مفاتيح التعديل. وهذا يعني أن ترتيب المعدِّلات يؤثر الآن في الإحداثيات التي سيتم الإبلاغ عنها. (Ieb67d، b/177926591)

الإصدار 1.0.0-beta07

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

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

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

  • يتم تقديم المنطق التالي للجلب المُسبَق للعنصر المرئي في العمود LazyColumn/Row (I8a4bc، وb/184940225).
  • تمت إضافة مقبض اختيار المقطع (Iff80d، وb/183408447)

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

  • سيحتفظ العمود الكسول/الصف الآن بما يصل إلى عنصرَين نشطَين سابقًا (لا يتم التخلص منه) حتى عند الانتقال للأسفل أو للأعلى. يسمح هذا للمكون بإعادة استخدام الإنشاءات الفرعية النشطة عندما سنحتاج إلى إنشاء عنصر جديد يحسن أداء التمرير. (Ie5555)
  • إزالة PaintBackground. (I38660)
  • رسم خلفية التحديد باستخدام DrawScope. (I73c61، b/186674472)
  • تم إصلاح الانحدار بشكل بيتا06 الذي يؤثر في الصف/العمود باستخدام ترتيبات المسافة المقطوعة لتخطيط العناصر الثانوية المرجحة. (Ifaf8c، b/187326588)

الإصدار 1.0.0-beta06

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

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

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

  • حلّ التعارض باستخدام إيماءة التنقّل (I1145e)
  • تمت إضافة واجهتَي برمجة تطبيقات لأدوات تسهيل الاستخدام "مجموعة معلومات" و"مجموعة معلومات عنصر" تسمحان بوضع علامة على المجموعة وعناصرها في الخدمات المخصصة لتسهيل الاستخدام (Id54ef وb/180479017).
  • تمت إضافة "SemanticsActions.ScrollToIndex" للتمرير في القائمة باستخدام العناصر المفهرسة إلى العنصر بفهرس معين، SemanticsProperties.IndexForKey للحصول على فهرس عنصر في قائمة بالعناصر الرئيسية. تنفِّذ ميزة LazyList كلا الإجراءَين.
    • تمت إضافة SemanticsNodeInteraction.performScrollToIndex الذي بالتمرير القائمة إلى الفهرس المحدد، SemanticsNodeInteraction.performScrollToKey الذي ينقل القائمة إلى بالمفتاح المعين. (I4fe63، وb/178483889، وb/161584524)
  • إتاحة حفظ AnnotatedString في TextFieldValue.Saver. تمت إضافة addTtsAnnotation و withAnnotation AnnotatedString.Builder (I8cbdc, b/178446304)
  • تمت إضافة قيم مَعلمات 0.dp التلقائية إلى PaddingValues(horizontal, vertical) (I05571، b/181336792).

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

  • الصف & لم تعد عناصر العمود الثانوية التي تحتوي على weight(fill = false) تجعل العنصر الرئيسي يملأ مساحة المحور الرئيسي المتاحة بالكامل. (Ied94d، وb/186012444، وb/184355105)

الإصدار 1.0.0-beta05

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

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

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

  • تم الآن وضع علامة @Stable على واجهة FlingBehavior. يجب أن تلتزم جميع عمليات التنفيذ بعقد @Stable. (I93354، b/184830577)

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

  • السعر الثابت ACTION_SCROLL_FORWARD وACTION_SCROLL_BACKWARD accessibilityActionScrollLeft، accessibilityActionScrollUp، accessibilityActionScrollRight وaccessibilityActionScrollDown إجراءات التمرير لإمكانية الوصول. وبدلاً من التمرير إلى نهاية قابل للتمرير، سيتم الآن تمريره بشاشة واحدة في الاتجاه المحدد. (Ieccb0)
  • يمكن الاطلاع على ملفات AndroidManifest من ملف ui-test-manifest تتوافق أداة ui-tooling-data الآن مع نظام التشغيل Android 12 (I6f9de وb/184718994).

الإصدار 1.0.0-beta04

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

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

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

  • إعادة تسمية selectSoftwareلوحة المفاتيح وتفعيل showSoftwareلوحة المفاتيح وحدة تحكم البرامج في السياسة إلى hide() وshow() على التوالي.
    • توفير واجهة ChocolateLocal الكاملة LocalSoftwareControllerController، مع السماح بتعيينها (بشكل خاص مفيدة في الاختبارات) (I579a6)
  • تم تقديم TextOverflow.Visible. (Ic8f89)
  • تمت إزالة النُسخ الافتراضية العلنية من RowScope وColumnScope وBoxScope وBoxWithConstraintsScope. (I4e83e، وb/181869067)

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

  • تم إصلاح المشكلة التي كانت تحدث عندما تم وضع عناصر LazyColumn/LazyRow الواقعة على الحواف بشكل غير صحيح بعد التمرير السريع (Ie4d13، وb/183877420).
  • قبل إجراء هذا التغيير، كان بالإمكان تخطّي الدوال المحلية القابلة للإنشاء استنادًا إلى مَعلماتها. بعد هذا التغيير، لن يتم تخطّي أي دوال محلية قابلة للإنشاء. وتمّ إجراء هذا التغيير لأنّه من الشائع والمتوقّع أن تسجِّل الدوال المحلية المَعلمات من العنصر الرئيسي ويشكّل تخطّيها مصدرًا شائعًا للأخطاء.

    للتلخيص، ضع في اعتبارك المثال:

    @Composable fun Counter(count: Int, onCountChange: (Int) -> Unit) {
      @Composable fun ShowCount() { Text("Count: $count") }
      ShowCount()
      Button(onClick={ onCountChange(count + 1) }) {
        Text("Increment")
      }
    }
    

    قبل هذا التغيير، كان يتم دائمًا تخطّي دالة ShowCount القابلة للإنشاء، حتى بعد تعديل مَعلمة count. لقد اختلف الوضع اليوم. (I5648a)

الإصدار 1.0.0-beta03

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

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

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

  • تم إيقاف DefaultMonotonicFrameClock نهائيًا. إجراء المكالمات withFrameNanos أو Recomposer.runRecomposeAndApplyChanges بدون سيطرح "MonotonicFrameClock" الآن القيمة "IllegalStateException". (I4eb0d)

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

  • تُسمّى FlingBehavior.performFling() الآن حتى عندما تكون السرعة 0 (I0b6e5، b/181237123).

الإصدار 1.0.0-beta02

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

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

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

  • تمّت إضافة عدة تحسينات صغيرة في منطق القياس الكسول (Ic6889).
  • تمت إضافة مقطوعة موسيقية جديدة باللغة LocalSoftwareKeyboardController على الجهاز واجهة برمجة التطبيقات لاستبدال واجهة SoftwareboardController السابقة على حقل النص. (I5951e، b/168778053)
  • تمت إضافة مقطوعة موسيقية جديدة باللغة LocalSoftwareKeyboardController على الجهاز واجهة برمجة التطبيقات لاستبدال واجهة SoftwareboardController السابقة على حقل النص. (I84472، b/168778053)

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

  • فرض قيود على الاستخدام العلني لواجهات برمجة التطبيقات التجريبية (I6aa29 وb/174531520)

الإصدار 1.0.0-beta01

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

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

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

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

  • تمت إضافة معاودة الاتصال onStart إلى detectDragGestures (I67269، b/179995594)
  • لم تعد معدِّلات الحجم إلى الأساسيات تجريبية. (I15744)
  • تأكيدات dp التي تمت إزالتها (I798d2)
  • تمت إزالة معاودة الاتصال لـ SoftwareControllerController من كل النص التي سيتم استبدالها قريبًا بواجهة برمجة تطبيقات جديدة. (Iae869، b/168778053)
  • تمت إعادة تسمية MeasurementBlocks ليصبح measurePolicy، وقد أصبح واجهة ممتعة. تم تعديل أو تبسيط واجهات برمجة التطبيقات للتصميم لاستخدام MeasurementPolicy. (Icab48 وb/167662468 وb/156751158)
  • تم استبدال 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)
  • تمت إزالة طرق LayoutCoordinates، ويمكنك استخدام الدالة بدلاً من السمة for positionInParent وboundsInParent (I580ed وb/169874631 وb/175142755)
  • إنشاء TextInputSession جديد لجلسات الإدخال من مكونات نصية منخفضة المستوى مثل CoreTextField. (I8817f، b/177662148)
  • تعرض ميزة "العناصر القابلة للوضع" الآن المقاس الذي تم قياسه، ما يمثّل المقاس الذي تم قياسه بتصميم التصميم الفرعي. قد لا يراعي هذا الحجم قيود القياس. (Ib2729 وb/172560206 وb/172338608)
  • إضافة معدِّل selectGroup يسمح بوضع علامة على مجموعة علامات التبويب أو أزرار الاختيار لأغراض تسهيل الاستخدام (Ie5c29)
  • إضافة LazyListState.animate scrollToItem

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

  • تمت إعادة تسمية ScrollableState.smooth scrollBy() إلى animate scrollBy() تمت إعادة تسمية LazyListState.snapToItemIndex() إلى scrollToItem() تمت إعادة تسمية ScrollState.smooth ScrollTo() إلى animate scrollTo() (I35ded).

  • تم استبدال Modifier.zoomable بـ Modifier.transformable. تمت إضافة smoothPanBy، smoothRotationBy كوظيفة. (Ifc32b، b/175294473)

  • defaultFactory لـ compositionLocalOf staticCompositionLocalOf مطلوب الآن بدلاً من اختيارية.

    تؤدي هذه التغييرات إلى إزالة خطأ نوع محتمل لعناصر غير قابلة للقيم الفارغة التي لم يتم فيها توفير مصنع افتراضي. في السابق سيوفر مرجعًا فارغًا لنوع غير قابل للقيم الفارغة.

    بالنسبة إلى الأنواع القابلة للقيم الفارغة، ننصحك بتقديم { null } كإعداد تلقائي. المصنع.

    لا ننصح باستخدام مساحات محلية بأنواع غير قابلة للقيم الفارغة ما لم توفير طريقة افتراضية معقولة. إذا لم يكن هناك أي جهاز افتراضي معقول، يجب أن تطرح دالة defaultFactory lambda استثناءً. لكن طرح استثناء يعني أن المستهلكين المحليين سيكون لديهم تبعية ضمنية يتم تقديمها ولا يتم فرضها من خلال نظام الكتابة. (Ifbd2a)

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

  • تعمل الإجراءات النصية الآن على التحقّق من التركيز تلقائيًا (I13777، b/179648629)

  • تمت إزالة runBlockingWithManualClock (I15cdc، b/179664814).

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

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

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

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

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

  • تمت إزالة Modifier.tapالإيماءاتFilter. يمكنك استخدام Modifier.pointerInput { detectTapGestures(...) } كبديل. (I266ed، b/175294473)

  • تمت إزالة الاستهلاك الجزئي من نظام إدخال المؤشر. والطريقة المقترحة لتنسيق الاستهلاك الجزئي هي Modifier.nested Scroll. (Ie9c9b)

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

  • وقد تم إدراج AnimationClockObserverable والفئات الفرعية تمت إزالته. تمت إزالة الصور المتحركة العائمة. (Icde52، b/177457083)

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

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

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

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

  • تمت إضافة معدّلات requiredHeight(IntrinsicSize) وrequiredHeight(IntrinsicSize) إلى الحجم المطلوب للحجم المطلوب. (I0a6b4)

  • تمت إزالة emptyContent() المتوقفة. يمكنك استخدام {} كبديل. (Idb33f، b/179432510)

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

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

  • تمت إضافة مقطوعة موسيقية جديدة من LocalSoftwareControlController على الجهاز. واجهة برمجة التطبيقات لاستبدال واجهة SoftwareboardController السابقة على حقل النص. (I658b6، b/168778053)

الإصدار 1.0.0-alpha12

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

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

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

  • يتطلب Modifier.pointerInput الآن تذكُّر المفاتيح للإشارة إلى عندما يجب إعادة تشغيل الكوروتين للكشف عن مدخلات المؤشر والتبعيات لديك. (I849cd)
  • اختبار التحديث: ستبحث hasText() عن كلٍّ من نصوص الإدخال والتصنيف/التلميح/العنصر النائب في حقل النص (Iab803).
  • تمت إضافة PaddValues.Absolute ويمكن استخدامها في واجهات برمجة التطبيقات التي تقبل PaddingValues. (Ia5f30)
  • تم إيقاف onImeActionPerformed نهائيًا. يمكنك استخدام إجراءات لوحة المفاتيح بدلاً من ذلك (If0bbd وb/179071523)
  • من أجل مطابقة أفضل للتسمية باستخدام ImageBitmap وImageVector، تمّت إعادة تسمية ImagePainter ليصبح BitmapPainter إلى جانب VectorPainter. (Iba381، b/174565889)
  • استخدام واجهات برمجة تطبيقات أفضل لاختبار السلاسل الفرعية مع استخدام سلسلة فرعية كوسيطة (Icbe78)
  • تم تقديم سياق حول الكوروتينات في السمة InfiniteAnimationPolicy العنصر الذي سيتم تطبيقه في الرسوم المتحركة اللانهائية. "لا" بشكل تلقائي يتم تثبيت السياسة، إلا عند إجراء اختبارات باستخدام ComposeTestRule. (I50ec4، b/151940543)
  • Animatable.snapTo وAnimatable.stop هما الآن دالتان تعليق (If4288).
  • تم نقل ComponentActivity.setContent إلى استخدام androidx.activity.compose.setContent في وحدة androidx.activity:activity-compose. (Icf416)
  • تمت إزالة طرق التدمير وcopy() من عدة فئات حيث نادرًا ما تم استخدامها. (I26702، b/178659281)
  • تمّت إضافة دعم المفاتيح المخصّصة لـ LazyColumn/LazyRow. وهذا يسمح لنا بمعالجة إعادة ترتيب السلع بشكل أكثر ذكاءً. لذلك ستتحرك الحالة التي خزنتها في تذكر {} الكتل مع العنصر عند إعادة ترتيب العناصر أو إزالة العنصر من المنتصف.

    LazyColumn {
        items(users, key = { user -> user.id }) { ... }
    }
    
  • تم تغيير الإشارة#createInstance إلى @Composable، وتغيير LocalIndiations ليحتوي على مؤشر، وليس () -> المؤشر. (I5eeea، b/157150564)

  • تم استبدال الحقل "Constraints.enforce" بالعنوان "Constraints.constrain". (I8b8ea)

  • تم إيقافloadFontResource نهائيًا. استخدِم fontResource بدلاً من ذلك. imageResource وloadImageResource و"مُتّجهات" و"loadVectorResource" نهائيًا. يُرجى استخدام PainterResource بدلاً من ذلك. (I6b809)

  • لأسباب تتعلق بالأداء، تتخذ دلالات ScrollAxisRange الآن دالة lambdas التي تعرض قيمًا عائمة بدلاً من قيم عائمة مباشرة. (If4a35 وb/178657186)

  • تمت إضافة دلالات EditableText لتمييز نص الإدخال القابل للتعديل في حقل النص لإمكانية الوصول وطرق الاختبار المقابلة للتحقق من الدلالة (I8e07a).

  • لا يتيح Modifier.clickable الآن النقر المزدوج أو الطويل. استخدام Modifier.combinedClickable لتنفيذ هذه الوظيفة. (Iafad1)

  • تمت إعادة تسمية toIntPx() إلىRoundToPx(). (I9b7e4، b/173502290)

  • تم تغيير اسم IntBounds إلى IntRect وتحسين واجهة برمجة التطبيقات. (I1f6ff)

  • تم إيقاف Modifier.dragالإيماءاتFilter نهائيًا. يمكنك استخدام Modifier.pointerInput { detectDragGestures (...)} كبديل. بدلاً من ذلك، يمكنك استخدام Modifier.draggable لسحب محور واحد (I0ba93، وb/175294473).

  • تمت إعادة تسمية "وضع الاستراحة" ليتوافق مع "وضع الاستراحة" -> إعادة تسمية GenreLocal. كان يُطلق على "الأحياء" اسم AmbientFoo، أمّا الآن GenreLocals، فهو يطلق عليه LocalFoo. (I2d55d)

  • تم نقل الاختيار إلى الأساس. (I7892b)

  • وعلى غرار الطريقة التي أزلنا بها سابقًا عنصر state { 0 } القابل للإنشاء، ونعمل الآن على تعزيز الاستخدام، مثل remember { mutableStateOf(0) }، سنزيل savedInstanceState { 0 } قابل للإنشاء. يجب استخدام rememberSaveable { mutableStateOf(0) } بدلاً من ذلك، وسيتم تلقائيًا حفظها واستعادتها إذا كان النوع المستخدَم في MutableState مخزّنًا في الحزمة. إذا كنت تمرر عنصر حفظ مخصصًا في السابق، فأنت بحاجة الآن إلى استخدام حمل زائد جديد من writeSaveable والذي يحتوي على المعلمة stateSaver. سيظهر الاستخدام على النحو التالي: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26، b/177338004)

  • تمت إضافة دلالات كلمة المرور لتسهيل الاستخدام (I231ce).

  • تمت إضافة ProgressBarRangeInfo.Indeterminate لوضع علامة على أشرطة تقدّم غير محددة لإمكانية الوصول (I6fe05)

  • لم يتم الآن ضبط وقت التشغيل في الصورة المتحركة على نانو ثانية (If776a).

  • تم إيقاف @ComposableSequence بدلاً من استخدام ثلاثة تعليقات توضيحية أكثر تحديدًا.

    تغيّر اسم "@ComposableContract(restartable = false)" إلى "@NonRestartableComposable" أصبح @ComposableContract(readonly = true) @ReadOnlyComposable تغيّر اسم "@ComposableContract(preventCapture = true)" ليصبح @DisallowComposableCalls. تمت إزالة @ComposableContract(tracked = true). (I60a9d)

  • تم إيقاف برامج الخدمات emptyContent() و(@Composable () -> Unit).orEmpty() نهائيًا لأنّها لم تعُد لها أي تأثير أو قيمة إيجابية في الأداء (I0484d).

  • أصبح بالإمكان الآن إغلاق أدوات إعادة التركيب. ستنفّذ أدوات إعادة الإنشاء المغلقة حتى تكتمل عملية تكوين الكوروتينات الثانوية. تمت إعادة تسمية Recomposer.shutDown للإلغاء إلى "التباين" مع "إغلاق". (Ib6d76)

  • واجهات برمجة التطبيقات المرتبطة بـ LazyVerticalGrid مصنَّفة على أنّها تجريبية (Ia53e3 وb/178519862).

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

  • تمت إعادة تسمية RestorableStateHolder إلى SaveableStateHolder وتم نقلها إلى حزمة androidx.compose.runtime.saveable. تمت إعادة تسمية الطريقة الداخلية RestorableStateProvider إلى SaveableStateProvider. تمت إزالة النوع العام، لذا يمكنك ضبط "Any" كمفتاح. لم يعد هناك حاجة إلى التعليق التوضيحي التجريبي. (I0902e، b/174598702)

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

  • تمت إعادة تسمية Artefact androidx:compose:runtime:runtime-saved-instance-state ليصبح androidx:compose:runtime:runtime-saveable (I6dcac).

  • يتم حذف العديد من واجهات برمجة التطبيقات المتوقّفة نهائيًا في حزمة واجهة المستخدم. (I2f2dc)

  • تم إيقاف العنصرCompose:runtime-dispatch نهائيًا. يمكن الآن العثور على MonotonicFrameClock في إنشاء:وقت التشغيل يمكن العثور على AndroidUiDispatcher في compose:ui. (Ib5c36)

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

  • تمت إزالة canDrag من Modifier.scrollable. (Id66e7، b/175294473)

  • واجهة برمجة التطبيقات التي يستهدفها المكوّن الإضافي للمحول البرمجي في Compose تمت إعادة هيكلته لاستخدام واجهة بدلاً من محددة. لم تعد الواجهة تستخدم معلمة نوع.

    هذا تغيير داخلي يجب ألا يؤثر في المصدر التوافق مع التعليمات البرمجية ولكنه تغيير فاصل ثنائي. (I3b922، b/169406779)

  • تمت إزالة Modifier.scaleالإيماءاتFilter. يمكنك استخدام Modifier.zoomable بدلاً من ذلك. بدلاً من ذلك، يمكنك استخدام Modifier.pointerInput { detectMultitouchGestures { ... }} (Id5da1، b/175294473).

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

    • تمت إزالة CoreText وCoreTextField من واجهة برمجة التطبيقات العامة.
    • تمت إزالة التحميل الزائد لـ SelectionContainer متوقف نهائيًا (I99c19)
  • إزالة دوال التمرير غير المُعلّقة نهائيًا متابعة التغييرات من الإصدار الأخير، الانتقال بدون تعليق إزالة الدوال تمامًا. يُرجى التحويل إلى وضع التعليق الدوال بنفس الأسماء. يمكن الحصول على نطاق الكوروتين عبر تتذكرCoroutineScope(). (I3d39c، b/178169563)

  • تم إيقاف androidx.compose.foundation.layout.ConstraintLayout نهائيًا لصالح androidx.limitedtlayout.compose.ConstraintLayout. ستحتاج إلى إضافة اعتمادية على androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01. (I87adc)

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

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

  • توفّر Recomposer.runningRecomposers الآن سلسلة StateFlow العالمية من RecomposerInfo للقراءة فقط لمراقبة حالة المقطوعة الموسيقية المستمرة في العملية. تفضيل واجهة برمجة التطبيقات هذه على Recomposer.current()، والتي أصبحت الآن نهائيًا. (If8ebe)

الإصدار 1.0.0-alpha11

28 يناير 2021

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

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

  • إيقاف ScrollBy بدون تعليق، وإزالة scrollTo

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

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

  • تمت إضافة مَعلمة وصف المحتوى إلى الصورة والرمز. تُستخدم لتقديم وصف لخدمات تسهيل الاستخدام (I2ac4c).

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

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

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

  • تمت إزالة "data class" من الصفوف التالية:

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

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

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

  • تمت إزالة AbsoluteArrangement نهائيًا. (Iffa96 وb/177641870)

  • تمت إضافة المعلمة releaseMinConstraints إلى Box، لتحديد ما إذا كان يجب تمرير قيود الحدّ الأدنى الواردة إلى محتوى Box أم لا. القيمة التلقائية هي "خطأ". (I0125b، b/152613457)

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

  • تم إيقاف onCommit وonDispose وonActive نهائيًا لصالح واجهات برمجة التطبيقات SideEffect وDisposableEffect API (If760e).
  • تمت إعادة صياغة WithConstraints باسم BoxWithConstraints وتم نقلها إلى Foundation.layout. (I9420b، b/173387208)
  • تغييرات على وظائف Font/FontFamily/Typeface (الخط الطباعي)

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

  • أصبحت animateAsState الآن animateFooAsState، حيث Foo هو ونوع المتغير الذي يكون متحركًا. مثلاً: التعويم، Dp، الإزاحة، وما إلى ذلك (Ie7e25)

  • أصبحت الكثافة الآن نطاق المُستلِم لواجهات الترتيب. (I18aad)

  • يقبل TextFieldValue إمكانية إضافة التعليقات التوضيحية. ومع ذلك، فهذه تغيير في واجهة برمجة التطبيقات فقط ولا يمكن تعديل النصوص متعددة الأنماط تنفيذها حتى الآن.

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

  • تم تغيير AnnotatedString لتوسيع نطاقه من kotlin.CharSequence. وبالتالي، فإن الطول والتسلسل الفرعي هما الآن دوال مثيل، وتتم إزالة دوال الإضافات. (Iaf429)

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

  • يستبدل تذكرObserver واجهة ConnectionLifecycleObserver وقد تم إيقاف ConnectionLifecycleObserver نهائيًا.

    يُعد RememberObserver بديلاً لـ CompositionLifecycleObserver مع دلالات دلالية معدّلة الطرق التي تمت إعادة تسميتها. يمكن إجراء التغيير إلى واجهة برمجة التطبيقات الجديدة آليًا للكائنات التي لا يتم تذكرها سوى مرة واحدة والتي لا تزال هو الممارسة الموصى بها. ومع ذلك، إذا تم تحديد مرجع يتم تذكرها أكثر من مرة في المقطوعة الموسيقية onRemembered لكل مرجع حيث يتم استدعاء onEnter مرة واحدة فقط. onEnter استدعيت عدة مرات إذا تم استخدام الكائن في التركيبات الفرعية، مثل WithConstraints وScaffold مما يجعل الأغنية المنفردة مكالمة onEnter غير موثوقة وتمت إزالتها لمدة RememberObserver

    تضيف RememberObserver السمة onAbandoned والتي يتم استدعاؤها إذا كانت تم إرجاع مثيل واحد (RememberObserver) من معاودة الاتصال التي تم اجتيازها إلى remember ولكن لم يتم تذكرها في حالة المقطوعة الموسيقية وبالتالي، لن يتم مطلقًا استدعاء onRemembered. يمكن أن إذا أنهى استثناء المقطوعة الموسيقية قبل إكمال أو يتم تجاهل المقطوعة الموسيقية لأن الولاية كانت تنتج لم تعد إحدى المقطوعات الموسيقية لـ محدثة أو لم تعد موجودة احتاجت. إذا كان مثيل RememberObserver بعد الأغنية المنفردة مرجع التوصية أعلاه هو تتبع مورد خارجي يشير كل من onForgotten وonAbandoned إلى أن لم يعد هناك حاجة إليه. إذا كان الكائن يتتبّع العمل بدأت أو تم تخصيص موارد في onRemembered، onAbandoned يمكن تجاهلها لأنه لن يتم استدعاؤها إذا كانت السمة onRemembered استدعيت. (I02c36)

  • تمت إعادة تسمية TransformText.transformedText إلى TransformedText.text.

    • لم تعد TransformText فئة بيانات (Ie672a)
  • لم تعُد الفئات التالية فئات بيانات:

    • سلسلة تعليقات توضيحية
    • ParagraphStyle
    • نمط الإسبريسو
    • TextStyle
    • كثافة الخط
    • زخرفة النص
    • تحويل النص الهندسي
    • فهرس النص
    • نتيجة نصية
    • TextLayoutInput (Iaff99)
  • تمت إزالة الطرق التجريبية monotonicFrameAnimationClockOf (Ib753f وb/170708374).

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

  • يُرجى استخدام ImeAction.None بدلاً من ImeAction.NoAction.

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

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

  • تغيير التحويل المرئي ليصبح واجهة وظيفية (I3bba4)

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

  • تمت إزالة بيانات PointerInputData وتعديل بيانات PointerInputChange لمنحه جميع حقول PointerInputData. Made PointerInputEvent وPointerInputEventData داخليًا لأنه لا يتم استخدامها في أي واجهة برمجة تطبيقات عامة. (Ifff97، وb/175142755)

  • تمت إعادة تسمية TextInputService.onStateUpdated ليصبح updateState (Id4853).

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

الإصدار 1.0.0-alpha10

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

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

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

  • لم تعد ImeOptions وKeyOptions فئة بيانات (I3c898 وb/168684531)
  • التغييرات في VisualTransformation API
    • تمت إعادة تسمية OffsetMap إلى OffsetMapping
    • تمت إعادة تسمية OffsetMapping.identityOffsetMap إلى OffsetMapping.Identity
    • لم يعد تحويل كلمات المرور من فئة البيانات
    • تم نقل OffsetMapping إلى ملفها الخاص
    • (I0bdf3)
  • تغييرات في واجهة برمجة التطبيقات EditOperations API
    • تمت إعادة تسمية EditOperation باسم EditCommand
    • تمت إضافة لاحقة Command لعمليات التنفيذ الملموسة في EditOperation
    • لم تعد EditCommand فئات بيانات
    • تمت إعادة تسمية الدالة EditOperation.process إلىapplyTo
    • تمت إعادة تسمية InsertEventListener إلى enterEventCallback
    • (I0a366)
  • سرعة معدلة لتحتوي على أجزاء مكونة ورياضية العمليات التجارية. (Ib0447)
  • تمت إعادة تسمية @experimentalTesting إلى @experimentalTestApi لتصبح @experimentalTestApi. متسقة مع التعليقات التوضيحية المشابهة لواجهة برمجة التطبيقات (Ia4502، b/171464963)
  • تمت إضافة طريقة installHeader التجريبية لـ LazyColumn/LazyRow (I0a81d).
  • Ranamed Color.useOrElse() to Color.takeOrElse() (Ifdcf5)
  • تم إيقاف TestUiDispatcher. يمكنك استخدام Dispatchers.Main بدلاً من ذلك (Ic171f وb/175385255).
  • إضافة مفتاح تبديل إلى المؤسسة Strings.kt (I4a5b7، b/172366489)
  • تم نقل NativeClass إلى وجعلته داخلية. تم تعديل الاستخدامات المتعلقة بـNativeClass في تساوي عمليات التنفيذ "is MyClass" بدلاً من ذلك. (I4f734)
  • تم إيقاف FlowRow وFlowColumn. يُرجى استخدام تنسيق مخصّص بدلاً من ذلك. (I09027)
  • تم إيقاف Modifier.focus() وModifier.focusRequester() نهائيًا. بدلاً من ذلك، استخدِم Modifier.focusModifier() وModifier.focusReference() . (I75a48 وb/175160751 وb/175160532 وb/175077829)
  • تم تقديم SelectionRegistrar.notifySelectableChange لإعلام بالتحديثات القابلة للاختيار إلى SelectionManager. (I6ff30، b/173215242)
  • تم تغيير fun Dp.isFinite() إلى val Dp.isFinite (I50e00).
  • تمت إعادة تسمية Contraints#satisfiedBy إلى isSatisfiedBy. (I9cf5c)
  • تمت إضافة isSpecified وisUnspecified وUseOrElse. الفئات المضمنة ذات ثابت غير محدد. (I93f7b، b/174310811)

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

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

الإصدار 1.0.0-alpha09

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

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

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

  • إضافة واجهة قابلة للتمرير

    وهذا يتيح التعامل مع ScrollState وLazyListState كشيء شائع مما يسمح بتنفيذ التمرير المخصص عبر كلا النوعين.

    يؤدي هذا أيضًا إلى نقل smooth scrollBy إلى دالة الإضافة على Scrollable، الاستفادة من هذه الوظيفة. (I2153b)

  • تمت إضافة LazyVerticalGrid. (I17267، b/162213211)

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

  • بالنسبة إلى تعليق واجهات برمجة التطبيقات لإدخال المؤشر، تمت إعادة تسميتها HandlePointerInputScope إلى AwaitPointerEventScope و HandPointerInput() إلى awaitPointerEventScope() (Idf0a1، b/175142755)

  • تمت إضافة LazyListState.layoutInfo الذي يعرض قائمة الأحجام والإزاحة للعناصر المرئية حاليًا (If8678 وb/170472532)

  • تمت إزالة التعليق التوضيحي TestingalPointerInput (Ia7a24)

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

  • أضِف مَعلمة flipLayout إلى LazyColumn/Row. عندما يتم إنشاء true عنصر من الأسفل إلى الأعلى ويعني LazyListState.firstVisibleItemIndex == 0 أنّ العنصر الأول يقع في الأسفل. (I552ae، b/166589935)

  • تمت إضافة معلَمة عمودية Arrangement في LazyColumn. تمت إضافة مَعلمة ترتيب أفقي إلى LazyRow. يسمح لنا الترتيب بإضافة مسافة بين العناصر وتحديد ترتيب العناصر عندما لا يكون لدينا ما يكفي منها لملء الحد الأدنى للحجم بالكامل. (Icf79a، b/170394300)

  • تستخدم ميزة "إيماءات اللمس المتعدد" الآن معاودة اتصال واحدة مع ميزات والنقاط المركزية والتحريك والتكبير/التصغير والتدوير. (Ie6e1c)

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

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

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

    تمّت إضافة لأجهزة ComposeData وSurface Group كـ لاستبدال واجهة برمجة تطبيقات أدوات ui لاستخدامها من أجل استخراج المقطوعة الموسيقية. هذه الإعلانات متاحة للجميع، ولكنّها ليست مُعَدة للاستخدام خارج واجهة برمجة تطبيقات ui-tooling API، وذلك لأنها توفّر المعلومات الأولية التي تفسّرها واجهة برمجة التطبيقات ui-tooling API (I31a9c)

  • تمت إعادة ضبط ShaderBrush على بإنشاء مثيل تظليل، معلومات تغيير حجم الرسم متوفر. وهذا مفيد لتحديد التدرجات التي تحت حدود الرسم الكاملة لعنصر قابل للإنشاء في وقت التأليف، دون الحاجة إلى تنفيذ عمليات تنفيذ DrawModifier المخصصة.

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

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

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

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

  • تمت إعادة تسمية AccessibilityLabel إلى contentDescription. تمت إعادة تسميةAccessibilityValue إلى StateDescription. (I250f2)

  • تم إدخال العديد من الدوال الجديدة في SelectionRegistrar، وتم أيضًا تغيير اسم onPositionChange إلى notificationsPositionChange. (Ifbaf7)

  • AndroidOwner تم إنشاؤه داخليًا (Ibcad0، b/170296980)

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

  • تم تغيير الواجهة Applier لتبسيط بناء الأشجار من أسفل إلى أعلى بدلاً من من أعلى إلى أسفل.

    تمت إعادة تسمية الطريقة insert() إلى insertTopDown().

    تمت إضافة طريقة جديدة، insertBottomUp().

    يُدرج التطبيق العُقد في الشجرة التي يعدّلها استخدام insertTopDown() أو insertBottomUp() حسب أيهما أفضل أداءً

    بعض الأشجار، مثل LayoutNode وView، أكبر بكثير أكثر كفاءة في البناء من أسفل إلى أعلى من إنشاءه من أعلى إلى أسفل. قبل هذا التغيير، كان هناك حاجة إلى حزمة من الإدخالات لتنفيذ التغييرات من الأسفل إلى الأعلى يجب نسخه إلى كل تطبيق يحتاج إلى ترتيب الإنشاء من أجل الأداء. مع هذا التغيير، Applier تلغي insertBottomUp() لإنشاء ترتيب متدرج من الأسفل إلى الأعلى insertTopDown() لبناء الشجرة من أعلى إلى أسفل (Icbdc2)

  • تمت إضافة PainterResource API معالجة كائنات الطلاء التي يتم تحميلها بشكل غير شفاف من تنسيقات مواد العرض التي تم بكسلتها (مثل ملفات PNG) أو VectorDrawables. لم يعد المستهلكون لتحديد نوع مادة العرض مسبقًا ويمكنها استدعاء هذه الطريقة للحصول على كائن Painter للاستخدام في عناصر الصور القابلة للإنشاء أو مفاتيح تعديل الطلاء. (I2c703، b/173818471)

  • تمت إضافة دالة itemAnnotatedString الأصلية بالترتيب. لإنشاء AnnotatedString. سلسلة تعليقات توضيحية متوقفة نهائيًا منشئ المشروع. (Idfe0b)

الإصدار 1.0.0-alpha08

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

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

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

  • تمت إزالة مَعلمة maxLines من CoreTextField. في حال أردت تقييد ارتفاع الحقل النصي بعدد الأسطر، استخدِم BasicTextField بدلاً من ذلك. (Iec002)
  • تم تغيير طريقة await*TouchSlop() إلى عدم اكتشاف المؤشر لأسفل وإعادة تسميتها إلى *OrCancellation تمت أيضًا إزالة الحاجة إلى مَعلمة orientationLock. (Ie96e1)
  • تمت إضافة فحص Lint لتسمية مَعلمات lambda القابلة للإنشاء وتحديد موضعها، وذلك للتحقّق من الاتساق مع إرشادات Compose. تم أيضًا نقل بعض واجهات برمجة التطبيقات باستخدام children كاسم لملف lambda اللاحقة إلى content، وفقًا لفحص Lint والإرشادات. (Iec48e)
  • تم نقل foundation:foundation-text من واجهات برمجة التطبيقات إلى foundation:foundation. ظلت بنية الحزمة كما هي (Id3eb2).
  • أداة جديدة لرصد إيماءات اللمس المتعدد، بما في ذلك مساعدًا في اكتشاف الدوران والتكبير/التصغير والتحريك. (Ic459d)
  • أداة جديدة لرصد إيماءات السحب التي تعلّق مؤشر الماوس واجهة برمجة تطبيقات الإدخال، بما في ذلك قفل الاتجاه. (Icef25)
  • تمت إعادة تسمية VectorAsset إلى ImageVector تم نقل VectorAsset إلى "Builder" وإعادة تسميته إلى فئة داخلية من ImageVector وفقًا إرشادات مجلس واجهات برمجة التطبيقات تمت إضافة typealias من VectorAssetBuilder إلى إلى ImageVector.Builder for compat. (Icfdc8)
  • تمّت إعادة تسمية ImageAsset ذات صلة بـ ImageBitmap. (Ia2d99)
  • تم نقل سمات الدلالة الأساسية إلى واجهة المستخدم (I6f05c)
  • إضافة واجهات برمجة تطبيقات التمرير المستندة إلى الكوروتين:

    تضيف LazyListState.snapToItem وLazyListState.smoothScrollBy، بالإضافة إلى المستوى الأدنى واجهات برمجة التطبيقات للتحكم في التمرير. توفر واجهات برمجة التطبيقات هذه واجهة تعليق للتحكم في التمرير وينتظر حتى انتهاء التمرير قبل العودة. (Ie5642)

  • تمت إضافة معلمة singeLine إلى BasicTextField وTextField وOutdTextField. يمكنك ضبط هذه المعلمة على "صحيح" لجعل الحقل النصي سطرًا واحدًا قابلاً للتمرير أفقيًا. (I57004، b/168187755)

  • أداة رصد الإيماءات للنقر والنقر مرّتين والضغط مع الاستمرار وتمت إضافة مؤشر صحفي باستخدام مؤشر التعليق الجديد إدخال. تمت إضافة بعض برامج الخدمات لتسهيل عملية للمطورين كتابة أدوات الكشف عن الإيماءات الخاصة بهم. (I00807)

  • يجب إضافة Modifier.focusable إلى الأساس. استخدِم هذا الخيار لإضافة سلوك يمكن التركيز عليه إلى المكوِّن، مع استخدام دلالات دلالية صحيحة وإمكانية الوصول إليه. (I41eb9، وb/152525426، وb/162865824)

  • تمت إزالة واجهات برمجة التطبيقات المتوقّفة نهائيًا: تمت إزالة الحدود، استخدِم BorderStroke بدلاً من ذلك. تمت إزالة Modifier.DrawBorder. يمكنك استخدام Modifier.الحدود بدلاً من ذلك. تمت إزالة Modifier.gravity. استخدِم Modifier.محاذاة بدلاً من ذلك. تمت إزالة الحزمة، استخدِم Box بدلاً من ذلك (I32c2b، b/172470874)

  • تمت إعادة تسمية AbsoluteArrangement إلى Arrangement.Absolute. (If26f2)

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

  • تم نقل واجهات برمجة تطبيقات DrawModifier من حزمة androidx.compose.ui إلى حزمة androidx.compose.ui.Draw. تم إنشاء ملف DrawModifier تسري.kt إلى بتضمين أنواع الأسماء المستعارة/طرق المساعدة للمساعدة في ترحيل من متوقفة إلى الحالي واجهات برمجة التطبيقات. (Id6044، b/173834241)
  • تمت إعادة تسمية Modifier. drawLayer إلى Modifier.graphicsLayer. تم أيضًا تحديث الفئات ذات الصلة إلى GraphicsLayer وفقًا ملاحظات حول مجلس واجهة برمجة التطبيقات (I0bd29، b/173834241)
  • تمت إزالة <T> من بيان SubcomposeLayout. يمكنك الآن استخدامه بدون تحديد نوع. (Ib60c8)
  • تم إنشاء وقت تشغيل PointerInputData حقول الموضع غير قابلة للقيم الفارغة. (Id468a)
  • يضبط MaterialTheme الآن الألوان الصحيحة لمقابض التحديد وخلفية التحديد. يمكن للتطبيقات غير متعددة الأبعاد استخدام AmbientTextSelectionColors يدويًا لتخصيص الألوان المستخدَمة في الاختيار. (I1e6f4 وb/139320372 وb/139320907)
  • تمت إعادة تسمية معلَمة المحاذاة في Box إلى contentAlignment. (I2c957)
  • تمت إعادة تسمية معدِّلات offsetPx إلى الإزاحة. تأخذ الآن معلمات lambda بدلاً من State. (Ic3021، b/173594846)
  • تمت إضافة WindowManager.isWindowFocused للتحقق مما إذا كانت نافذة المضيف هي محل التركيز، ونافذة WindowFocusObserver التي توفر استدعاء onWindowFocusChanged. (I53b2a، b/170932874)
  • تمت إضافة مَعلمة renameInput إلى TextInputService#onStateUpdated (I3e8f5 وb/172239032 وb/171860947).
  • واجهة برمجة تطبيقات TextFieldValue المُحدَّثة
    • تم إعداد TextFieldValue.composition للقراءة فقط.
    • تمت إزالة استثناء تم طرحه لنطاق تحديد غير صالح (I4a675، b/172239032)
  • تم إيقاف "وضع الاستراحة" نهائيًا باستخدام اللاحقة Ambient، واستبدلها بسمات جديدة تبدأ بـ "وضع الاستراحة"، وذلك وفقًا لإرشادات واجهة برمجة التطبيقات الخاصة بميزة "بيئة المحيطة" و"Compose" الأخرى. (I33440)
  • تمت إضافة برنامج تضمين Android Typeface. يمكنك تحميل ملف Android الخط الطباعي عبر دالة typeface، أي typeface(Typeface.DEFAULT). تمت إعادة تسمية typefaceFromFontFamily() أيضًا إلى typeface() (I52ab7).
  • تمت إضافة فحص الوبر للتأكد من أنّ مصانع المعدّل تستخدم androidx.compose.ui.composed {} داخليًا، بدلاً من وضع علامة عليها على أنّها @Composable. (I3c4bc)
  • تمت إضافة فحص الوبر للتأكد من أن وظائف أداة التعديل المصنعة محددة كإضافات في أداة التعديل، بحيث يمكن ربطها معًا بطلاقة. (I07981)
  • تمت إعادة تسمية وسيطة integrationAllDescendants للدلالات إلى integrationDescendants. (Ib6250)
  • التحكم في الوقت في الاختبارات (TestAnimationClock واستخداماته) تجريبي الآن (I6ef86، b/171378521)
  • إزالة وحدة اختبار واجهة المستخدم القديمة وأذرعها (I3a7cb)
  • تمت إعادة تسمية TextUnit.اكتساب (اكتساب) إلى TextUnit.غير محدّد بما يتوافق مع الوحدات الأخرى. (Ifce19)
  • تم تحديث واجهة المحاذاة وجعلها تعمل. (I46a07، b/172311734)
  • تم دمج وحدة "foundation:foundation-text" في foundation:foundation (Idac0f).
  • إيقاف العمل بالمكان(إزاحة) والموضع ذي الصلة(الإزاحة). استخدام عمليات التحميل الزائدة مع إزاحة int بدلاً من ذلك (I4c5e7)
  • تم تغيير اسم "id" إلى "layoutId" لحساب "LayoutIdParentData". تمت إعادة تسمية "Measurable.id" إلى "Measurable.layoutId". (Iadbcb, b/172449643)

الإصدار 1.0.0-alpha07

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

تم طرح الإصدارات androidx.compose.foundation:foundation:1.0.0-alpha07 وandroidx.compose.foundation:foundation-layout:1.0.0-alpha07 وandroidx.compose.foundation:foundation-text:1.0.0-alpha07. يحتوي الإصدار 1.0.0-alpha07 على هذه عمليات التنفيذ.

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

  • على نحو مشابه لـ Modifier.fillMaxSize[Width|Height]، نتيح الآن الكسور في Modifier.fillParentMaxSize[Width|Height] داخل نطاق LazyColumn/Row (I797e2، b/166586426).
  • تمت إزالة "KeyboardOptions.toImeOptions" من واجهة برمجة التطبيقات العامة. (Ic2e45)
  • تم إيقاف الأساسيات AmbientTextStyle وProvideTextStyle وAmbientContentColor. بدلاً من ذلك، استخدم الإصدارات الجديدة المتوفرة في مكتبة المواد. بالنسبة للتطبيقات غير متعددة المواد، يجب عليك بدلاً من ذلك إنشاء بيئات محددة لنظام التصميم يمكن استخدامها في مكوناتك الخاصة. (I74acc، b/172067770)
  • تم إيقاف Foundation.Text نهائيًا واستبداله بـmaterial.Text. للحصول على واجهة برمجة تطبيقات نصية أساسية غير معرَّفة لا تستهلك قيمًا من مظهر معيّن، يُرجى الانتقال إلى androidx.compose.foundation.BasicText. (If64cb)
  • تمت إضافة maxLines إلى TextFields (Ib2a5b).
  • تعديل TextFields لقبول TableOptions (Ida7f3)
  • تمت إضافة BoardOptions لاستخدامها في حقول النص (I9ca32)
  • إضافة BasicText كواجهة برمجة تطبيقات بدون تصميم للنص، بشكل متوازي مع BasicTextField. (I28268)
  • تمت إزالة التعليق التوضيحي تجريبي LazyDsl. يمكن الآن استخدام LazyColumn/LazyRow بدون إضافة @OptIn (Idab7a، b/166584730).
  • تم إيقاف BaseTextField نهائيًا. استخدِم BasicTextField بدلاً من ذلك. (I896eb)
  • تمت إضافة BasicTextField كبديل لكل من CoreTextField وBaseTextField (Id4cea).
  • إزالة LazyColumnItems/LazyRowItems المتوقّفة نهائيًا (I1d8a8)
  • تمت إزالة العناصر القابلة للإنشاء المتوقّفة لضبط حجمها إلى القياسات الأساسية. (I18537، b/171811496)
  • تمت إعادة تسمية relatedPaddingFrom إلى المعدّة حشوة من. تمت إضافة المُعدِّل المجمّعةFromBaseline لتسهيل تحديد المسافات من حدود التنسيق إلى الأسس النصية. (I0440a، b/170633813)
  • تمت إضافة المعلمة matchHeightConstraintsFirst إلى مُعَدِل WebViewRatio، والتي يمكن استخدامها لتحديد مُعدّل الحجم لقيود الارتفاع قبل تجربة مطابقات العرض. (Ie7c43، وb/155290593)
  • تمت إزالة DpConstraints المتوقفة نهائيًا. (I87884، b/171702471)

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

  • تم تقديم ScaleFactor فئة مضمّنة لتمثيل المقياس العوامل الأفقية والرأسية محاور مستقلة عن بعضها البعض بالترتيب لدعم حالات الاستخدام غير الموحّدة للتحجيم.
    • تمت إضافة طريقة computeScaleFactor إلى مقياس المحتوى
    • تمت إضافة ContentScale.FillBounds للأداء. تحجيم غير منتظم لتوسيع src لتشغل الوجهة بالكامل.
    • تمت إضافة طرق عامل التشغيل للاحتساب. مَعلمات ScaleFactor مع مَعلمات Size.
    • (Ic96a6، b/172291582)
  • تم نقل CapToBitmap إلى CapToImage. (I86385)
  • وضع علامة على CoreText كـ @internalTextApi. استخدِم BasicText بدلاً من ذلك. (I6aaeb)
  • إعادة تسمية خيارات لوحة المفاتيح باسم ImeOptions (I82f36)
  • تم نقل boardType وImeAction إلى لوحة المفاتيحOptions (I910ce)
  • تم وضع علامة CoreTextField على أنّها @internalTextApi. استخدِم BasicTextField بدلاً من ذلك (Ie2469).
  • تمت إزالة التعليق التوضيحي DemoalSubcomposeLayoutApi. يمكن الآن استخدام SubcomposeLayout بدون إضافة @OptIn (I708ad)
  • تقديم وحدة ui-test-junit4 (Ib91f8)
  • تم تحديث واجهة برمجة التطبيقات Icon API لاستخدام Color.Unspecified كلون خفيف محتمل يرسم الألوان المتوفرة الأصل أو الرسم بدون ColorFilter. سابقًا يحاول تجاهل التلوين باستخدام لون.غير محدد مع لون شفاف ينتهي بها بدون عرض أي شيء على الإطلاق. (I049e2، b/171624632)
  • تم نقل MeasurementResult من MeasurementScope. (Ibf96d، b/171184002)
  • تم نقل العديد من الرموز ذات الصلة بالتنسيق من androidx.compose.ui إلى androidx.compose.layout.ui. (I0fa98، b/170475424)
  • تم نقل androidx.ui.test إلى androidx.compose.ui.test (I9ffdb)
  • تم نقل FirstBaseline وLastBaseline إلى حزمة androidx.compose.ui.layout (Ied2e7)
  • تمت إضافة SelectionContainer بدون معاودة الاتصال (Ibfadb)
  • إضافة اختبارات لـ SelectionHandles' المواضع في SelectionContainer. (Ie93db)
  • تمت إضافة خيار IME للتصحيح التلقائي في لوحة المفاتيح (I57b8d)

الإصدار 1.0.0-alpha06

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

تم طرح الإصدارات androidx.compose.foundation:foundation:1.0.0-alpha06 وandroidx.compose.foundation:foundation-layout:1.0.0-alpha06 وandroidx.compose.foundation:foundation-text:1.0.0-alpha06. يحتوي الإصدار 1.0.0-alpha06 على هذه عمليات التنفيذ.

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

  • تم نقل androidx.compose.foundation.Icon إلى androidx.compose.material.Icon. يمكنك أيضًا استخدام مكوّن الصورة / Modifier.paint() مع "الرسام" إذا كنت لا ترغب في استخدام مكتبة المواد. (I9f622)
  • تمت إضافة InteractiveState إلى Modifier.scrollable و ScrollableColumn وLazyColumnFor (I81566 وb/169509805).
  • تمت إضافة optByBaselines إلى RowScope وتمت إعادة تسمية lineWithSiblings إلى deleteBy (I06503، وb/170628732).
  • تم إنشاء Box دالة مضمنة. (Ibce0c، b/155056091)
  • تمت إضافة maxLines إلى CoreTextField (Ibee58 وb/143687793).
  • تمت إضافة soft wrap إلى CoreTextField. (I21a4b)

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

  • إيقاف العمل بأداة VectorPainter في فخدمة تذكرVectorPainter لتحسين الإشارة إلى أن واجهة برمجة التطبيقات القابلة للإنشاء داخليًا يستفيد من فكرة "تذكّر" للاحتفاظ بالبيانات عبر والمقطوعات الموسيقية. (Ifda43)
  • تفعيل الانتقالات في ComposeTestRule إزالة الخيار إلى تفعيل المؤشر الوامض من ComposeTestRule. (If0de3)
  • تمت إضافة خيار لوحة مفاتيح سطر واحد إلى CoreTextField (I72e6d).
  • تمت إعادة تسمية واجهة برمجة تطبيقات Radius API إلى نصف قطر الزاوية للتعبير بشكل أفضل وكيف يتم استخدامها خلال Compose. تم تعديل المستندات للإشارة إلى أن تكون أقطار الزاوية السالبة مثبَّتة إلى الصفر. (I130c7، b/168762961)
  • إضافة إمكانية تحديد معلومات أداة الفحص في مفتاح التعديل المكتوب (Idee08 وb/163494569)
  • تمت إضافة خيار محرر أسلوب الإدخال (IME) الخاص بالكتابة بالأحرف اللاتينية الكبيرة في لوحة المفاتيح (I8ac38)
  • إصلاح موضع مقبض Rtl (I6e1e0)
  • التغيير المعطل: تمت إزالة القيمة المعروضة من PointerInputFilter.onPointerEvent(...) نظرًا لأن القيمة الوحيدة التي ينبغي تغييرها في أحداث المؤشر هي بيانات الاستهلاك. بدلاً من عرض البيانات من PointerInputFilter.onPointerEvent(...)، يمكنك الآن فقط تغيير بيانات الاستهلاك الخاصة بأحداث Pointerالأحداث التي تم تمريرها. (I6acd0)
  • تمت إضافة خيار SelectAll إلى قائمة التحديد (Ief02b).

الإصدار 1.0.0-alpha05

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

تم طرح الإصدارات androidx.compose.foundation:foundation:1.0.0-alpha05 وandroidx.compose.foundation:foundation-layout:1.0.0-alpha05 وandroidx.compose.foundation:foundation-text:1.0.0-alpha05. يحتوي الإصدار 1.0.0-alpha05 على هذه عمليات التنفيذ.

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

  • يدعم CoreTextField الآن وظيفة المؤشر (Id23aa).
  • إيقاف واجهات برمجة التطبيقات contentColor() وcurrentTextStyle()، واستبدالهما ببيئة AmbientContentColor وAmbientTextStyle على التوالي يمكنك الوصول إلى القيمة الحالية باستخدام .current في ميزة "وضع الاستراحة"، كما هي الحال مع أي إعدادات أخرى في البيئة المحيطة. تم إجراء هذا التغيير من أجل الاتساق وتجنب وجود طرق متعددة لإنجاز نفس الشيء. بالإضافة إلى ذلك، يعيد تسمية بعض الخصائص المحيطة لوصف الغرض منها بشكل أفضل على النحو التالي:

    • ContentColorAmbient -> لون المحتوى المحيط
    • TextStyleAmbient -> نمط النص المحيط
    • IndisionAmbient -> مؤشر الاستراحة
    • EmphasisAmbient -> مستويات التركيز المحيطي
    • RippleThemeambient -> AmbientRippleTheme (I37b6d)

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

  • وفي إطار توحيد المعايير قيم الحارس للفئات المضمنة، تغيير اسم اللون.بدون ضبط إلى لون.غير محدد لتحقيق الاتساق مع الفئات الأخرى المضمَّنة (I97611، وb/169797763)
  • تمت إضافة إجراءات تسهيل الاستخدام "النسخ/اللصق/القص" (I6db4f).
  • تم تقديم TextOverflow.None. عندما يكون التجاوز "None" ("بدون")، لن يتعامل "النص" مع التجاوز بعد الآن، وسيبلغ LayoutNode بحجمه الفعلي. (I175c9، b/158830170)
  • الحجم المحدّث.غير محدد المتغيرة لتكون Float.NaN بدلاً من Float.POSITIVE_INFINITY. تم تعديل عمليات تنفيذ Painter إلى يمكنك التحقّق من المقاس.غير محدَّد أيضًا كأحجام غير محدودة. (I95a7e)
  • تمت إضافة وحدة إنشاء الصفحات ودمج الصفحات (Ib85da).
  • تعديل LazyListScope لتلقّي القيم القابلة للقيم الفارغة (I1765b)
  • تمت إعادة تسمية OnPositionedModifier إلى OnGloballyPositionedModifier وتتم إعادة تسمية onPositioned() إلى onGloballyPositioned(). (I587e8، b/169083903)
  • تمت إضافة نماذج للعمود الكسول/الصف (Idc16d)
  • حل مشكلة العناصر وطرق itemIndexed للسماح بـ emptyList (I06647)
  • إضافة DSL لتحديد معلومات أداة الفحص (Ic9a22)
  • انقل ضغطة طويلة إلى نص. (Iff2bc)
  • إيقاف التحديد في النص وعرض توضيحي. (Ie7e97)
  • إتاحة التحويل من AnnotatedString إلى SpannableString لتسهيل الاستخدام (Ief907)
  • تمت إزالة PointerInputFilter.onPointerInput(...). ويجب استخدام السمة PointerInputFilter.onPointerEvent(...) بدلاً منها. (I6f04a)

الإصدار 1.0.0-alpha04

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

تم طرح الإصدارات androidx.compose.foundation:foundation:1.0.0-alpha04 وandroidx.compose.foundation:foundation-layout:1.0.0-alpha04 وandroidx.compose.foundation:foundation-text:1.0.0-alpha04. يحتوي الإصدار 1.0.0-alpha04 على عمليات التنفيذ هذه.

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

  • تمت إعادة تسمية الحزمة إلى Box. وسيتم إيقاف المؤسسة الحالية في السابق.واستخدام Box الجديد في compose.foundation.layout. يتمثّل سلوك Box الجديد في تكديس العناصر الثانوية الواحد فوق بعضها عندما يكون له عدة عناصر فرعية، وهذا يختلف عن المربع السابق، والذي كان يعمل بشكل مشابه للعمود. (I94893، b/167680279)
  • تم إيقاف معلمات تزيين الصندوق نهائيًا. إذا أردت إضافة زخارف/مساحة متروكة على العلبة، يمكنك استخدام Modifiers بدلاً من ذلك (Modifier.background, Modifier.للحدّ، أو Modifier.حشو) (Ibae92، b/167680279)
  • أضِف فئة LazyListState جديدة. يسمح هذا بالملاحظة والتحكم في موضع التمرير مكونات LazyRow وLazyColumn. يمكن إنشاء المثيلات باستخدام تذكر LazyListState() وتمريرها إلى معلمة الحالة الخاصة المكون. حاليًا، يمكن أن يكون أول عنصر مرئي وإزاحة ملاحظتها في هذا الإصدار الأولي. (Ic7cb7، b/159307669)
  • يتم الآن حفظ موضع القائمة الكسول وإزاحة التمرير تمت استعادتها في جميع أنشطة الترفيه (Ie045f، وb/166589058)
  • إضافة إجراء دلالي للنقرة الطويلة (I6281b، b/156468846)
  • تمت إضافة الأداة Mutatormatex لإبقاء مغير واحد الحالة المشتركة بمرور الوقت وإلغاء المغيرات المتضاربة حسب الأولوية (I3f975)
  • ، blinkingCursorEnabled وtextInputService كلمة المرور @visibleForTesting، جعلهم واجهة برمجة تطبيقات داخلية وإخفاء kdoc (I554eb، b/168308412)
  • تمت إزالة المعلمة inlineContent من النص الذي يتضمن إدخال سلسلة. لن يتم استخدام هذه السياسة لأنّه يجب أن يعمل inlineContent مع AnnotatedString. (Ief403)
  • تمت إزالة واجهات Arrangement API المتوقّفة نهائيًا. (Ic576d، وb/168297922، وb/168297923)
  • تمت إضافة المَعلمة unbounded إلى مُعدّلات wrapContentSize، التي تُتيح قياس عنصر التنسيق بحدود قصوى غير محدودة. (I77951، b/158559319)
  • لقد منعنا عمليات الاستيراد الثابتة لمحتويات نطاقات التنسيق (مثل deleteWithSiblings في RowScope). يجب استخدام بديل النطاق الصريح: with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }. (I216be، b/166760797)

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

  • تم تحديث العديد من واجهات برمجة تطبيقات الرسومات
    • تم تعديل المقياس والتدوير. التحويل من واجهات برمجة التطبيقات إلى استهلاك معلمة الإزاحة لتمثيل المحور الإحداثيات بدلاً من الأعداد العائمة المنفصلة معاملات للإحداثيات س/ص في DrawScope وDrawTransform
    • تمت إزالة Rect.expandToInclude وRect.join طرق
    • تم تعديل مستندات "النطاق الجغرافي" للإشارة إلى الشكل البيضاوي. بالإضافة إلى جهاز الحركة البيضاوية
    • تمت إضافة وثائق للإشارة إلى الدالة الإنشائية العامة للنطاق الجغرافي المضمّن في الفئة، حيث لن يتم استدعاءها مباشرةً يجب إنشاء مثيل لكائنات النطاق الجغرافي من خلال دوال إنشاء الدوال
    • تمت إزالة واجهات برمجة تطبيقات RoundRect لاستعلام أعلى يمين أسفل يمنى أسفل المنتصف، وما إلى ذلك
    • تم إيقاف Rect.shift لصالح Rect.translate
    • تمت إزالة واجهتَي برمجة تطبيقات RoundRect.grow وRect.shrink
    • تمت إعادة تسمية RoundRect.outerRect إلى Rect.boundingRect.
    • تمت إزالة RoundRect.mediumRect/tallMiddleRect/wideMiddleRect وطرق Rect.isStadium
    • تمت إعادة تسمية RoundRect.longestSide إلى RoundRect.maxDimension.
    • تمت إعادة تسمية RoundRect.shortestSide إلى RoundRect.minDimension.
    • تم تغيير RoundRect.center إلى خاصية بدلاً من دالة.
    • تم تعديل الدالة الإنشائية RoundRect لاستخدام خصائص النطاق الجغرافي. بدلاً من المعلمات الفردية لقيم نصف القطر x/y
    • تمت إزالة واجهات برمجة التطبيقات ذات الحجم التي افترضت أنها كانت مستطيلة ذات نقطة الانطلاق عند 0,0
    • تمت إضافة واجهة برمجة تطبيقات مدمرة إلى Radius
    • تم نقل دوال إضافات RoundRect المتعددة التي سيتم المواقع بدلاً من ذلك
    • (I8f5c7، b/168762961)
  • تحسين الأداء لـ LazyColumnFor/LazyRowForبعد الانتقال من خلال عدم إجراء عمليات إعادة ابتكار غير ضرورية أثناء كل تمرير (I64f65 وb/168293643 وb/167972292 وb/165028371)
  • تم إصلاح العطل في LazyColumnFor/LazyRowFor بعد التمرير ثم تغيير العناصر وتنفيذ الانتقال التلقائي للأعلى عند إزالة العنصر الذي كان مرئيًا سابقًا كي لا نعرض فجوات فارغة في النهاية (I220ab، b/161480164، b/167855468)
  • لم يعُد يُسمح بتضمين ميزة التمرير القابلة للتمرير في حاويات الاتجاهات نفسها، مثل ScrollableContainer وLazyColumnFor. لم تكن هذه الميزة متاحة على الإطلاق، وتسببت في خسارة كبيرة في عملية إنشاء عناصر LazyColumnFor (I6e101).
  • تم تحديث العديد من واجهات برمجة تطبيقات الرسومات
    • تم تعديل واجهات DrawScope API من خلال إضافة النطاق المستهدَف. طرق التحويل للإشارة إلى أن يتم التحويل إلا في عملية معاودة الاتصال وتتم إزالتها بعد استدعاء الاتصال
    • تم تعديل وثائق postPath للإشارة إلى المسار بدلاً من المستطيل المستدير
    • تم إصلاح تباعد في الوثائق للمعلمة الصحيحة في trackPath
    • تمت إعادة تسمية DrawScope.drawCanvas إلى drawIntoCanvas و تمت إزالة معلَمة الحجم
    • تمت إعادة تسمية معلمات dx/dy في طريقة الإدخال إلى أفقي ورأسي
    • إضافة إدراج زائد يوفر نفس إدخال قيمة لكل الحدود الأربعة
    • تمت إزالة المستندات المتعلقة بطريقة الإدخال التي تشير إلى سيتم تطبيق هذه المساحة الداخلية على جميع الجوانب الأربعة
    • تم تعديل المستندات الخاصة بصف Rect.
    • تم تعديل التعليقات على معلَمات Rect لتتطابق مع kdoc النمط
    • تمت إزالة Rect.join وRect.expandToInclude
    • تم إنشاء حمل زائد لـ Rect.translate(offset) و تم إيقاف Rect.shift نهائيًا
    • (If086a وb/167737376)
  • إضافة Accessibility scrollState إلى خصائص الدلالة. (Ifeda9)
  • جعل TextRange مضمَّنًا لتجنب إنشاء الكائنات. (Id034b)
  • تمت إزالة قيود الفقرات. يتم تمرير "العرض" مباشرةً إلى الفقرة الآن. (Ica712)

الإصدار 1.0.0-alpha03

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

تم طرح الإصدارات androidx.compose.foundation:foundation:1.0.0-alpha03 وandroidx.compose.foundation:foundation-layout:1.0.0-alpha03 وandroidx.compose.foundation:foundation-text:1.0.0-alpha03. يحتوي الإصدار 1.0.0-alpha03 على هذه عمليات التنفيذ.

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

  • تمت إعادة تسمية InnerPadding إلى PaddingValues. (I195f1، b/167389171)
  • وتمت إعادة تسمية استخدامات الجاذبية باستمرار للمحاذاة أو المحاذاة في واجهات برمجة التطبيقات للتصميم. (I2421a، b/164077038)
  • تمت إضافة معلَمة محاذاة إلى حزمة، ما يسمح بتحديد المحاذاة التلقائية لجميع عناصر التكديس الثانوية. (Ie80ca، b/164085265)

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

  • تم إيقاف DpConstraints وواجهات برمجة التطبيقات التي تستخدمها نهائيًا. (I90cdb، b/167389835)
  • تمت إعادة تسمية المعلمتَين minWidth وmaxWidth من إجمالي widthIn إلى min وmax. الأمر نفسه ينطبق على preferredWidthIn وheightIn وpreferredHeightIn. (I0e5e1، وb/167389544)
  • تمت إضافة onNode وطرق عمومية أخرى في ComposeTestRule كـ سيتم إيقاف الأدوات العالمية الحالية. (Ieae36)
  • تم تثبيت عمليات حسابية للحجم والموضع في تطبيق PlaceScope تسبّبت في حدوث العديد من عمليات إنشاء إيماءات التمرير غير الصالحة (Iaf358 وb/166589947)
  • تم نقل createAndroidComposeRule وAndroidInputDispatcher من من androidx.ui.test.android إلى androidx.ui.test (Idef08، وb/164060572)

الإصدار 1.0.0-alpha02

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

تم طرح الإصدارات androidx.compose.foundation:foundation:1.0.0-alpha02 وandroidx.compose.foundation:foundation-layout:1.0.0-alpha02 وandroidx.compose.foundation:foundation-text:1.0.0-alpha02. يحتوي الإصدار 1.0.0-alpha02 على عمليات التنفيذ هذه.

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

  • تم وضع علامة على TestUiDispatcher بأنّها تجريبية (Iae99d، وb/161247083).
  • تمت إضافة ManualFrameClock.hasAwaiters لمعرفة ما إذا كان هناك أي محتوى بانتظار إطار من تلك الساعة؛ runWithManualClock كبديل لمدة runBlocking عند إجراء الاختبارات التي تحتاج إلى ساعة يدويّة TestUiDispatcher.Main الذي يتيح الوصول بسهولة إلى المُرسل الرئيسي لواجهة المستخدم في اختباراتك.

    مثلاً:

    @Test
    fun myTest() = runWithManualClock { clock ->
        // set some compose content
        withContext(TestUiDispatcher.Main) {
            clock.advanceClock(1000L)
        }
        if (clock.hasAwaiters) {
            println("The clock has awaiters")
        } else {
            println("The clock has no more awaiters")
        }
    }
    

    (I0a85b، b/161247083)

الإصدار 1.0.0-alpha01

26 آب (أغسطس) 2020

تم طرح الإصدارات androidx.compose.foundation:foundation:1.0.0-alpha01 وandroidx.compose.foundation:foundation-layout:1.0.0-alpha01 وandroidx.compose.foundation:foundation-text:1.0.0-alpha01. يحتوي الإصدار 1.0.0-alpha01 على عمليات التنفيذ هذه.

الإصدار 0.1.0-dev

الإصدار 0.1.0-dev17

19 آب (أغسطس) 2020

تم طرح الإصدارات androidx.compose.foundation:foundation:0.1.0-dev17 وandroidx.compose.foundation:foundation-layout:0.1.0-dev17 وandroidx.compose.foundation:foundation-text:0.1.0-dev17. يحتوي الإصدار 0.1.0-dev17 على هذه العمليات.

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

  • تمت إضافة SpacedBy Arrangement للصف والعمود لتفعيل تحديد موضع عناصر التخطيط الثانوية بتباعد ثابت. تمت أيضًا إضافة الترتيب الذي تمت محاذاته لتفعيل وضعية عناصر تنسيق الصفحة واحدًا بجانب الآخر ومحاذاتها في الصف/العمود وفقًا للمحاذاة. تم إيقاف الطريقتين السابقتين Arrangement.Vertical#arrange وarrangement.Horizontal#arrange نهائيًا، ولن تكون كتابة الترتيبات المخصصة متاحة في المستقبل. (I6733d، b/161985975)
  • أصبحت فئة Outset فئة مضمّنة (Iaec70)
  • تمت إزالة استدعاءات onFocusChanged من TextField. استخدِم Modifier.focusObserver بدلاً من ذلك. (I51089، b/161297615)
  • تم إيقاف Modifier.DrawBorder نهائيًا. يمكنك استخدام Modifier.party بدلاً من ذلك. تم استبدال فئة بيانات الحدود بـ BorderStroke (I4257d، وb/158160576).
  • تمت إزالة Vertical Scroller و Horizontal Scroller. استخدِم عمودًا/صفًا قابلاً للتمرير بدلاً من ذلك. تمت إزالة Modifier.drawBackground. استخدام Modifier.background (I73b0d، b/163019183)
  • يُرجى إزالة عناصر التعديل fillMax* المتوقّفة نهائيًا من LazyItemScope لأنّها تصعّب عملية إضافة هذه مفاتيح التعديل بشكل صحيح للعناصر التي لا توجّه العناصر الثانوية إلى LazyColumnFor (Ifa78d).
  • تمت إضافة تنفيذ LazyColumn/LazyRow كـ DSL (I93cc6).
  • القيود الآن هي فئة مضمّنة (I88736)
  • تمت إضافة القدرة على تغيير حجم تخطيط إلى جزء من المساحة المتاحة، باستخدام عناصر fillMaxwidth وfillMaxHeight وfillMaxSize. (I945bb، b/161562591)

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

  • تمت إضافة مَعلمة تعديل إلى SelectionContainer (I4aada، وb/161487952).
  • تمت إضافة integrationPolicy lambda إلى SemanticsPropertyKey. يمكن أن تظهر فائدة هذا بوضوح أكبر تُستخدَم لتحديد سياسة مخصّصة للدلالات الدلالية الخاصة بـ integrationAllDescendants الاندماج. والسياسة التلقائية هي استخدام القيمة الرئيسية إذا سبق موجودة، وإلا فإن القيمة الثانوية. (Iaf6c4، b/161979921)
  • تم تغيير اسم "PlacementScope.placeAbsolute()" إلى "PlacementScope.place()" وتغيير اسم "PlacementScope.place()" السابق إلى "PlacementScope.placeRelative()". ونتيجةً لذلك، لن تحاكي طريقة PlacementScope.place() الموضع تلقائيًا في السياقات من اليمين إلى اليسار بعد الآن. ويمكنك استخدام PlacementScope.placeRelative() بدلاً من ذلك إذا كنت تريد ذلك. (I873ac، b/162916675)
  • تمت إزالة مكوّن filledTextField المتوقّف نهائيًا. يُرجى استخدام حقل النص بدلاً من ذلك للحصول على تنفيذ التصميم المتعدد الأبعاد لحقل النص المعبأ. (I5e889)
  • تمت إضافة مَعلمة backgroundColor إلى LinearProgressIndicator وإزالة المساحة المتروكة الداخلية من CircularProgressIndicator. تمت إضافة ProgressIndicatorConstants.DefaultProgressAnimationSpec الجديد الذي يمكن استخدامه كعنصر AnimationSpec التلقائي عند تحريك القيم (If38b5 وb/161809914 وb/161804677)
  • تم الآن إيقاف العنصر state { ... } القابل للإنشاء نهائيًا لصالح الطلبات الصريحة إلى remember { mutableStateOf(...) } لمزيد من الوضوح. ويقلل هذا من إجمالي مساحة عرض واجهة برمجة التطبيقات وعدد مفاهيم الحالة وتتطابق مع نمط by mutableStateOf() للفئة تفويض الممتلكات. (Ia5727)
  • تمت إعادة تسمية RRect إلى RoundRect. لتناسب أنماط التسمية بشكل أفضل تم إنشاء طرق إنشاء دوال مشابهة إلى RRect ودالة RRect المتوقّفة نهائيًا المرادات الإنشاء (I5d325)
  • تمت إزالة onChildPositioned وOnChildPositionedModifier. على المطوّرين استخدام onPositioned وOnPositionedModifier على التخطيط الفرعي بدلاً من ذلك. (I4522e، b/162109766)
  • أصبحت IntSize الآن فئة مضمّنة (I2bf42).
  • اضغط مع الاستمرار على المنطقة الفارغة لتعديلها. (Ib1e5b)
  • إخفاء FloatingToolbar بعد النقر على النص (If4525)
  • إخفاء FloatingToolbar عند تحديث التحديد. (I8444c)
  • ألغِ اختيار "عند التمويه". (I781a2)

الإصدار 0.1.0-dev16

5 آب (أغسطس) 2020

تم طرح الإصدارات androidx.compose.foundation:foundation:0.1.0-dev16 وandroidx.compose.foundation:foundation-layout:0.1.0-dev16 وandroidx.compose.foundation:foundation-text:0.1.0-dev16. يحتوي الإصدار 0.1.0-dev16 على هذه العمليات.

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

  • تمت إضافة LazyItemScope إلى مَعلمة itemContent للقوائم الكسولة. توفِّر هذه السياسة أدوات تعديل لملء الحد الأقصى للحجم الأصلي، ما يحلّ حالة الاستخدام عندما يجب أن يملأ العنصر إطار العرض، ولا يعمل الإجراء العادي Modifier.fillMaxSize() لأنّه يتم قياس العنصر باستخدام قيود اللانهاية. (Ibd3b2، b/162248854)
  • نقل مربع الحوار إلى واجهة المستخدم (I47fa6)
  • تمت إضافة LazyColumnForIndexed/LazyRowForIndexed - إصدارات LazyColumnFor/LazyRowFor التي توفر كلاً من الفهرس والعنصر في itemCallback. وهو مفيد عندما تحتاج إلى معرفة الفهرس الحالي بالإضافة إلى عنصر حالي. (I65ff3)
  • تمت إعادة تسمية Modifier.deternimateProgress إلى Modifier.progressSemantics (I9c0b4).
  • تمت إعادة تسمية LazyColumnItems إلى LazyColumnFor. تمت إعادة تسمية LazyRowItems إلى LazyRowFor (I84f84).
  • أضف بعض العلامات/التعليقات التوضيحية لتفسير أفضل الممارسات. (I66b20)
  • حزمة Foundation.shape.corner مسطّحة إلى مؤسسة enterprise.share (I46491، وb/161887429)
  • تمت إضافة مَعلمة Geossaxis gravity لـ LazyRowItems/LazyColumnItems. يتيح LazyRowItems/LazyColumnItems سلوك محتوى الالتفاف. (Ib39fc)
  • تمت إعادة تسمية ZoomableState إلى ZoomableController. تمّت إضافة دعم المنحنى المخصّص للاستفادة من المقياس السلس. تمت إضافة الوظائف enabled وonZoomStarted (If8b8f).
  • تمت إعادة تسمية Material filledTextField ليصبح TextField، كما تمت إعادة تسمية حقل TextField الأساسي إلى BaseTextField لتسهيل العثور على واجهة برمجة التطبيقات المطلوبة واستخدامها (Ia6242، وb/155482676).
  • تمت إزالة AdapterList التي تم إيقافها نهائيًا في السابق. استخدام LazyColumnItems بدلاً من ذلك (I12b9b)
  • تمت إعادة تسمية Modifier. drawBackground إلى Modifier.background (I13677).
  • تمت إزالة ConstraintLayout DSL القديم. تمت إعادة تسمية ConstraintSet2 إلى ConstraintSet. (If58d1، وb/162450908)
  • تمت إضافة Modifier.absoluteOffset() وModifier.absoluteOffsetPx(). على عكس معدّلات الإزاحة، لن تتم إجراء نسخ مطابق تلقائي لمفاتيح تعديل الإزاحة المطلقة في السياق من اليمين إلى اليسار (I3aa21).
  • الدالة Row وColumn هما الآن دالتان مضمّنتان إلى حد كبير مما يقلل من النفقات العامة لاستخدامها. (I75c10)

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

  • معالجة عمليات الإصلاح الواسعة النطاق لواجهة برمجة التطبيقات (I077bc)
    1. إزالة واجهة OffsetBase غير المستخدمة
    2. محاذاة فئات الإزاحة وIntOffset للحصول على مساحة متّسقة لواجهة برمجة التطبيقات
    3. إعادة تسمية IntOffset.Origin إلى IntOffset.Zero للتوافق مع واجهة برمجة تطبيقات Offset
    4. تم نقل طريقة "NativeCanvas" - خارج "لوحة الرسم" واجهة لمساعدة المستهلكين على إنشاء مثيلات "لوحة الرسم" الخاصة بك
    5. تم إنشاء فئة nullCanvas لإعادة هيكلة أن تكون DrawScope معلمة غير فارغة بدلاً من Lainit والتأكد من عدم قبول القيم الفارغة للحقل
    6. إعادة تسمية تعدادات ClipOp لتصبح Pascal Case
    7. تمت إعادة تسمية تعدادات filterQuality على شكل Pascal Case
    8. تمت إعادة تسمية تعدادات Stroke Join لتصبح Pascal Case
    9. تمت إعادة تسمية تعدادات PointMode إلى Pascal Case
    10. تمت إعادة تسمية تعداد PaintingStyle ليصبح Pascal Case.
    11. تمت إعادة تسمية تعدادات PathFillType لتصبح Pascal Case
    12. تمت إعادة تسمية تعدادات StrokeCap ليصبح Pascal Case
    13. تم تحديث تنفيذ Drawcache إلى لم يعد استخدام مَعلمات Lainit
    14. تم تعديل DrawScope إلى عدم استخدام التفويض الكسول بعد الآن. للمعلمات الداخلية fillPaint و النتيجة
    15. تم تعديل الصورة القابلة للإنشاء لتجنُّب استخدام Box. بتكلفة عامة أقل
    16. تم تعديل فئة Outline لتتضمّن تعليقات @Immutable توضيحية.
    17. تم تحديث PathNode لتتضمن تعليقات @Immutable التوضيحية تعليمات كل مسار
    18. تعديل تركيبة المتجه الفرعية لإزالة التكرار عمليات تحقق شرطية من أجل المساواة لأن إنشاء عناوين cannot translate
    19. طرق الدالة الإنشائية المصاحبة في Rect التي تم إيقافها نهائيًا لصالح الدالة الإنشائية للدوال
    20. تم تحديث فئات الفرشاة ودوال إنشاء الدوال باستخدام @Immutable و @Stable APIs
    21. تم تحديث تعداد VertexMode ليصبح PascalCase
    22. تم تعديل طريقة DrawScope selectPaint إلى "مشروطة" فاستبدل معلمات الحد الخارجي على الطلاء إذا كان لديهم تم التغيير
    23. تم تحديث الحجم لإضافة واجهة برمجة التطبيقات التالفة، ثم إعادة التسمية غير محدد إلى طرق غير محددة وتمت إزالتها
  • تمت إضافة MonotonicFrameAnimationClock التي تمكّنك من استخدام أغنية MonotonicFrameClock هي AnimationClockObserverable لسد الفجوة بين الساعات الجديدة المستندة إلى الكوروتينات وواجهات برمجة التطبيقات التي لا تزال تستخدم الساعات القائمة على معاودة الاتصال.

    أصبح الآن MonotonicFrameClock المكافئ لـ guideAnimationClock الساعة اليدوية. (I111c7، b/161247083)

  • تمت إزالة SemanticsNodeInteraction.performPartialGesture. استخدام SemanticsNodeInteraction.performGesture بدلاً من ذلك. (Id9b62)

  • تمت إعادة التسمية SemanticsNodeInteraction.getBoundsInRoot() إلى SemanticsNodeInteraction.getUnclippedBoundsInRoot() (Icafdf، b/161336532)

  • تم تحديث واجهات برمجة التطبيقات التي تتيح الدعم من اليمين إلى اليسار. تمت إضافة LayoutDirectionAmbient الذي يمكن استخدامه لقراءة اتجاه التنسيق وتغييره. تمت إزالة Modifier.rtl وModifier.ltr. (I080b3)

  • تم إيقاف Modifier.plus نهائيًا، لذا يُرجى استخدام Modifier.ثم بدلاً من ذلك. "ثم" لديه إشارة أقوى للطلب، بينما يمنع أيضًا كتابة Modifier.padding().background() + anotherModifier، ما يؤدي إلى كسر السلسلة ويصعب قراءته (Iedd58، b/161529964)

  • تمت إضافة isFocused() وisNotFocused() SemanticsMatcher. (I0b760)

  • تمت إضافة RemeasurementModifier. ويسمح للمستخدمين بإعادة قياس التصميم بشكلٍ متزامن. بصورة عامة، لا تحتاج إليها أبدًا لأنّ عملية إعادة القياس/الإرسال تحدث تلقائيًا، لكنّنا نستخدمها في LazyColumnItems أثناء الانتقال. (I5f331، b/160791058)

  • يضع isSystemInDarkTheme الآن دائمًا إعداد المظهر الداكن على مستوى النظام ويتجاهل حالة توفير الطاقة قبل Q، وذلك باتباع أحدث الإرشادات. (I0c10c)

  • تم إيقاف OnChildPositioned نهائيًا. استخدام OnPositioned على الطفل بدلاً من ذلك (I87f95، b/162109766)

  • تمت إعادة تسمية AndroidComposeTestRule (القاعدة التالية) إلى AndroidComposeRule. (I70aaf)

  • إضافة إجراء تسهيل الاستخدام للحصول على TextLayoutResult (I9d6e6)

الإصدار 0.1.0-dev15

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

تم طرح الإصدارات androidx.compose.foundation:foundation:0.1.0-dev15 وandroidx.compose.foundation:foundation-layout:0.1.0-dev15 وandroidx.compose.foundation:foundation-text:0.1.0-dev15. يحتوي الإصدار 0.1.0-dev15 على هذه العمليات.

لاستخدام إصدار 0.1.0-dev15 من Compose، ستحتاج إلى ما يلي:

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

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

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

  • على نحو مشابه للمَعلمة الجديدة في ScrollableColumn/ScrollableRow LazyColumnItems/LazyRowItems، يتوفر الآن أيضًا معلَمة contentPadding تتيح إضافة مساحة متروكة للمحتوى بعد اقتصاصه، وهو أمر غير ممكن من خلال معلَمة تعديل فقط. كما يسمح أيضًا بإضافة تباعد قبل العنصر الأول/بعد العنصر الأخير. (Ibc24e)
  • معاودة الاتصال onFocusChange في الحقول النصية التي تمت إعادة تسميتها إلى onFocusChanged (Ida4a1)
  • تم إيقاف Vertical Scroller وHoriziontalScroller نهائيًا. يمكنك استخدام ScrollableColumn وScrollableRow للحصول على تجربة مدمجة مع سلوك ومعلَمات العمود/الصف، أو Modifier.verticalportrait وModifier.horizontal scroll على العنصر الخاص بك. وبالمثل، تم إيقاف ScrollerPosition نهائيًا لصالح ScrollState' (I400ce وb/157225838 وb/149460415 وb/154105299)
  • تمت إعادة صياغة واجهات برمجة التطبيقات Modifier.draggable وModifier.scrollable. تمت إزالة DragDirection لصالح Orientation. تم تبسيط الحالة المطلوبة للتمرير السريع. تمت إعادة تسمية scrollableState إلى ScrollableController (Iab63c وb/149460415).
  • تستخدم الآن خصائص الدلالة الأحادية القيمة أسلوب استدعاء. على سبيل المثال، 'semantics {hidden = true }' يُكتب الآن على النحو التالي: semantics { hidden() } (Ic1afd، b/145951226، b/145955412)
  • يمكن الآن أن تكون أحجام الزوايا المستخدَمة في RoundedCornerShape وCutCornerShape أكبر من %50 (Id2340 وb/160400213).
  • تم تغيير مقياس ContentScale التلقائي مَعلمة الصورة القابلة للإنشاء من Inside إلى Fit. تم ذلك من أجل للحصول على سلوك لتوسيع نطاق البيانات الأساسية الرسام إذا كان حجم التخطيط أكبر من الحجم الجوهري للرسام أثناء والحفاظ على نسبة العرض إلى الارتفاع. هذا النمط أن السلوك يطابق التوقعات لتوفير أحجام ثابتة للصورة مع عدم التأثير في السلوك التلقائي في حالة استخدام الحجم الجوهري فقط لحساب حجم العنصر القابل للإنشاء. (I40ae3، b/159838006)
  • استخدام AnimationSpec بدلاً من AnimationBuilder في واجهات برمجة التطبيقات ذات المستوى الأعلى لتوضيح مفهوم مواصفات الرسوم المتحركة الثابتة -تحسين انتقال DSL عن طريق إزالة شرط lambda إنشاء AnimationSpecs مثل tween وspring. وبدلاً من ذلك يأخذون معلمات الدالة الإنشائية مباشرةً. -تحسين سهولة استخدام AnimationSpec بشكل عام البنائين بدلاً من الاعتماد على البنائين -تغيير المدة والتأخير لإطارات KeyFrames وTween إلى Int. هذا النمط بإزالة أشكال النوع غير الضرورية والأحمال الزائد للطريقة ( تدعم كلاً من Long وInt). (Ica0b4)
  • تمت إزالة إمكانية النقر. استخدام Modifier.clickable (I84bdf)
  • تمت إضافة LazyRowItems - تماثل تمرير أفقي لـ LazyColumnItems (Ibbcf7)
  • تم تقديم واجهات برمجة تطبيقات ذات مستوى منخفض للصور المتحركة بدون حالة. واجهات برمجة التطبيقات هذه (I63bf7)
  • androidx.ui.foundation.TextFieldValue و تم إيقاف androidx.ui.input.EditorValue نهائيًا. حقل نصي، العناصر القابلة للإنشاء FileedTextField وCoreTextField التي تستخدم تم أيضًا إيقاف هذا النوع نهائيًا. يُرجى استخدام androidx.ui.input.TextFieldValue بدلاً من ذلك (I4066d، b/155211005)
  • تم استبدال استخدام IntPx بـ Int. موضع IntPxPosition الذي تم استبداله باستخدام IntOffset. تم استبدال IntPxSize بـ IntSize. (Ib7b44)
  • تمت إزالة androidx.ui.foundation.shape.RectangleShape؛ استخدِم androidx.ui.graphics.RectangleShape (I94939 وb/154507984)
  • من أجل دمج عدد الفئات المستخدمة لتمثيل تحديد حجم المعلومات، وتوحيد عند استخدام فئة الحجم بدلاً من من PxSize. فهذا يوفر مزايا لفئةٍ مضمنة للاستفادة من بيانات إلى حزمة 2 قيمتين عائمتين لتمثيل العرض والارتفاع ممثلين بأعداد عشرية. (Ic0191)
  • من أجل دمج عدد الفئات المستخدمة لتمثيل معلومات عن المكانة في السوق، وتوحيد عند استخدام فئة Offset بدلاً من ذلك لـ PxPosition. فهذا يوفر مزايا لفئةٍ مضمنة للاستفادة من بيانات إلى حزمة 2 قيم عائمة لتمثيل x وإزاحة ص الممثلة على شكل أعداد عشرية. (I3ad98)
  • تمت إضافة Modifier.zoomable لوظيفة التكبير أو التصغير (Id5d63)
  • تم إيقاف المكوِّن القابل للتبديل نهائيًا. يمكنك استخدام Modifier.toggleable بدلاً من ذلك (I35220، وb/157642842).
  • تم إيقاف بشكل متبادل خاص بعنصر التحكّم. يمكنك استخدام Modifier.selectable بدلاً من ذلك. (I02b47، b/157642842)
  • تم إيقاف TestTag نهائيًا الآن. يُرجى استخدام Modifier.testTag بدلاً من ذلك. (If5110، وb/157173105)
  • إضافة مَعلمة fontweight إلى النص الذي لم تتم إضافته مسبقًا (I56937)
  • تم استبدال استخدام فئة Px في مختلف لإنشاء فئات كجزء من جهود إعادة البناء للاعتماد على Dp فقط والأنواع الأساسية لمعلمات البكسل (I19d02)
  • يوفر Vertical Scroller الآن عمودًا خارج الصندوق. يوفر شريط التمرير الأفقي الآن الصف خارج الصندوق. (Ieca5d، b/157020670)
  • تم استبدال استخدام فئة Px في مختلف لإنشاء فئات كجزء من جهود إعادة البناء للاعتماد على Dp فقط والأنواع الأساسية لمعلمات البكسل (Iede0b)
  • تمت إضافة Modifier.indiction إلى حزمة المؤسسة. يمكنك استخدامه لإظهار الضغط/السحب/إشارة أخرى على العناصر المخصّصة القابلة للتفاعل (I8425f وb/155287131)
  • يتيح تطبيقا Vertical Scroller و HorizontalScroller الآن استخدام التمرير العكسي تم ضبط isReversed في ScrollerPosition (I953bd).
  • إتاحة إضافة عناصر قابلة للإنشاء في تنسيق النص (I1373c)
  • عمليات التنفيذ الموحدة في CanvasScope لذلك لا يوجد الآن سوى DrawScope نطاق رسم المحتوى تمت إعادة تسمية CanvasScope إلى DrawScope. تم تعديل DrawScope لتنفيذ الكثافة. وتوفير LayoutDirection تم حذف الفئة الفرعية DrawScope في ContentDrawScope تم تعديل Painter وPainterModifier. عدم الاحتفاظ بخاصية RTL بعد الآن أنفسهم لأن DrawScope يوفر هذا بالفعل بدون تقديمها يدويًا (I1798e)
  • تمت إزالة DrawBackground المتوقّفة نهائيًا واجهة برمجة التطبيقات لصالح إضافة drawBackground واجهات برمجة التطبيقات في Modifier. إعادة الهيكلة اللون والفرشاة والتلوين كخلفية عمليات التنفيذ لتقليل مسارات الرمز أيضًا كشرط لإزالة المُعدّل لإنشاء المُعدّل كجزء من التكوين. (I0343a)
  • تم تعديل المستوى الأعلى. لإنشاء واجهات برمجة تطبيقات تعرض لوحة رسم عرض CanvasScope بدلاً من ذلك. سيؤدي هذا إلى إزالة حاجة المستهلكين إلى الحفاظ على طلاء الأجسام الخاصة بك. بالنسبة إلى المستهلكين الذين لا تزال بحاجة إلى الوصول إلى لوحة رسم يمكنه استخدام إضافة drawCanvas توفر رد الاتصال للمشكلة أوامر الرسم باستخدام الدالة لوحة. (I80afd)
  • لا يستعيد أفقي وعمودي أفقي موضع التمرير باستخدام حالة المثيل المحفوظة. (Ia0fae، b/155075048)
  • تمت إزالة FocusManagerAmbient. استخدِم FocusModifier.requestFocus لجذب التركيز. (Ic4826)
  • تمت إزالة تنسيق الجدول مؤقتًا إلى أن نتيحه مرة أخرى باستخدام واجهة برمجة تطبيقات تمت إعادة تحميلها. (Id88a7)
  • تم إنشاء واجهة برمجة تطبيقات CanvasScope التي تضم عنصر لوحة لكشف بيان عديم الحالة رسم واجهة برمجة التطبيقات. يتم تضمين عمليات التحويل ضمن نطاق المتلقي الخاص بها وتحديد حجم المعلومات يتم أيضًا تحديد نطاقه على الحدود الداخلية المقابلة. لا تتطلّب من المستهلك الحفاظ على حالة "الطلاء" الخاصة به. لتكوين عمليات الرسم.

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

  • تمت إزالة ColoredRect. مربّع المستخدم مع تعديل drawBackground بدلاً من ذلك (I983c7، وb/152753731)

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

  • يمكن الآن إخفاء/إظهار لوحة مفاتيح البرامج باستخدام وحدة تحكّم البرامج في لوحة المفاتيح التي يتم تقديمها من خلال onTextInputStarted رد الاتصال (I8dc44، b/151860051)

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

  • إضافة المعلمات شائعة الاستخدام إلى Text(). إذا كنت حاليًا بصدد إنشاء نمط نص محلي لتمرير عدد صغير من هذه المعلمات، مثل Text(style = TextStyle(textAlign = TextAlign.Center))، يمكنك الآن فقط تقديم المعلمات مباشرةً: Text(textAlign = TextAlign.Center) (I82768)

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

  • تعديل حقل النص: في البُعد الأفقي، سيشغل جميع المساحة المتاحة الممنوحة له (Ib08df، b/154638552)

  • تمت إضافة InteractionState وInteraction لتسهيل إنشاء المكوّنات التي تتفاعل مع التغييرات في حالة واجهة المستخدم، مثل الضغط والسحب (Icfe25 وb/152525426).

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

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

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

  • تمت إعادة تسمية ScaleFit إلى ContentScale تم نقل ContentScale من رسومات واجهة المستخدم إلى واجهة المستخدم الأساسية لتتواجد في نفس الوحدة التي توجد بها أدوات المحاذاة واجهة برمجة التطبيقات. تمت إعادة تسمية fillMaxDimension إلى "الاقتصاص" تمت إعادة تسمية fillMinDimension إلى Fit. تمت إعادة تسمية Google Fit إلى Inside لمطابقته بشكل أفضل. مكافئات ImageView.ScaleType تمت إضافة مستندات تشير إلى أنّ الدمج يحقق كل من اقتصاص ومحاذاة.Center النتيجة نفسها كـ ImageView.ScaleType.CENTER_CROP وFit المستخدم مع Adjust.Center إلى النتيجة نفسها التي حقّقها ImageView.ScaleType.FIT_CENTER يحقق العنصر الداخلي المستخدم مع pivot.Center النتيجة نفسها النتيجة هي ImageView.ScaleType.CENTER_INSIDE (I45f09, b/152842521)

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

  • لإضافة مَعلمة لون إلى النص، ما يسمح بتجاوز لون نمط النص بدون الحاجة إلى الدمج يدويًا مع النمط المتوفّر في المظهر (I41a66)

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

    • تم إنشاء نطاق المُستلِم لـ draw() ContentDrawScope
    • تمت إزالة جميع المعلمات على draw()
    • واجهة DrawScope هي نفس واجهة تطبيق CanvasScope السابق
    • يحتوي ContentDrawScope على طريقة drawContent() (Ibaced، b/152919067)
  • تم إيقاف ColoredRect نهائيًا. يمكنك استخدام Box(Modifier.preferredSize(width, height).drawBackground(color)) كبديل. (I499fa، b/152753731)

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

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

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

  • تم نقل Text إلى حزمة androidx.ui.foundation من androidx.ui.core. (I87ce5)

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

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

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

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

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

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

  • تمت إعادة تسمية الصورة إلى ImageAsset بغرض التفريق بينها بشكلٍ أفضل الفرق بين بيانات الصور والبيانات القادمة صورة قابلة للإنشاء تُستخدم للمشاركة في التصميم والرسم المحتوى.

    تمّ إنشاء طريقة إضافة على android.graphics.Bitmap Bitmap.asImageAsset()، لإنشاء مثيل تفيد ImageAsset الجمع بين نظام Android التقليدي تطوير التطبيقات باستخدام إطار عمل الإنشاء. (Id5bbd)

  • تمت إزالة DrawImage قابل للإنشاء. يمكنك استخدام ImagePainter لرسم صورة على تنسيق حالي أو في SimpleImage لتقديم صورة تستهلك مساحة (I595e1 وb/149827027).

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

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

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

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

  • تمت إضافة مكوِّن قابل للتمرير، ما يسمح بإنشاء ملفات تمرير أو قوائم مخصَّصة (I5fd37)

  • تمت إعادة تسمية الخلفية إلى DrawBackground وإدراجها في الذاكرة تلقائيًا (Ia0bd3).

  • إضافة المساحات المتروكة والحدود والشكل ومَعلمة الخلفية إلى Box (I05027 وb/148147281)

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

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

  • تمت إضافة مكوّن Box للجمع بين الوظائف الشائعة للتصميم والرسم. (I6e2a7)

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

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

  • تمت إعادة تسمية Modifier.tag إلى Modifier.layoutId لتجنُّب حدوث أي التباس مع Modifier.testTag. (I995f0)

  • تمت إعادة تسمية معلَمة النسبة المئوية عند إنشاء إرشادات ConstraintLayout إلى كسر. (Ida2db)

  • تمت إضافة دعم لهوامش حواجز ConstraintLayout. (I47ffe)

  • دعم RTL ثابت في ConstraintLayout. تمت إضافة واجهات برمجة تطبيقات RTL غير معروفة. (I3b1c7)

  • تمت إضافة DSL جديد لـ ConstraintLayout. يُرجى الاطّلاع على النماذج لمزيد من التفاصيل. (Icaa9a)

  • تمت إضافة التعليق التوضيحي @experimentalLayout. يتم الآن وضع علامات على ConstraintLayout وFlowRow وFlowColumn على الموقع للإشارة إلى أن واجهات برمجة التطبيقات التابعة لها ستتغير. (I412a8)

  • تمت إضافة Modifier.padding(InnerPadding) (I94985، b/157133803)

  • تمت إزالة محاذاة الصف ومحاذاة العمود المتوقفة في الصف والعمود. (If60d4 وb/155858731)

  • تمت إزالة LayoutTag() المتوقّفة، يُرجى استخدام Modifier.tag() بدلاً منه. تمت إزالة Modifier.matchParent() نهائيًا، يُرجى استخدام Modifier.matchParentSize() بدلاً منه (If8044)

  • تمت إضافة معدِّل تنسيق offsetPx، الذي يمكن استخدامه لتحديد إزاحة (ديناميكية) بالبكسل. (I5af57)

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

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

  • تمت إزالة الحاوية. استخدِم Box بدلاً من ذلك (Ibbc2b، b/151407926).

  • تمت إزالة معدِّلات العرض/الارتفاع/الحجم المتوقّفة نهائيًا. (Ib0bc1)

  • تمت إضافة قيم المعلَمات التلقائية لمعدِّل الإزاحة. (I37f06)

  • تمت إضافة أداة تعديل المساحة المتروكة المتماثلة. (I39840)

  • تمت إزالة معدِّل LayoutAspectRatio المتوقّف نهائيًا. (I65a74)

  • تمت إزالة معدِّلات Layout الأغنية المتوقّفة نهائيًا. (I10877)

  • تم إصلاح خطأ في معدِّلات العرض والارتفاع كانت تسبَّب في قياس تنسيق الالتفاف بدون قيود المحور المعاكس. (I210b8، b/154797971)

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

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

  • جعل المحاذاة قابلة للتكرار باستخدام قيم عشوائية تمت إضافة محاذاة أحادية الأبعاد. (Ia0c05)

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

  • تقبل \nToSiblings الآن القيمة Measuremented بدلاً من Placeable. (I5788d)

  • تمت إضافة عناصر تعديل لتغيير الحجم إلى القياسات الأساسية وإيقاف المكونات التي تخدم هذا الغرض نهائيًا. (I8295d)

  • تمت إضافة دعم لتخصيص أبعاد العناصر الثانوية في ConstraintLayout (Idb1a5).

  • تمت إزالة عناصر الالتفاف والتوسيط التي تم إيقافها نهائيًا. (I29e23)

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

  • يمكن الآن الوصول إلى أعضاء RowScope وColumnScope خارج الصف والعمود. (I3a641)

  • تم إيقاف الحاوية. استخدِم Box بدلاً من ذلك. (I675ce، b/151407926)

  • تمت إضافة معدِّل LayoutOffset لمعادلة موضع التنسيق (I0b8a3)

  • الدعم الأولي لـ Rtl في تنسيق Compose (Ia5519)

  • تم تعديل محاذاة التنسيق لعدم ملء المساحة المتاحة بعد الآن (I2b14f)

  • تمت إزالة نسبة العرض إلى الارتفاع القابلة للإنشاء لصالح مفتاح التعديل. تم الحذف عمود Flexcolumn القديم، وعناصر FlexRow القابلة للإنشاء، وتعديل المسافات (Iec8a7)

  • تمت إزالة مفتاح التعديل LayoutInflexible للصف والعمود (I0d820).

  • تنفيذ مقابض تحديد السحب لتغيير التحديد لحقل النص. (I27032)

  • تنفيذ LongPressAndDrag لتحديد حقل النص. (I17919)

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

  • تم إيقاف FocusModifier لصالح Modifier.focus، وModifier.focusRequester، وModifier.focusObserver. تم إيقاف FocusState وFocusDetailsState لصالح FocusState2 (I46919، b/160822875، b/160922136)
  • تمت إعادة تسمية runOnIdleCompose إلى runOnIdle (I83607).
  • تمت إعادة تسمية العديد من واجهات برمجة تطبيقات الاختبار لتصبح أكثر سهولة. الكل تمت إعادة تسمية واجهات برمجة تطبيقات findXYZ إلى onNodeXYZ. تمت إعادة تسمية جميع واجهات برمجة تطبيقات doXYZ إلى تنفيذ XYZ. (I7f164)
  • يزيل Modifier.ripple الذي سبق إيقافه نهائيًا. أصبح بالإمكان النقر الآن على رمز التموّج كمؤشر تلقائي (إذا تم ضبط MaterialTheme {} في تطبيقك)، لذلك يمكنك في معظم الحالات استخدام ميزة النقر والحصول على مؤشر التموج مجانًا. إذا كنت بحاجة إلى تخصيص اللون / الحجم / المعلمة المحددة للموجة، يمكنك إنشاء مؤشر موجة يدويًا وتمريره إلى قابل للنقر كمعلمة المؤشر. (I663b2، b/155375067)
  • تمت إزالة واجهات برمجة التطبيقات لاختبار الحجم القديم. (Iba0a0)
  • تم تصميم واجهة برمجة التطبيقات LayoutNode تجريبية (I4f2e9)
  • الإصدار 1 من قفل اتجاه التمرير هو تنفيذها عبر Compose. (I1ce7a، b/150289741)
  • تكتسِب النوافذ المنبثقة ومربّعات الحوار والقوائم الآن MaterialTheme السياقي (Ia3665 وb/156527485)
  • تمت إزالة معلمة اتجاه التصميم من كتلة القياس للدالة Layout(). في المقابل، يتوفّر اتجاه التنسيق داخل عنصر الاستدعاء من خلال عنصر نطاق القياس (Ic7d9d).
  • إضافة AbsoluteArrangement: للسماح بترتيب العناصر الثانوية داخل الصف بدون النسخ المطابق التلقائي في RTL (I3a1df)
  • تم إيقاف التعليق التوضيحي @Untracked نهائيًا. الاستبدال بـ @Composable خطوات(tracked=false) (Id211e)
  • قبل هذا التغيير، كان المكون الإضافي لبرنامج التحويل البرمجي يعترض بطريقة غير تافهة الطلبات الواردة إلى دوال الإنشاء داخل الدالة @Composable في حالة وجود (I5205a، b/158123804)
  • إضافة viewModel() قابلة للإنشاء تسمح بإنشاء نموذج ViewModel أو إنشاؤه مسبقًا بطريقة مشابهة لطريقة عمله في النشاط أو جزء من الصفحة (I5fdd1)
  • أن تكون فئة نصف القطر المعاد توزيعها فئة تضمين. تمت إزالة إنشاء الإعلان المصاحب. الطرق لصالح الدالة الإنشائية للدالة مع المعلمة الافتراضية ليتضمن نصف القطر radius على طول المحور ص في نفس النقطة معلمة نصف القطر x للمحور x.

    تم تعديل DrawScope. drawRoundRect ليتم استخدامه. معلمة نصف قطر واحدة بدلاً من معاملين منفصلين القيم العائمة لنصف القطر المحوري x وy المحور (I46d1b)

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

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

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

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

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

  • لم تعد الإيماءات الجزئية تتطلب تمريرًا حول الإيماءاتToken (Id7ae5)

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

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

  • أعِد تسمية AnnotatedString.Builder.addAnnotationString لإضافة سلسلة Annotation. (I5059e)

  • تم تعديل واجهة برمجة تطبيقات المحاذاة ودعم المحاذاة المطلقة (التي لا تتم مزامنتها تلقائيًا في سياق Rtl) (I38cd3).

  • يمكن قياس العناصر الثانوية للتصميم وLayoutModifier من خلال اتجاه تنسيق مختلف. (Ibd731)

  • تقديم مستطيل اختياري إضافي إلى ImagePainter لدعم رسم قسم فرعي من ImageAsset الأساسي (I0ea9e)

  • تم إصلاح عطل في AdapterList عند إزالة عناصر (Ic64b0 وb/153195921)

  • قمنا بتغيير كيفية قياسنا للتخطيط الأول الذي تضعه داخل كتلة activity.setContent { }. في السابق، تم فرض ملء شاشة النشاط بالكامل، والآن يعمل كما لو كنت تضع التنسيق داخل حزمة: يمكن أن يكون أصغر من الشاشة وسيتم وضعه في أعلى الشاشة اليمنى. إذا كنت تريد السلوك القديم، يمكنك تطبيق Modifier.fillMaxSize() على التخطيط. (Ie88a7، b/153453714)

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

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

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

  • runOnIdleCompose وrunOnUiThread هما الآن دالتان عموميتان بدلاً من الطرق في ComposeTestRule. (Icbe8f)

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

  • أصبح تطبيقا DrawLayerModifier و drawLayer() الآن مقطعًا افتراضيًا مقطعًا ToBounds. وClipToOutline إلى false. (I0eb8b، b/152810850)

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

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

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

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

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

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

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

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

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

  • أعِد تسمية Painter.toModifier إلى Painter.asModifier، لأنّ التعديل الذي تم إنشاؤه حديثًا يحتوي على إشارة إلى "الرسام" الأصلي الذي يمكن مشاركته في العديد من مثيلات أداة التعديل (I7195b).

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

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

  • تمت إزالة فئة ValueHolder. تمت إعادة هيكلة فئات GIF وAnimationValue إلى جعل حقل قيمة الرسوم المتحركة ملخصًا بحيث يمكن للفئات الفرعية مشاهدة تحديث القيمة.

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

  • إن المواضع Int لخط المحاذاة التي تم إرجاعها من Placeable#get(AlignmentLine) أصبحت الآن غير خالية. إذا كان خط المحاذاة الذي تم طلبه مفقودًا، سيتم عرض LineLine.Unspecified. (I896c5، b/158134875)

  • تم إصلاح الخطأ في ConstraintLayout الذي أدى إلى حدوث عطل عند إعادة التركيب. (Ibee5a، b/158164341)

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

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

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

  • تم إيقاف LayoutDirectionAmbient نهائيًا. لقراءة اتجاه التنسيق الذي تحدّده اللغة، استخدِم localeLayoutDirection في ConfigurationAmbient (I851b1).

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

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

  • إضافة OnPositionedModifier وOnChildPositionedModifier لاستبدال OnPositioned وOnChildPositioned القابلة للإنشاء الأخرى. (I2ec8f)

  • عدم السماح بالمساحة المتروكة السالبة في LayoutPadding. يجب استخدام LayoutOffset بدلاً من ذلك لعمليات إزاحة الموضع السلبي. (Ifb5b1)

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

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

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

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

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

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

  • تمت إضافة TextDirection.Content (I48f36)

  • عليك تعديل قائمة شريط الأدوات لعرض النسخ والقص واللصق بشكل صحيح. (Id3955)

  • إضافة FloatingToolbar لتحديد حقل النص (Ie8b07)

  • تمت إعادة تسمية TextDirectionAlgorithm لتصبح TextDirection (I75ce8).

  • تمت إعادة تسمية TextDirection باسم FixdTextDirection (I3ff38).

  • إضافة ملاحظات حسّية إلى تحديد حقل النص (I58050)

  • إضافة طرق النسخ والقص واللصق إلى تحديد حقل النص. (Idb70b)

  • تم حذف TestTag ودلالات. استخدِم Modifier.testTag وModifier.semantics بدلاً من ذلك (I15ff0 وb/158841414).

  • تم تغيير اسم الحزمة للغة وLocaleList من androidx.ui.text إلى androidx.ui.intl (I8132c)

  • تغيير في واجهة برمجة التطبيقات: تمت إعادة تسمية AnnotatedString(builder: Builder) إلى annotatedString(builder: Builder). (Ia6377)

  • تغيير في واجهة برمجة التطبيقات: تمت إعادة تسمية AnnotatedString.Item إلى AnnotatedString.Range. (I2d44d)

  • إضافة شريط الأدوات للعمليات المتعلقة بالنص. (I49d53)

  • يتوفّر الآن تطبيق LifecycleOwnerAmbient الجديد. الآن، فإن النشاط الذي تستخدمه مع واجهة مستخدم Compose يجب أن يوسِّع نطاق androidx.activity.ComponentActivity (أو AppCompatActivity). تم الآن إيقاف إعداد setContent على android.app.Activity نهائيًا (Idb25a وb/153141084)

  • تم استبدال اسم حزمة ui-android-text (androidx.text) بـ androidx.ui.text.platform للتوافق مع سياسة androidx. (I42711)