مدير النوافذ
androidx.window
androidx.window.core
androidx.window.embedding
androidx.window.layout
androidx.window.testing.layout
التعديل الأخير | الإصدار المستقر | سحب المرشح | الإصدار التجريبي | إصدار أولي |
---|---|---|---|---|
4 سبتمبر 2024 | 1.3.0 | - | - | 1.4.0-alpha02 |
إعلان التبعيات
لإضافة تبعية على WindowManager، يجب إضافة مستودع Google Maven إلى لمشروعك. القراءة يمكنك الاطّلاع على مستودع Maven من Google لمعرفة المزيد المعلومات.
أضِف الملحقات التابعة للعناصر التي تحتاجها في ملف build.gradle
لـ
لتطبيقك أو الوحدة التي تستخدمها:
Groovy
dependencies { implementation "androidx.window:window:1.3.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.3.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.3.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.3.0" // For testing implementation "androidx.window:window-testing:1.3.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.3.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.3.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.3.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.3.0") // For testing implementation("androidx.window:window-testing:1.3.0") }
ملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كان لديك أفكار لتحسين هذه المكتبة. يُرجى إلقاء نظرة على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية عن طريق بالنقر فوق زر النجمة.
يُرجى الاطّلاع على مستندات أداة تتبُّع المشاكل. لمزيد من المعلومات.
الإصدار 1.4
الإصدار 1.4.0-alpha02
4 سبتمبر 2024
تم طرح androidx.window:window-*:1.4.0-alpha02
. يحتوي الإصدار 1.4.0-alpha02 على عمليات التنفيذ هذه.
الميزات الجديدة
يمكنك إضافة إمكانية استخدام "WindowSizeClass
" المخصّص.
- افتح الدالة الإنشائية لـ
WindowSizeClass
كي يتمكّن المطوّرون من استخدام إنشاءهم الخاص. - أضِف طرق الأداة
isAtLeast
حتى يتمكّن المطوّرون من معالجة مجموعة من قيمWindowSizeClass
. - يمكنك إضافة دالة إضافة في
Set<WindowSizeClass>
لاحتساب أفضل تطابق من المجموعة. - إضافة ثوابت لنقاط التوقف المقترَحة في نظام التشغيل Android
- أضِف مجموعة نقاط الإيقاف المقابلة لنقاط الإيقاف المقترَحة في Android.
التغييرات في واجهة برمجة التطبيقات
- تعديل أسماء طرق الحدود لـ
WindowSizeClass
(If89a6) - عدِّل
WindowSizeClass
API لإتاحة إضافة قيم نقاط إيقاف جديدة في المستقبل. بدلاً من وضع حدود مطلقة، نستخدم الحدود الدنيا وننصح المطوّرين باستخدام عمليات التحقّق ذات الحدّ الأدنى عند معالجةWindowSizeClass
. سيتم إيقاف "WindowWidthSizeClass
" و"WindowHeightSizeClass
" الحاليتَين نهائيًا لأنّه لن يتم تطويرهما بعد ذلك. (I014ce)
الإصدار 1.4.0-alpha01
7 أغسطس 2024
تم طرح androidx.window:window-*:1.4.0-alpha01
. يحتوي الإصدار 1.4.0-alpha01 على عمليات التنفيذ هذه.
الميزات الجديدة
- يسمح تثبيت حزم النشاط للتطبيقات بتثبيت المحتوى في حاوية واحدة وعزل التنقل عن الحاوية الأخرى.
- يسمح الفاصل التفاعلي للتطبيقات بعرض مُقسّم ثابت أو قابل للسحب بين النشاطَين في عرض تقديمي مقسّم.
- يتيح تعتيم مربّع الحوار بملء الشاشة للتطبيقات تحديد منطقة تعتيم مربع الحوار، إما لتعتيم نافذة المهمة بأكملها أو تعتيم الحاوية التي تعرض مربّع الحوار فقط.
- يسمح استدعاء معلومات نافذة النشاط المضمّن للتطبيقات بتلقّي تحديثات نافذة النشاط المضمّنة باستمرار.
- تضمين خلفية الصور المتحركة: يسمح هذا الإعداد للتطبيقات بتحديد خلفية الصور المتحركة، ما يحسّن جودة الحركة الانتقالية عند استخدام
ActivityEmbedding
. - تسمح إدارة ActivityStack المحسَّنة للتطبيقات بالتحكّم بشكل أكبر في
ActivityStacks
عند استخدامActivityEmbedding
، ويشمل ذلك ما يلي: - تشغيل نشاط ضمن نطاق
ActivityStack
محدّد - جارٍ إنهاء
ActivityStack
التغييرات في واجهة برمجة التطبيقات
واجهة برمجة تطبيقات
WindowInfoTracker#supportedPostures
جديدة:- واجهة برمجة تطبيقات لتحديد ما إذا كان الجهاز متوافقًا مع وضع TableTop للأجهزة القابلة للطي إضافة WindowAreaSessionPresenter#getWindow
إضافة واجهات برمجة تطبيقات لإتاحة تثبيت
ActivityStack
:- صف واحد (
SplitPinRule
) SplitController#pinTopActivityStack
SplitController#unpinTopActivityStack
- صف واحد (
إضافة واجهات برمجة التطبيقات لتفعيل الفاصل التفاعلي وإعداده
- صف واحد (
DividerAttributes
) SplitAttributes.Builder#setDividerAttributes
- صف واحد (
إضافة واجهات برمجة التطبيقات لضبط
EmbeddingConfiguration
وDimAreaBehavior
لمربّعات الحوار- صف واحد (
EmbeddingConfiguration
) - صف واحد (
DimAreaBehavior
) ActivityEmbeddingController#setEmbeddingConfiguration
- صف واحد (
إضافة واجهات برمجة التطبيقات لتلقّي تعديلات معلومات نافذة النشاط المضمّنة
- صف واحد (
EmbeddedActivityWindowInfo
) ActivityEmbeddingController#embeddedActivityWindowInfo
- صف واحد (
إضافة واجهات برمجة التطبيقات لضبط خلفية الصور المتحركة للتضمين
EmbeddingAnimationBackground
SplitAttributes.Builder#setAnimationBackground
أضِف واجهات برمجة التطبيقات لإكمال
ActivityStacks
.ActivityEmbeddingController#finishActivityStacks
إضافة واجهات برمجة التطبيقات لضبط عملية إطلاق
ActivityStack
ActivityEmbeddingOptions#setLaunchingActivityStack
واجهات برمجة التطبيقات التالية مستقرة ولم تعُد تجريبية:
- تم نقل "
ActivityEmbeddingController#invalidateVisibleActivityStacks
" (من واجهة برمجة التطبيقات سبل قادرًا على [تقسيم_العنصر_غير صالح]الصورة على هذا الجزء من الجهاز) ActivityEmbeddingController#getActivityStack
SplitController#updateSplitAttributes
- تم نقل "
إضافة واجهات برمجة التطبيقات للإصدار 1.4 (I56774)
إصلاح الأخطاء
- إصلاح خطأ في أجهزة معينة يتم من خلالها عرض القيمة "غير متوفرة" بدلاً من "نشط" عندما تكون الجلسة نشطة.
- يؤدي هذا الخيار إلى إيقاف إتاحة "
transferActivityToWindowArea
" على الأجهزة التي تتضمّنvendorApiLevel
من 2 بسبب عدم استقرار توافقها مع واجهة برمجة التطبيقات. - قدِّم واجهة برمجة التطبيقات لتفعيل ميزة السحب إلى وضع ملء الشاشة لميزة "تضمين النشاط" الفاصل القابل للسحب. (I645c9)
- السماح للتطبيقات بإيقاف الصور المتحركة على
ActivityEmbedding
من خلال مَعلمات الصور المتحركة فيSplitAttributes
(Idc01a) - تمت إزالة التخطيط اليدوي للوصول إلى واجهات برمجة التطبيقات الجديدة للنظام الأساسي نظرًا لحدوث ذلك تلقائيًا عبر نماذج واجهة برمجة التطبيقات عند استخدام R8 مع AGP 7.3 أو إصدار أحدث (مثل R8 الإصدار 3.3) وكذلك لجميع الإصدارات عند استخدام AGP 8.1 أو الإصدارات الأحدث (مثل D8 الإصدار 8.1). وننصح العملاء الذين لا يستخدمون AGP بالتحديث إلى الإصدار 8.1 من نظام التشغيل D8 أو الإصدارات الأحدث. يُرجى مراجعة هذه المقالة للاطّلاع على مزيد من التفاصيل. (Ia60e0، b/345472586)
- يتم السماح للإضافات باستخدام مَعلمات الصور المتحركة في
SplitAttributes
كي يتمكّن الجهاز من استخدامها في عمليات انتقال الصور المتحركة. (Iede00) - إخفاء واجهات برمجة التطبيقات التي تظهر على سطح الفيديو (Ic4251)
- إدخال واجهات برمجة التطبيقات لإعداد الفواصل الثابتة أو القابلة للسحب للتقسيم (Ia7a78)
- تمت إضافة الكثافة إلى
WindowMetrics
(Id6723). - أضِف واجهة برمجة التطبيقات للحصول على
SupportedPostures
. (If557a) - إزالة
setLaunchingActivityStack
من واجهة برمجة التطبيقات التجريبية (I191cf) - تقديم
ActivityEmbeddingController#embeddedActivityWindowInfo
(I24312) - إيقاف العمل بـ
#getToken
وإضافة#getActivityStackToken
(Ie0471) - تقديم محوّل معاودة الاتصال لواجهة برمجة التطبيقات
embeddedActivityWindowInfo
flow API (Ida77f) - إضافة محوّل معاودة الاتصال لواجهة برمجة التطبيقات trackInfoflow (I7264f)
- تقديم
WindowSdkExtensionsRule
لإلغاءextensionsVersion
للاختبار. (Ifb928) - - يمكنك نقل
#setLaunchingActivityStack
إلى الحزمة للتوافق مع استخداماتActivityOptionsCompat
.- على المستخدمين اجتياز
activityOptions.toBundle
بدلاً منActvityOptions
نفسه. - إزالة
#setLaunchingActivityStack(Activity)
على المستخدمين نقل البيانات لاستخدامActivityEmbeddingController#getActivityStac(Activity)
للحصول علىActivityStack
، وتمريرActivityStack
إلى#setLaunchingActivityStack
. (Ie0ccc)
- على المستخدمين اجتياز
- - أدخِل
ActivityStack.Token
وSpltInfo.Token
كمعرّف للربط بين WM Jetpack والإضافات.- يمكنك إيقاف/استبدال واجهات برمجة التطبيقات لأخذ/عرض الرمز المميّز بدلاً من IBinder. (I12b24)
- - مقدمة عن "
ActivityEmbeddingController#invalidateVisibleActivityStacks
"- إزالة
SplitController#invalidateTopVisibleSplitAttributes
لأنّه تم دمج الميزة مع#invalidateVisibleActivityStacks
(I02ef5)
- إزالة
- - إضافة واجهة برمجة التطبيقات لضبط إعدادات التضمين. (I59a4a)
- - إضافة تثبيت/إزالة تثبيت أهم
ActivityStack
واجهات برمجة تطبيقاتandroidx.Window
- جارٍ تحديث التطبيق التجريبي للسماح بتثبيت/إزالة تثبيت أعلى الشاشة
ActivityStack
(I24dd3)
- جارٍ تحديث التطبيق التجريبي للسماح بتثبيت/إزالة تثبيت أعلى الشاشة
- إعادة إضافة
#finishActivityStacks
وActivityEmbeddingOptions
(Ic1ab3) - أزِل واجهات برمجة التطبيقات غير الثابتة. (Ibc534، b/302380585)
الإصدار 1.3
الإصدار 1.3.0
29 مايو 2024
تم طرح androidx.window:window-*:1.3.0
. يحتوي الإصدار 1.3.0 على عمليات التنفيذ هذه.
تغييرات مهمة منذ الإصدار 1.2.0
- دعم Kotlin متعدد الأنظمة الأساسية لفئات حجم النوافذ.
الإصدار 1.3.0-rc01
14 مايو 2024
في WindowManager
، يتوافق الإصدار Jetpack 1.3 مع لغة Kotlin المتعددة الأنظمة الأساسية مع ميزات WindowSizeClass
، بالإضافة إلى إصلاحات أخطاء متعددة.
تم طرح androidx.window:window-*:1.3.0-rc01
. يحتوي الإصدار 1.3.0-rc01 على عمليات التنفيذ هذه.
الإصدار 1.3.0-beta02
1 مايو 2024
تم طرح androidx.window:window-*:1.3.0-beta02
. يحتوي الإصدار 1.3.0-beta02 على عمليات التنفيذ هذه.
التغييرات في واجهة برمجة التطبيقات
- يُرجى إزالة إمكانية إنشاء
WindowSizeClass
مخصّصة واستخدامها. (Id1143)
إصلاح الأخطاء
- لإصلاح
KotlinReflectionInternalError
التي يتسبب فيها Proguard في إزالة بعض الملفات من عمليات تنفيذ بعض الأجهزة. (I01b02)
الإصدار 1.3.0-beta01
3 أبريل 2024
تم طرح androidx.window:window-*:1.3.0-beta01
. يحتوي الإصدار 1.3.0-beta01 على عمليات التنفيذ هذه.
الإصدار 1.3.0-alpha03
6 مارس 2024
تم طرح androidx.window:window-*:1.3.0-alpha03
. يحتوي الإصدار 1.3.0-alpha03 على عمليات التنفيذ هذه.
التغييرات في واجهة برمجة التطبيقات
- قسِّم
WindowSizeClassUtil
إلى طرق أكثر تركيزًا. (Ie9292) - استعادة
WindowSizeClass#compute
(I21355، b/324293374)
إصلاح الأخطاء
- لإصلاح العطل الذي يتم عنده عدم فتح التفاف السياق المقدم بشكل صحيح. (94d10ce، b/318787482)
الإصدار 1.3.0-alpha02
7 فبراير 2024
تم طرح androidx.window:window-*:1.3.0-alpha02
. يحتوي الإصدار 1.3.0-alpha02 على هذه عمليات التنفيذ.
الميزات الجديدة
- تم إجراء تعديلات على سطح واجهة برمجة التطبيقات الخاصة بـ Window Size Class API لتحسين المرونة للمطوّرين الذين يريدون استخدام فئات الأحجام الخاصة بهم.
التغييرات في واجهة برمجة التطبيقات
- إضافة قيود ارتفاع إلى محدد العرض. (I23393)
- أضِف وظائف مساعدة لاختيار
WindowSizeClass
من مجموعة. يمكنك إضافة دوال تسجيل النتائج التجريبية حتى يتمكّن المطوّرون من كتابة أدوات اختيار النتائج الخاصة بهم. أضِف دالة إضافة أداة الاختيار لاختيار أوسعWindowSizeClass
ضمن حد معيّن. (I0c944) - افتح الدالة الإنشائية
WindowSizeClass
حتى يمكن إضافة نقاط توقف مخصّصة. (Ic1ff3) - إضافة دالة ملائمة لإنشاء فئة الحجم من العرض والارتفاع والكثافة. (If67f4)
إصلاح الأخطاء
- يجب إصلاح الاستثناء عند اقتطاع القيمة العائمة إلى 0. (272ffac)
الإصدار 1.3.0-alpha01
15 تشرين الثاني (نوفمبر) 2023
تم طرح androidx.window:window-*:1.3.0-alpha01
. يحتوي الإصدار 1.3.0-alpha01 على هذه عمليات التنفيذ.
الميزات الجديدة
- عرض واجهات برمجة التطبيقات التجريبية للنوافذ للوصول إلى الشاشة الخلفية
- أصبح اختبار واجهات برمجة التطبيقات لإنشاء
FoldingFeature
مستقرًا الآن. - أصبحت واجهات برمجة التطبيقات الاختبارية لإعداد قيم
ActivityEmbedding
مزيفة الآن مستقرة. - تُبلغ
WindowLayoutInfoPublisherRule
الآن عن الإلغاء عند الحصول على قيمة منUiContext
. - يبلِّغ
WindowInfoTracker
عن بيانات الميزات القابلة للطي إلى مَعلماتUiContext
. - اعرض إصدار الإضافات على الجهاز.
WindowProperties
قيم ثابتة لعمليات الإلغاء لكل مستخدم على حدة:PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
— لإعلام الذي أوقفه التطبيق للتوافق مع نسبة العرض إلى الارتفاع الموجّهة للمستخدمين تجاوزه.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
: معلومات النظام الذي اختاره التطبيق إيقاف خيار ملء الشاشة للمستخدم إعدادات إلغاء التوافق مع نسبة العرض إلى الارتفاع
الإصدار 1.2
الإصدار 1.2.0
15 تشرين الثاني (نوفمبر) 2023
تم طرح androidx.window:window-*:1.2.0
. يحتوي الإصدار 1.2.0 على عمليات الالتزام هذه.
تغييرات مهمة منذ الإصدار 1.1.0
- عرض واجهات برمجة التطبيقات التجريبية للنوافذ للوصول إلى الشاشة الخلفية
- أصبح اختبار واجهات برمجة التطبيقات لإنشاء
FoldingFeature
مستقرًا الآن. - أصبحت واجهات برمجة التطبيقات الاختبارية لإعداد قيم
ActivityEmbedding
مزيفة الآن مستقرة. - تُبلغ
WindowLayoutInfoPublisherRule
الآن عن الإلغاء عند الحصول على قيمة منUiContext
. - يبلِّغ
WindowInfoTracker
عن بيانات الميزات القابلة للطي إلى مَعلماتUiContext
. - اعرض إصدار الإضافات على الجهاز.
الإصدار 1.2.0-rc01
1 تشرين الثاني (نوفمبر) 2023
تم طرح androidx.window:window-*:1.2.0-rc01
. يحتوي الإصدار 1.2.0-rc01 على هذه عمليات التنفيذ.
الميزات الجديدة
- عرض واجهات برمجة التطبيقات التجريبية للنوافذ للوصول إلى الشاشة الخلفية
- أصبح اختبار واجهات برمجة التطبيقات لإنشاء
FoldingFeature
مستقرًا الآن. - أصبحت واجهات برمجة التطبيقات الاختبارية لإعداد قيم
ActivityEmbedding
مزيفة الآن مستقرة. - تُبلغ
WindowLayoutInfoPublisherRule
الآن عن الإلغاء عند الحصول على قيمة منUiContext
. - يبلِّغ
WindowInfoTracker
عن بيانات الميزات القابلة للطي إلى مَعلماتUiContext
. - اعرض إصدار الإضافات على الجهاز.
الإصدار 1.2.0-beta04
18 تشرين الأول (أكتوبر) 2023
تم طرح androidx.window:window-*:1.2.0-beta04
. يحتوي الإصدار 1.2.0-beta04 على عمليات التنفيذ هذه.
التغييرات في واجهة برمجة التطبيقات
- أزِل واجهات برمجة التطبيقات غير الثابتة. (Ibc534، b/302380585)
الإصدار 1.2.0-beta03
20 أيلول (سبتمبر) 2023
تم طرح androidx.window:window-*:1.2.0-beta03
. يحتوي الإصدار 1.2.0-beta03 على هذه الالتزامات.
الميزات الجديدة
- أضِف عمليات تحقُّق
RequiresApi
من واجهات برمجة التطبيقات التي تحتاج إلى إصدار معيَّن من الإضافات لتعمل بشكل سليم. - عليك إضافة واجهة برمجة تطبيقات لعرض إصدار الإضافات على الجهاز.
التغييرات في واجهة برمجة التطبيقات
- التعليق التوضيحي المطلوب لإصدار إضافة حزمة تطوير البرامج (SDK) للنافذة على واجهات برمجة التطبيقات العامة
- أزِل
isXXXSupported
في مكوِّن تضمين النشاط. (Ie3dae)
- أزِل
- تقديم
WindowSdkExtensions
للإبلاغ عن إصدار الإضافة على الجهاز- قدِّم
RequiresWindowSdkExtension
لإضافة تعليقات توضيحية إلى الحد الأدنى المطلوب لإصدار الإضافة. (I05fd4)
- قدِّم
- جعل
WindowAreaInfo#getCapability
غير قابل للقيم الفارغة. (I17048)
الإصدار 1.2.0-beta01
26 تموز (يوليو) 2023
تم طرح androidx.window:window-*:1.2.0-beta01
. يحتوي الإصدار 1.2.0-beta01 على عمليات التنفيذ هذه.
الميزات الجديدة
- عرض واجهات برمجة التطبيقات التجريبية للنوافذ للوصول إلى الشاشة الخلفية
- أصبح اختبار واجهات برمجة التطبيقات لإنشاء
FoldingFeature
مستقرًا الآن. - أصبحت واجهات برمجة التطبيقات الاختبارية لإعداد قيم
ActivityEmbedding
مزيفة الآن مستقرة. - تُبلغ
WindowLayoutInfoPublisherRule
الآن عن الإلغاء عند الحصول على قيمة منUiContext
. - يبلِّغ
WindowInfoTracker
عن بيانات الميزات القابلة للطي إلى مَعلماتUiContext
.
التغييرات في واجهة برمجة التطبيقات
- وضع علامة على واجهات برمجة التطبيقات
WindowArea
بأنّها تجريبية للسماح باستمرار تغييرات واجهة برمجة التطبيقات لإصدار ثابت من الإصدار 1.3 (I857f5) - ملفات واجهة برمجة التطبيقات المعدّلة لإضافة تعليقات توضيحية إلى منع التوافق (I8e87a، وb/287516207)
الإصدار 1.2.0-alpha03
21 حزيران (يونيو) 2023
تم طرح androidx.window:window-*:1.2.0-alpha03
. يحتوي الإصدار 1.2.0-alpha03 على هذه عمليات التنفيذ.
الميزات الجديدة
- إزالة واجهات برمجة التطبيقات المتوقّفة نهائيًا من مساحة عرض واجهة برمجة التطبيقات
- إضافة واجهات برمجة التطبيقات لإتاحة الشاشات المتزامنة
- أضِف موقعًا لإيقاف الإلغاء المفروض لتغيير الحجم.
- أضِف موقعًا لإيقاف ميزة إلغاء الحدّ الأدنى لنسبة العرض إلى الارتفاع.
- يمكنك تثبيت
ActivityEmbeddingRule
لدعم اختبار الوحدات بشأن تضمين الأنشطة.
التغييرات في واجهة برمجة التطبيقات
- إزالة واجهات برمجة التطبيقات المتوقّفة نهائيًا (I18d39)
- يمكنك إضافة إمكانية استخدام الشاشات المتزامنة. (Ifcbb0)
إصلاح الأخطاء
- إضافة خاصية المطابقة للإيقاف لإلغاء تغيير الحجم (Ie7ab1)
- إزالة
SESSION_STATE_CONTENT_INVISIBLE
من واجهة الإضافات (I6ed19) - يمكنك تثبيت ميزة "
ActivityEmbeddingRule
" لإتاحة اختبار الوحدة حول تضمين النشاط. (I8d6b6) - إضافة خاصية متوافق مع الإيقاف لإلغاء الحد الأدنى لنسبة العرض إلى الارتفاع (I66390)
- إزالة واجهات برمجة تطبيقات WindowArea المتوقّفة نهائيًا (Ieb67c)
- إعادة تسمية خاصية حلقة طلب الاتجاه إلى
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
(Ie2fbd) - لتعديل الأسماء الثابتة لجلسات منطقة النافذة (I83675)
- إضافة سمة مماثلة للإيقاف تتجاهل حلقة طلب الاتجاه عند رصدها (I0a7a2)
- يمكنك إضافة
WindowAreaComponent#STATUS_ACTIVE
للإشارة إلى أنّ الميزة نشطة حاليًا. (I62bc3) - إضافة واجهات برمجة تطبيقات
RearDisplayPresentationMode
(I0401c) - إزالة واجهة برمجة تطبيقات لون الخلفية للثابت. (I34c3e)
- إخفاء واجهات برمجة التطبيقات لمنطقة النافذة. (I39de0)
- يمكنك إضافة طرق لإلغاء
SplitInfo
فيSplitController
. يمكنك إضافة طرق اختبار لإنشاء طرق مزدوجة من أجلSplitInfo
وActivityStack
. (Icd69f) - اجعل العلامة اختيارية لـ
ActivityRule.Builder
. (Ib0b44) - إزالة
RatioSplitType
وExpandContainersSplit
وHingeSplitType
وهيSplitType
الآن.- استبدال
#splitEqually()
و#expandContainers()
و#splitByHinge
لتصبحSplitType SPLIT_TYPE_EQUAL
وSPLIT_TYPE_EXPAND
وSPLIT_TYPE_HINGE
ثابتة - إزالة الوظيفة لضبط النوع الاحتياطي لنوع تقسيم المفصّلة إذا تعذّر تطبيق نوع تقسيم المفصّلة بسبب حالة الجهاز أو النافذة الحالية، سيتم تقسيم حاوية المهمة الرئيسية بالتساوي. استخدِم
SplitController#setSplitAttributesCalculator
لتخصيص نوع التقسيم الاحتياطي. (Ifcc59)
- استبدال
- إيقاف
add
/removeSplitCallback
- نقل
add
/removeSplitCallback
إلىSplitControllerCallbackAdapter
- إضافة دعم
Flow
للحصول على قائمةSplitInfo
(I7f1b6)
- نقل
- إضافة قاعدة اختبار لـ
ActivityEmbeddingController
(I42e9b) - إعادة تسمية
ActivityOptionsCompat
إلىActivityEmbeddingOptions
(I89301) - يمكنك إضافة
splitSupportStatus
للإشارة إلى ما إذا كانت ميزة "تضمين الأنشطة" متاحة. (I10024) - أدخِل
SplitAttributes.BackgroundColor
لتمثيل قيمةDEFAULT
بشكل أفضل. توضيح أنّ لون خلفية الصور المتحركة غير معتم غير متاح، ولذلك سيتم التعامل مع أي ألوان غير معتمة كخيار تلقائي، ما يعني استخدام لون خلفية نافذة المظهر الحالي. (Ic6b95) - استبدِل
alwaysAllow()
وalwaysDisallow()
بـALWAYS_ALLOW
وALWAYS_DISALLOW
. (I3057b) - إضافة واجهات برمجة تطبيقات لـ
SplitRule
وSplitAttributes
وSplitAttributesCalculator
(I92d23) - يُرجى إضافة "
TestActivityStack
" لإنشاء "ActivityStack
" للاختبار.- أضِف
TestSplitInfo
لإنشاءSplitInfo
للاختبار. (I8e779)
- أضِف
- يمكنك إضافة طريقة لإنشاء
SplitAttributesCalculatorParams
وهمية ليتمكّن المطوّرون من إثبات ملكية جهازSplitAttributesCalculator
المخصّص (Id4a6e). - إضافة
WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)
وWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)
(I66c7f)
الإصدار 1.2.0-alpha02
7 حزيران (يونيو) 2023
تم طرح androidx.window:window-*:1.2.0-alpha02
. يحتوي الإصدار 1.2.0-alpha02 على عمليات التنفيذ هذه.
الميزات الجديدة
- يجب تعديل واجهة Test API للحصول على قيمة ثابتة لميزات قابلة للطي غير محدَّدة.
- سيؤدي إلغاء
WindowLayoutInfoPublishRule
إلى إلغاء جميع قيَمwindowLayoutInfo
، بما في ذلك واجهة برمجة التطبيقات المستنِدة إلى السياق.
التغييرات في واجهة برمجة التطبيقات
- أضِف قيمة ثابتة لميزة الطي المركزية غير المحدّدة. (I7530c)
إصلاح الأخطاء
- يجب تعديل سياسة
WindowLayoutInfoPublishRule
لإتاحة عمليات الإلغاء فيContext
استنادًا إلىWindowLayoutInfo
. (I2037a)
الإصدار 1.2.0-alpha01
24 أيار (مايو) 2023
تم طرح androidx.window:window-*:1.2.0-alpha01
. يحتوي الإصدار 1.2.0-alpha01 على هذه عمليات التنفيذ.
الميزات الجديدة
تثبيت اختبار واجهات برمجة التطبيقات بشأن تضمين الأنشطة وWindowLayoutInfoTracker
. تمت ترقية ActivityEmbeddingRule
إلى النسخة الثابتة.
تمت ترقية WindowMetricsCalculatorRule
إلى النسخة الثابتة.
تمت ترقية وظائف الأداة لإنشاء FoldingFeature
للاختبار إلى ثابتة.
التغييرات في واجهة برمجة التطبيقات
- يمكنك تثبيت ميزة "
ActivityEmbeddingRule
" لإتاحة اختبار الوحدة حول تضمين النشاط. (I8d6b6) - ميزة "
WindowMetrisCalculatorTestRule
" ثابتة تسمح بمقاييس الأكواد البديلة لاختبارات JVM. وننصحك باستخدام محاكي للحصول على نتائج دقيقة. - تثبيت واجهات برمجة التطبيقات التجريبية في
WindowLayoutInfo
لإتاحة اختبار JVM (Ie036e) - أضِف
IntRange
لقيم ميزات الطي التجريبي. (I69f7d)
الإصدار 1.1
الإصدار 1.1.0
7 حزيران (يونيو) 2023
تم طرح androidx.window:window-*:1.1.0
. يحتوي الإصدار 1.1.0 على عمليات الالتزام هذه.
تغييرات مهمة منذ الإصدار 1.0.0
تضمين الأنشطة
- تمت إضافة
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
كسمة منطقية للعلامة<application>
في بيان التطبيق. - تم إيقاف
isSplitSupported
واستبداله بـsplitSupportStatus
لتقديم معلومات أكثر تفصيلاً حول سبب عدم توفّر ميزة التقسيم. - تمت إضافة الفئة
SplitController.SplitSupportStatus
المدمجة لتوفير ثوابت الحالة للسمةsplitSupportStatus
. - تمت إعادة بناء
SplitController
إلى عدة وحدات:- وحدة
ActivityEmbeddingController
لواجهات برمجة التطبيقاتActivity
أوActivityStack
من واجهات برمجة التطبيقات ذات الصلة - تم نقل "
isActivityEmbedded
" منSplitController
إلىActivityEmbeddingController
. - وحدة
RuleController
للعمليات ذات الصلة بالعمليات ذات الصلةEmbeddingRule
: - تمت إزالة
SplitController
واجهات برمجة تطبيقات: clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
- تمت إضافة
RuleController
واجهات برمجة تطبيقات: addRule()
: لإضافة قاعدة أو تعديل القاعدة التي تحتوي على العلامة نفسهاremoveRule()
: لإزالة قاعدة من مجموعة القواعد المسجَّلة.setRules()
— يحدد مجموعة من القواعد.clearRules()
— يزيل كل القواعد المُسجَّلةparseRules()
: يتم تحليل القواعد من تعريفات قواعد XML.
- وحدة
- تتطلّب جميع الوحدات سياقًا للإعداد باستخدام طريقة
#getInstance()
، بما في ذلك:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- تمت إضافة الفئة
EmbeddingAspectRatio
لتحديد ثوابت سلوكية تشبه التعداد والمرتبطة بنسبة العرض إلى الارتفاع للعرض. - تمت إضافة الفئة
SplitAttributes
لتحديد تنسيق التقسيم. - تمّت إضافة وظائف الآلة الحاسبة لنظام التشغيل
SplitAttributes
إلىSplitController
لتخصيص تنسيقات التقسيم:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
للتحقّق ممّا إذا كانت واجهات برمجة تطبيقاتSplitAttributesCalculator
متوافقة مع الجهاز.
- تمت إضافة حقل
EmbeddingRule#tag
. - تعديلات واجهة برمجة التطبيقات في
SplitRule
:- تمت إضافة
defaultSplitAttributes
: لتحديد تنسيق التقسيم التلقائي للتقسيم. يحل محلsplitRatio
وlayoutDirection
. - تمت إضافة ترجمة لسمتَي XML
splitRatio
وsplitLayoutDirection
إلىdefaultSplitAttributes
. - تم تغيير الحد الأدنى لتعريفات الأبعاد لاستخدام وحدات بكسل مستقلة الكثافة (dp) بدلاً من وحدات البكسل.
- تمت إضافة
minHeightDp
بالقيمة التلقائية هي 600 بكسل مستقل الكثافة. - تم تغيير
minWidth
إلىminWidthDp
بالقيمة التلقائية التي تبلغ 600 بكسل مستقل الكثافة. - تم تغيير
minSmallestWidth
إلىminSmallestWidthDp
بالقيمة التلقائية التي تبلغ 600 بكسل مستقل الكثافة. - تمت إضافة
maxAspectRatioInHorizontal
بالقيمة التلقائيةALWAYS_ALLOW
. - تمت إضافة
maxAspectRatioInPortrait
بالقيمة التلقائية 1.4. - تم تحديد فئة
FinishBehavior
مدمَجة لاستبدال ثوابت سلوك النهاية. - تم تطبيق تغييرات السمة على الفئة المدمجة في "أداة إنشاء Google" لـ
SplitPairRule
وSplitPlaceholderRule
.
- تمت إضافة
- تم استبدال
SplitInfo#getSplitRatio()
بـSplitInfo#getSplitAttributes()
لتقديم معلومات إضافية متعلقة بالتقسيم.
تخطيط النافذة
- تمت إضافة سياق واجهة المستخدم التجريبية غير النشطة إلى
WindowInfoTracker
. - تمت إضافة سياق لواجهة مستخدم تجريبية غير نشطة إلى "
WindowMetricsCalculator
".
خطوات نقل البيانات
- لتفعيل ميزة تضمين الأنشطة من أجل عرض الأنشطة في أقسام، يجب أن تضيف التطبيقات السمة
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
إلى علامة<application>
في ملف البيان:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
ويسمح هذا للنظام بتحسين سلوكيات التقسيم للتطبيق بشكل مسبق. - نسبة العرض إلى الارتفاع
SplitInfo
- تحقَّق مما إذا كان التقسيم الحالي مكدسًا:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- التحقّق من النسبة الحالية:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- تحقَّق مما إذا كان التقسيم الحالي مكدسًا:
- عمليات نقل بيانات splitController:
- تغيير في
SplitController.getInstance()
إلىSplitController.getInstance(Context)
- تغيير في
SplitController.initialize(Context, @ResId int)
إلىRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
- تغيير في
SplitController.getInstance().isActivityEmbedded(Activity)
إلىActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
- تغيير في
SplitController.getInstance().registerRule(rule)
إلىRuleController.getInstance(Context).addRule(rule)
- تغيير في
SplitController.getInstance().unregisterRule(rule)
إلىRuleController.getInstance(Context).removeRule(rule)
- تغيير في
SplitController.getInstance().clearRegisteredRules()
إلىRuleController.getInstance(Context).clearRules()
- تغيير في
SplitController.getInstance().getSplitRules()
إلىRuleController.getInstance(Context).getRules()
- تغيير في
- عمليات نقل بيانات موقعَين (
SplitRule
):- يستخدم
minWidth
وminSmallestWidth
الآن وحدات البكسل الكثافة بدلاً من وحدات البكسل. يمكن للتطبيقات استخدام المكالمة التالية:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
أو ببساطة قسمةminWith
بالبكسل علىdisplayMetrics#density
.
- يستخدم
- يجب نقل ثوابت سلوك الانتهاء إلى
FinishBehavior
ثوابت فئة تشبه التعداد:- تغيير في
FINISH_NEVER
إلىFinishBehavior.NEVER
- تغيير في
FINISH_ALWAYS
إلىFinishBehavior.ALWAYS
- تغيير في
FINISH_ADJACENT
إلىFinishBehavior.ADJACENT
- تغيير في
- يجب نقل اتجاه التنسيق إلى
SplitAttributes.LayoutDirection
:- تغيير في
ltr
إلىSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
- تغيير في
rtl
إلىSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
- تغيير في
locale
إلىSplitAttributes.LayoutDirection.LOCALE
- يجب نقل بيانات
splitRatio
إلىSplitAttributes.SplitType.ratio(splitRatio)
.
- تغيير في
SplitPairRule.Builder
عمليات نقل:- تغييران (
SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
) إلىkotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
- يتغير
setLayoutDirection(layoutDirection)
وsetSplitRatio(ratio)
إلىkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- يستخدم كل من
setFinishPrimaryWithSecondary
وsetFinishSecondaryWithPrimary
قيمة ثابتة تشبه التعدادFinishBehavior
. يمكنك الاطّلاع على مقالة "عمليات نقل بيانات splitRule" للحصول على التفاصيل. - استخدِم
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
لعرض التقسيمات على الأجهزة في الوضع العمودي.
- تغييران (
SplitPlaceholder.Builder
عمليات نقل:- لا تتضمّن سوى المعلمتَين
filters
وplaceholderIntent
. وتنتقل السمات الأخرى إلى أدوات الضبط. يمكنك الاطّلاع على "عمليات نقل بيانات SegmentPairRule.Builder" لمزيد من التفاصيل. - تستخدم
setFinishPrimaryWithPlaceholder
الثوابتFinishBehavior
التي تشبه التعداد. يمكنك الاطّلاع على مقالة "عمليات نقل بيانات splitRule" للحصول على التفاصيل. - تغير
setLayoutDirection(layoutDirection)
وsetSplitRatio(ratio)
إلى:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- استخدِم
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
لعرض التقسيمات على الأجهزة في الوضع العمودي.
- لا تتضمّن سوى المعلمتَين
الإصدار 1.1.0-rc01
10 أيار (مايو) 2023
تم طرح androidx.window:window-*:1.1.0-rc01
. يحتوي الإصدار 1.1.0-rc01 على هذه عمليات التنفيذ.
الميزات الجديدة
- إصدار
ActivityEmbedding
كواجهة برمجة تطبيقات ثابتة. - إصلاح أخطاء متنوعة.
الإصدار 1.1.0-beta02
5 نيسان (أبريل) 2023
تم طرح androidx.window:window-*:1.1.0-beta02
. يحتوي الإصدار 1.1.0-beta02 على عمليات التنفيذ هذه.
الميزات الجديدة
- الإصلاحات الداخلية والحذف.
الإصدار 1.1.0-beta01
22 آذار (مارس) 2023
تم طرح androidx.window:window-*:1.1.0-beta01
. يحتوي الإصدار 1.1.0-beta01 على عمليات التنفيذ هذه.
تضمين الأنشطة
- تمت إضافة
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
كسمة منطقية للعلامة<application>
في بيان التطبيق. - تم إيقاف
isSplitSupported
واستبداله بـsplitSupportStatus
لتقديم معلومات أكثر تفصيلاً حول سبب عدم توفّر ميزة التقسيم. - تمت إضافة الفئة
SplitController.SplitSupportStatus
المدمجة لتوفير ثوابت الحالة للسمةsplitSupportStatus
. - تمت إعادة بناء
SplitController
إلى عدة وحدات:- وحدة
ActivityEmbeddingController
لواجهات برمجة التطبيقاتActivity
أوActivityStack
من واجهات برمجة التطبيقات ذات الصلة - تم نقل "
isActivityEmbedded
" منSplitController
إلىActivityEmbeddingController
. - وحدة
RuleController
للعمليات ذات الصلة بالعمليات ذات الصلةEmbeddingRule
: - تمت إزالة
SplitController
واجهات برمجة تطبيقات:clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
- تمت إضافة
RuleController
واجهات برمجة تطبيقات:addRule()
: لإضافة قاعدة أو تعديل القاعدة التي تحتوي على العلامة نفسهاremoveRule()
: لإزالة قاعدة من مجموعة القواعد المسجَّلة.setRules()
— يحدد مجموعة من القواعد.clearRules()
— يزيل كل القواعد المُسجَّلة- `parseRules(): تحليل القواعد من تعريفات قواعد XML.
- وحدة
- تتطلّب جميع الوحدات سياقًا للإعداد باستخدام طريقة
#getInstance()
، بما في ذلك:ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- تمت إضافة الفئة
EmbeddingAspectRatio
لتحديد ثوابت سلوكية تشبه التعداد والمرتبطة بنسبة العرض إلى الارتفاع للعرض. - تمت إضافة الفئة
SplitAttributes
لتحديد تنسيق التقسيم. - تمّت إضافة وظائف الآلة الحاسبة لنظام التشغيل
SplitAttributes
إلىSplitController
لتخصيص تنسيقات التقسيم:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
للتحقّق مما إذا كانت واجهات برمجة التطبيقات SegmentAttributesCalculator متوافقة مع الجهاز
- تمت إضافة حقل
EmbeddingRule#tag
. - تعديلات واجهة برمجة التطبيقات في
SplitRule
:- تمت إضافة
defaultSplitAttributes
: لتحديد تنسيق التقسيم التلقائي للتقسيم. يحل محلsplitRatio
وlayoutDirection
. - تمت إضافة ترجمة لسمتَي XML
splitRatio
وsplitLayoutDirection
إلىdefaultSplitAttributes
. - تم تغيير الحد الأدنى لتعريفات الأبعاد لاستخدام وحدات بكسل مستقلة الكثافة (dp) بدلاً من وحدات البكسل.
- تمت إضافة
minHeightDp
بالقيمة التلقائية هي 600 بكسل مستقل الكثافة. - تم تغيير
minWidth
إلىminWidthDp
بالقيمة التلقائية التي تبلغ 600 بكسل مستقل الكثافة. - تم تغيير
minSmallestWidth
إلىminSmallestWidthDp
بالقيمة التلقائية التي تبلغ 600 بكسل مستقل الكثافة. - تمت إضافة
maxAspectRatioInHorizontal
بالقيمة التلقائيةALWAYS_ALLOW
. - تمت إضافة
maxAspectRatioInPortrait
بالقيمة التلقائية1.4
. - تم تحديد فئة
FinishBehavior
مدمَجة لاستبدال ثوابت سلوك النهاية. - تم تطبيق تغييرات السمة على الفئة
Builder
المدمجة منSplitPairRule
وSplitPlaceholderRule
.
- تمت إضافة
- تم استبدال
SplitInfo#getSplitRatio()
بـSplitInfo#getSplitAttributes()
لتقديم معلومات إضافية متعلقة بالتقسيم.
تخطيط النافذة
- تمت إضافة سياق واجهة المستخدم غير النشطة إلى
WindowInfoTracker
. - تمت إضافة سياق واجهة المستخدم غير النشطة إلى "
WindowMetricsCalculator
".
خطوات نقل البيانات
- لتفعيل ميزة تضمين الأنشطة من أجل عرض الأنشطة في أقسام، يجب أن تضيف التطبيقات السمة
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
إلى علامة<application>
في ملف البيان:xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
ويسمح هذا للنظام بتحسين سلوكيات التقسيم للتطبيق بشكل مسبق. - نسبة العرض إلى الارتفاع
SplitInfo
- تحقَّق مما إذا كان التقسيم الحالي مكدسًا:
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- التحقّق من النسبة الحالية:
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- تحقَّق مما إذا كان التقسيم الحالي مكدسًا:
SplitController
عمليات نقل:- تغيير في
SplitController.getInstance()
إلىSplitController.getInstance(Context)
- تغييران (
SplitController.initialize(Context, @ResId int)
) إلىRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
- تغيير في
SplitController.getInstance().isActivityEmbedded(Activity)
إلىActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
- تغيير في
SplitController.getInstance().registerRule(rule)
إلىRuleController.getInstance(Context).addRule(rule)
- تغيير في
SplitController.getInstance().unregisterRule(rule)
إلىRuleController.getInstance(Context).removeRule(rule)
- تغيير في
SplitController.getInstance().clearRegisteredRules()
إلىRuleController.getInstance(Context).clearRules()
- تغيير في
SplitController.getInstance().getSplitRules()
إلىRuleController.getInstance(Context).getRules()
- تغيير في
- عمليات نقل بيانات موقعَين (
SplitRule
):- يستخدم
minWidth
وminSmallestWidth
الآن وحدات البكسل الكثافة بدلاً من وحدات البكسل. يمكن للتطبيقات استخدام المكالمة التالية:kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
أو ببساطة قسمةminWith
بالبكسل علىdisplayMetrics#density
.
- يستخدم
- يجب نقل ثوابت سلوك الانتهاء إلى
FinishBehavior
ثوابت فئة تشبه التعداد:- تغيير في
FINISH_NEVER
إلىFinishBehavior.NEVER
- تغيير في
FINISH_ALWAYS
إلىFinishBehavior.ALWAYS
- تغيير في
FINISH_ADJACENT
إلىFinishBehavior.ADJACENT
- تغيير في
- يجب نقل اتجاه التنسيق إلى
SplitAttributes.LayoutDirection
:- تغيير في
ltr
إلىSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
- تغيير في
rtl
إلىSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
- تغيير في
locale
إلىSplitAttributes.LayoutDirection.LOCALE
- يجب نقل بيانات
splitRatio
إلىSplitAttributes.SplitType.ratio(splitRatio)
.
- تغيير في
SplitPairRule.Builder
عمليات نقل:- تغييران (
SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
) إلىkotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
- تغيير
setLayoutDirection(layoutDirection)
وsetSplitRatio(ratio)
إلىkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- يستخدم كل من
setFinishPrimaryWithSecondary
وsetFinishSecondaryWithPrimary
قيمة ثابتة تشبه التعدادFinishBehavior
. يمكنك الاطّلاع على مقالة "عمليات نقل بيانات splitRule" للحصول على التفاصيل. - استخدِم
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
لعرض التقسيمات على الأجهزة في الوضع العمودي.
- تغييران (
SplitPlaceholder.Builder
عمليات نقل:- لا تتضمّن سوى المعلمتَين
filters
وplaceholderIntent
. وتنتقل السمات الأخرى إلى أدوات الضبط. يمكنك الاطّلاع على "عمليات نقل بيانات SegmentPairRule.Builder" لمزيد من التفاصيل. - تستخدم
setFinishPrimaryWithPlaceholder
الثوابتFinishBehavior
التي تشبه التعداد. يمكنك الاطّلاع على مقالة "عمليات نقل بيانات splitRule" للحصول على التفاصيل. - تغير
setLayoutDirection(layoutDirection)
وsetSplitRatio(ratio)
إلى:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- استخدِم
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
لعرض التقسيمات على الأجهزة في الوضع العمودي.
- لا تتضمّن سوى المعلمتَين
الإصدار 1.1.0-alpha06
22 شباط (فبراير) 2023
تم طرح androidx.window:window-*:1.1.0-alpha06
. يحتوي الإصدار 1.1.0-alpha06 على هذه عمليات التنفيذ.
الميزات الجديدة
- اعرِض الإصدار التجريبي للحصول على
WindowLayoutInfo
من سياق واجهة المستخدم.
التغييرات في واجهة برمجة التطبيقات
- يمكنك إضافة
splitSupportStatus
للإشارة إلى ما إذا كانت ميزة "تضمين الأنشطة" متاحة. (I10024) - جعل واجهة UI Context
WindowLayoutInfo
API تجريبية (I58ee0) - تعمل هذه السياسة على تقديم
WindowAreaController
وواجهة برمجة التطبيقات التي تتيح وضع "RearDisplay
" من أجل نقل النافذة الحالية إلى الشاشة المتوافقة مع الكاميرا الخلفية. (Iffcbf) - تعديل اللون التلقائي للخلفية (I1ac1b)
- إضافة
SplitAttributes
مَعلمات (I18bdd) - إضافة واجهات برمجة تطبيقات لـ
SplitRule
وSplitAttributes
وSplitAttributesCalculator
(I92d23) - يمكنك تحسين واجهات برمجة التطبيقات في ما يتعلّق بـ
maxAspectRatio
:- استبدِل
alwaysAllow()
وalwaysDisallow()
بـALWAYS_ALLOW
وALWAYS_DISALLOW
. - يمكنك تعديل مستندات واجهة برمجة التطبيقات الخاصة بالزر @see باستخدام المستندات المستقلة. (I3057b)
- استبدِل
- تتم إزالة دوال الإنشاء التالية من واجهات برمجة التطبيقات العامة لأنه ليس من المفترض أن يتم استدعاؤها بواسطة التطبيقات.
- طريقة إنشاء
SplitInfo
- الدالة الإنشائية
ActivityStack
(Ide534)
- طريقة إنشاء
- يستغرق
SplitRule
الآنmaxAspectRatioInPortrait/Landscape
. ولا يسمح بتقسيم الأنشطة إلا عندما تكون نسبة العرض إلى الارتفاع للحدود الرئيسية أصغر أو تساوي قيمةmaxAspectRatio
المطلوبة. (Ia5990) - تغيير
RuleController#parseRules
إلى قيمة ثابتة (I785df) - تحسين واجهات برمجة التطبيقات المتعلقة بـ ActivityEmbedding
- محاذاة تسمية واجهة برمجة التطبيقات - استخدم إضافة/إزالة لمثيلات متعددة:
- تغييران (
registerRule
) في "addRule
" - تغييران (
unregisterRule
) في "removeRule
" - استبدِل
getSplitRules
بـgetRules
لأنّActivityRule
ليست قاعدة تقسيم. - إضافة
RuleController#setRules
لإعداد مجموعة من القواعد - يمكنك استخراج واجهات برمجة التطبيقات المرتبطة بالقواعد من
SplitController
إلى سينغلتونRuleController
. وهم: addRule
removeRule
getRules
setRules
clearRules
parseRules
- يمكنك استخراج
#isActivityEmbedded
منSplitController
إلى نمط المفردةActivityEmbeddingController
. وهم: isActivityEmbedded
- إزالة
SplitController#initialize
لضبط قواعد من ملف XML، يُرجى استخدامRuleController#parseRules
و#setRules
. قبل هذا التغيير:SplitController.initialize(context, R.xml.static_rules)
بعد هذا التغيير:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
- لم نعُد نميّز بين القواعد الثابتة بقواعد وقت التشغيل. ومع ذلك، عند استدعاء نتائج
#clearRules
لمحو جميع القواعد بغض النظر عن تسجيلها بتعريفات قاعدة XML ثابتة أو في وقت التشغيل. لاستخدام السلوك القديم فيSplitController#clearRegisteredRules
، يُرجى الاتصال بـRuleController#parseRules
باستخدام رقم تعريف موارد XML والاتصال بـRuleController#setRules
لإعادة ضبط القواعد مرة أخرى. قبل هذا التغيير:SplitController.getInstance(context).clearRegisteredRules()
بعد هذا التغيير:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
(Ib3967)
- تحسين واجهات برمجة تطبيقات SegmentRule:
- خذ الحد الأدنى للأبعاد بـ DP بدلاً من وحدات البكسل لـ
SplitRule
. - أعِد ضبط أداة إنشاء
SplitRule
لاستخدام الحدّ الأدنى للأبعاد كخيار. (I95f17)
- خذ الحد الأدنى للأبعاد بـ DP بدلاً من وحدات البكسل لـ
- تمرير السياق لإعداد
SplitController
(I42549) - تمت إعادة تسمية "
SplitRule#layoutDir
" إلى "#layoutDirection
" و"SplitRule Builder#setLayoutDir
" إلى "Builder#setLayoutDirection
". (I3f6d1)
الإصدار 1.1.0-alpha04
9 تشرين الثاني (نوفمبر) 2022
تم طرح androidx.window:window-*:1.1.0-alpha04
. يحتوي الإصدار 1.1.0-alpha04 على هذه عمليات التنفيذ.
الميزات الجديدة
- اعرض طريقة لتحديد ما إذا كانت قيمة
ActivityStack
فارغة في السمةActivityEmbedding
. - تمت إزالة علامات واجهة برمجة التطبيقات التجريبية من واجهات برمجة تطبيقات
ActivityEmbedding
. - إخفاء دالة الإنشاء
ActivityRule
لأنBuilder
هي الطريقة المفضلة للإنشاء. - أضِف طريقة تجريبية للحصول على
WindowInsets
فيWindowMetrics
. - يُرجى تعديل
SplitPlaceholderFinishBehavior
لمنع إكمال العنصر النائب. تسبّب إنهاء العنصر النائب في حدوث بعض السلوك المربك.
التغييرات في واجهة برمجة التطبيقات
- اجعل val
isEmpty
عامًا لاستبدالisEmpty
الممتع. - إعادة تسمية أنشطة مَعلمات "
ActivityStack
" إلى "activitiesInProcess
" (Ia5055) - إزالة
ActivityFilter#matchesClassName
وActivityFilter#matchesClassNameOrWildCard
لأنّها مربكة - أضِف
ActivityFilter#componentName
abdActivityFilter#intentAction
للسماح للمتصل بتمييز الفلاتر المختلفة (I41f22) - إزالة واجهات برمجة تطبيقات
@Deprecated
من واجهة برمجة التطبيقات التجريبية (I216b3) - إزالة
@ExperimentalWindowApi
لواجهات برمجة تطبيقات تضمين النشاط (I69ebe) - إخفاء الدالة الإنشائية
ActivityRule
، واستخدام أداة إنشاء بدلاً من ذلك (If4eb6) - أضِف واجهات برمجة التطبيقات للتحقّق مما إذا كان أحد الأنشطة جزءًا من
ActivityFilter
. (Ia43cf) - تعديل ملفات واجهة برمجة التطبيقات لتعكس التغييرات في صفَين
WindowMetrics
وWindowMetricsCalculatorCompat
(I667fe) - تعديل خاصية Javadoc في
ActivityEmbedding
واسم الفئة (Ia1386) - إضافة أسماء علامات الموقع الإلكتروني
ActivityEmbedding
لاستخدامها في AndroidManifest.xml (Id1ad4) - تمت إضافة واجهة برمجة التطبيقات
SplitPlaceholderFinishBehavior
وSplitPlaceholderRule.finishPrimaryWithPlaceholder
الجديدة، وستحلّ محلّSplitPlaceholderRule.finishPrimaryWithSecondary
الحالية التي تحدّد وقت الانتهاء من أنشطة العناصر النائبة، وكيف يجب أن تتصرف الأنشطة المرتبطة في ميزة "تضمين الأنشطة". (I64647)
إصلاح الأخطاء
- تتيح هذه السياسة إدخال
WindowAreaController
وواجهة برمجة التطبيقات لتفعيل وضع "RearDisplay
" من أجل نقل النافذة الحالية إلى الشاشة المتوافقة مع الكاميرا الخلفية. (I388ab)
الإصدار 1.1.0-alpha03
27 تموز (يوليو) 2022
تم طرح androidx.window:window-*:1.1.0-alpha03
. يحتوي الإصدار 1.1.0-alpha03 على هذه عمليات التنفيذ.
الميزات الجديدة
- عدِّل القيم التلقائية لقواعد التضمين.
التغييرات في واجهة برمجة التطبيقات
- عدِّل القيم التلقائية لخصائص تضمين القواعد. (Ic4d35)
الإصدار 1.1.0-alpha02
11 أيار (مايو) 2022
تم طرح androidx.window:window-*:1.1.0-alpha02
. يحتوي الإصدار 1.1.0-alpha02 على عمليات التنفيذ هذه.
الميزات الجديدة
- حرر مكتبات المهايئات لدعم Java وRxJava.
الإصدار 1.1.0-alpha01
11 أيار (مايو) 2022
تم طرح androidx.window:window-*:1.1.0-alpha01
. يحتوي الإصدار 1.1.0-alpha01 على عمليات التنفيذ هذه.
الميزات الجديدة
- إصدار المحوّلات لدعم java وRxJava
الإصدار 1.1.0-alpha01
20 نيسان (أبريل) 2022
تم طرح androidx.window:window:1.1.0-alpha01
. يحتوي الإصدار 1.1.0-alpha01 على عمليات التنفيذ هذه.
الميزات الجديدة
- تم إصلاح خطأ يتوقّف عن إطلاق ميزات الجزء المرئي في الخلفية عند تشغيل التطبيق في الخلفية.
- توسَّع في واجهة برمجة التطبيقات ActivityEmbedding API.
التغييرات في واجهة برمجة التطبيقات
- واجهة برمجة تطبيقات عامة للتحقّق مما إذا كان النشاط مضمّنًا (I39eb7)
إصلاح الأخطاء
- إضافة واجهات برمجة تطبيقات تُخصِّص السلوك النهائي للحاويات في أقسام الأنشطة (I1a1e4)
- تمت إضافة خيار ضبط جديد لقواعد تقسيم النشاط. (Iec6af)
الإصدار 1.0
الإصدار 1.0.0
26 يناير 2022
تم طرح androidx.window:window-*:1.0.0
. يحتوي الإصدار 1.0.0 على عمليات التنفيذ هذه.
الميزات الرئيسية للإصدار 1.0.0
- إتاحة الهواتف القابلة للطي من خلال
WindowInfoTracker
وFoldingFeature
WindowMetricsCalculator
للمساعدة في حساب مقاييس WindowMetrics الحالية.
الإصدار 1.0.0-rc01
15 كانون الأول (ديسمبر) 2021
تم طرح androidx.window:window-*:1.0.0-rc01
. يحتوي الإصدار 1.0.0-rc01 على هذه عمليات التنفيذ.
الميزات الجديدة
- يمكنك إضافة الدعم للهواتف القابلة للطي من خلال
WindowInfoTracker
. - أضِف طُرقًا لاحتساب قيمة
WindowMetrics
الحالية والحد الأقصى. - إضافة واجهات برمجة تطبيقات اختبارية متوافقة
الإصدار 1.0.0-beta04
17 تشرين الثاني (نوفمبر) 2021
تم طرح androidx.window:window-*:1.0.0-beta04
. يحتوي الإصدار 1.0.0-beta04 على عمليات التنفيذ هذه.
الميزات الجديدة
- إعادة تسمية WindowInfoRepository إلى WindowInfoTracker
- جعل النشاط تبعية صريحة للطريقة لـ WindowInfoTracker.
- أضِف قاعدة TestRule البسيطة لآلة WindowMetricsCalculator لدعم المطوّرين الذين يستخدمون Robolectric.
التغييرات في واجهة برمجة التطبيقات
- استخراج الإضافات (I25a5f)
- إضافة isإفراغ في ActivityStack (I5a4e6)
- إعادة تسمية WindowInfoRepository إلى WindowInfoTracker
- حدِّث تبعيات java/rxjava/testing للتوافق. (I0da63)
- أضِف قاعدة اختبار للآلة الحاسبة لـ WindowMetricsC الحاسبة البسيطة. (Ibacdb)
الإصدار 1.0.0-beta03
27 تشرين الأول (أكتوبر) 2021
تم طرح androidx.window:window-*:1.0.0-beta03
. يحتوي الإصدار 1.0.0-beta03 على عمليات التنفيذ هذه.
الميزات الجديدة
- إضافة واجهات برمجة التطبيقات التجريبية لتضمين الأنشطة يسمح إصدار التنسيق الأولي هذا بعرض نشاطين جنبًا إلى جنب.
التغييرات في واجهة برمجة التطبيقات
- تمت إزالة واجهة برمجة التطبيقات currentWindowMetrics لأنّه لا يمكننا تقديمها بدقة. يُرجى استخدام WindowMetricsCalculator بدلاً من ذلك (Icda5f).
- تم تحديث واجهة برمجة تطبيقات الإضافات. (Ica92b)
- تمت إضافة واجهة لميزة جديدة تسمح تضمين الأنشطة وعرضها جنبًا إلى جنب داخل ولي الأمر نافذة المهمة. (I5711d)
- تم إخفاء الدوال الإنشائية لـ WindowMetrics و WindowLayoutInfo، ويمكنك استخدام اختبار واجهات برمجة التطبيقات بدلاً من ذلك. (I5a1b5)
- إضافة واجهة برمجة تطبيقات لإنشاء عناصر WindowLayoutInfo مزيفة. (I4a2fd)
إصلاح الأخطاء
- تم إصلاح تسرّب الذاكرة. (I3fc79، b/202989046)
الإصدار 1.0.0-beta02
1 أيلول (سبتمبر) 2021
تم طرح androidx.window:window-*:1.0.0-beta02
. يحتوي الإصدار 1.0.0-beta02 على عمليات التنفيذ هذه.
الميزات الجديدة
- إضافة تعليق توضيحي تجريبي لإضافة تعليقات توضيحية إلى واجهات برمجة التطبيقات التجريبية (I9f1b6)
- أضِف طريقة اختبار لإنشاء ميزة الطي الاختبارية التي تقبل شكل مستطيل. وسيؤدي ذلك إلى تسهيل اختبارها عند استخدام Robolectric بدلاً من استخدام نشاط فعلي. (Id1cca)
الإصدار 1.0.0-beta01
18 آب (أغسطس) 2021
تم طرح androidx.window:window-*:1.0.0-beta01
. يحتوي الإصدار 1.0.0-beta01 على عمليات التنفيذ هذه.
الميزات الجديدة
- تمت إزالة الثوابت القديمة وتحويل
FoldingFeature
إلى واجهة.
التغييرات في واجهة برمجة التطبيقات
- أزِل الثوابت القديمة وحوِّل FoldFeature لواجهة. (I9a2d5)
إصلاح الأخطاء
- المكتبات التي تعتمد على مكتبة
Test Core
تم استخدامها تمت الترقية إلى الإصدار1.4.0
وسيعمل الآن على نظام Android الأساسي الإصدار S. (I88b72، b/189353863)
الإصدار 1.0.0-alpha10
4 آب (أغسطس) 2021
تم طرح androidx.window:window-*:1.0.0-alpha10
. يحتوي الإصدار 1.0.0-alpha10 على هذه عمليات التنفيذ.
الميزات الجديدة
- أعد تسمية WindowInfoRepo إلى WindowInfoRepository واضبط الفئات / الملفات المناسبة.
- تحويل مقاييس النافذة الحالية إلى تدفق في WindowInfoRepository لأن القيمة تتغيّر بمرور الوقت.
- إعادة تسمية مهايئ WindowInfoRepoJavaAdapter إلى مهايئ WindowInfoRepoCallback
- إضافة طريقة مساعدة لإنشاء عناصر اختبار FoldingFeature
- عدِّل الحِزم لتجميع الصفوف استنادًا إلى الميزة التي توفِّرها.
التغييرات في واجهة برمجة التطبيقات
- إعادة تسمية ActivityExt إلى ActivityExtensions التغيير من مستودع إلى مستودع (I61a16)
- تحديث الحِزم للصفوف (I23ae2)
- إزالة WindowMetrics من WindowInfoRepo (I24663)
- إزالة WindowManager واستخدام WindowInfoRepo
- جعل WindowBackend داخليًا. (I06d9a)
- تحويل مقاييس الفترات إلى تدفق
- إعادة تسمية محوّل جافا إلى WindowInfoRepoCallbackAdapter
- عليك إزالة CallbackFlow حتى لا يتم استخدام المزيد من واجهات برمجة التطبيقات التجريبية. (Ia4d15)
- أضِف طريقة مساعدة لإنشاء ميزات شاشة العرض التجريبية.
- التغيير من occlusionMode إلى occlusionType (If4cff)
إصلاح الأخطاء
- إصلاح خطأ Proguard في مكان إزالة المكتبة الأساسية.
- إصلاح الخطأ الذي كان يؤدي إلى عدم إرسال معلومات WindowLayoutInfo إلى مشتركين إضافيين.
- إصلاح الخطأ الذي لن تؤدي فيه تغييرات الإعدادات إلى تفعيل تحديثات ميزات قابلة للطي
الإصدار 1.0.0-alpha09
30 حزيران (يونيو) 2021
تم طرح androidx.window:window-*:1.0.0-alpha09
. يحتوي الإصدار 1.0.0-alpha09 على هذه عمليات التنفيذ.
الميزات الجديدة
- التغيير من ثوابت الأعداد الصحيحة إلى التعدادات غير المحدودة
- أضِف أداة اختبار لإنشاء ميزات تجريبية للطي.
التغييرات في واجهة برمجة التطبيقات
- أضِف طريقة مساعدة لإنشاء ميزات شاشة العرض التجريبية. (I3cf54)
- تغيير من
occlusionMode
إلىocclusionType
- تغيير من
إصلاح الأخطاء
- إطلاق القيمة الأولية عند إضافة مستهلكين متعددين لمصادر البيانات
الإصدار 1.0.0-alpha08
16 حزيران (يونيو) 2021
تم طرح androidx.window:window-*:1.0.0-alpha08
. يحتوي الإصدار 1.0.0-alpha08 على هذه عمليات التنفيذ.
الميزات الجديدة
- تم إصدار عنصر اختبار لتسهيل اختباره عند استخدام WindowInfoRepository. استخدم WindowInfoRepository للحصول على معلومات عن DisplayFeatures و WindowMetrics. (I57f66، Ida620)
الإصدار 1.0.0-alpha07
2 حزيران (يونيو) 2021
تم طرح androidx.window:window-*:1.0.0-alpha07
. يحتوي الإصدار 1.0.0-alpha07 على هذه عمليات التنفيذ.
الميزات الجديدة
- يمكنك نقل مكتبة النوافذ الأساسية إلى Kotlin. سيتم استخدام الكوروتينات ودوال التعليق لعرض البيانات غير المتزامنة من الآن فصاعدًا.
- أضف WindowInfoRepo كنقطة تفاعل رئيسية للحصول على WindowMetrics وتدفق WindowLayoutInfo.
- عنصر
window-java
جديد لعرض واجهات برمجة التطبيقات المتوافقة مع Java لتسجيل عمليات معاودة الاتصال وإلغاء تسجيلها. - عناصر
window-rxjava2
وwindow-rxjava3
جديدة لعرض واجهات برمجة تطبيقات RxJava المعدّلة
التغييرات في واجهة برمجة التطبيقات
- يمكنك إضافة
WindowServices
لتقديم التبعيات بشكل موحّد.- إضافة واجهة برمجة تطبيقات تستند إلى الكوروتين لاستهلاك معلومات تنسيق النافذة (Iab70f)
- يمكنك نقل مكتبة مدير النوافذ الأساسية إلى لغة Kotlin. (Icca34)
إصلاح الأخطاء
- أضف فئة بيانات جديدة لتمثيل حدود العناصر. (I6dcd1)
الإصدار 1.0.0-alpha06
5 أيار (مايو) 2021
تم طرح androidx.window:window:1.0.0-alpha06
. يحتوي الإصدار 1.0.0-alpha06 على هذه عمليات التنفيذ.
الميزات الجديدة
- لقد بدأنا التحويل إلى Kotlin وسينتهي في الإصدار التالي.
- تمت إزالة DeviceState من واجهة برمجة التطبيقات العامة. يُرجى استخدام FoldingFeature بدلاً من ذلك.
- لقد أزلنا
STATE_FLIPPED
من حالات ميزة FoldingFeature لأنّه غير متوافق مع أي حالة استخدام في الوقت الحالي. - وأزلنا أيضًا واجهات برمجة التطبيقات الأخرى المتوقّفة نهائيًا.
التغييرات في واجهة برمجة التطبيقات
- إضافة Kotlin كتبعية.
- نقل المكتبة الأساسية إلى لغة Kotlin (Idd995)
- تمت إزالة أداة إنشاء
DisplayFeature
. (I61fa4) - تمت إزالة
DeviceState
من واجهة برمجة التطبيقات العامة. استخدِمFoldingFeature
بدلاً من ذلك. (Id6079) - إزالة معاودة الاتصال بحالة الجهاز من الإضافات. (I5ea83)
- إزالة "
STATE_FLIPPED
" من ميزة "الطيّ" (I9c4e1) - إزالة طرق التسجيل المتوقّفة نهائيًا (Ib381b)
الإصدار 1.0.0-alpha05
24 آذار (مارس) 2021
تم طرح androidx.window:window:1.0.0-alpha05
. يحتوي الإصدار 1.0.0-alpha05 على هذه عمليات التنفيذ.
الميزات الجديدة
لقد أضفنا طرقًا ملائمة للميزة القابلة للطيّ لكي تتمكّن التطبيقات من معرفة ما إذا كانت الميزة تفصل بين الميزتين وتغطيته وتحدّد اتجاه المفصّلة. نحن أيضًا نخفي نوع المفصّلة بحيث
نعمل على إزالة طرق القراءة المتزامنة من WindowManager. طرق القراءة المتزامنة عرضة للخطأ نظرًا لوجود شرط سباق ضمني. يمكنك تسجيل أدوات معالجة الأحداث وعمليات معاودة الاتصال لتلقّي التحديثات على WindowLayoutInfo.
التغييرات في واجهة برمجة التطبيقات
- إضافة طرق ملائمة لاستخدام ميزة FoldingFeatures (Ie733f)
- إزالة طرق القراءة المتزامنة من WindowManager (I96fd4)
الإصدار 1.0.0-alpha04
10 آذار (مارس) 2021
تم طرح androidx.window:window:1.0.0-alpha04
. يحتوي الإصدار 1.0.0-alpha04 على عمليات التنفيذ هذه.
الميزات الجديدة
- إصلاح خطأ عدم إطلاق WindowLayoutInfo إذا لم يتم التنفيذ من قِبل المصنّع الأصلي للجهاز. نصدر الآن WIndowLayoutInfo فارغة.
- إصلاح الخطأ الذي لا يتم فيه تعديل الحالة بشكل صحيح إذا تغيّرت حالة المفصّلة أثناء تشغيل التطبيق في الخلفية الآن يجب أن تكون الولاية متسقة.
- عدِّل ملفات Proguard لتجاهل التحذيرات الواردة من العناصر الاعتمادية لبيئة التشغيل.
إصلاح الأخطاء
- إرسال قيمة فارغة عند عدم توفّر مكتبة المصنّع الأصلي للجهاز (Ide935)
الإصدار 1.0.0-alpha03
18 شباط (فبراير) 2021
تم طرح androidx.window:window:1.0.0-alpha03
. يحتوي الإصدار 1.0.0-alpha03 على هذه عمليات التنفيذ.
الميزات الجديدة
- أرسِل قيمة فارغة لـ WindowLayoutInfo عندما يكون تنفيذ المصنّع الأصلي للجهاز فارغًا. من المفترض أن يسهّل ذلك استخدام المكتبة على المزيد من الأجهزة. ونظرًا لأن واجهات برمجة التطبيقات غير متزامنة، فلا يزال يوصى بأن تكتب التطبيقات بعض الرموز الدفاعية وتصدر قيمة تلقائية بعد انتهاء المهلة. ليس لدينا أي ضمانات بشأن عمليات تنفيذ المصنّع الأصلي للجهاز وقد تتأخر القيمة الأولية.
إصلاح الأخطاء
- إرسال قيمة فارغة عند عدم توفّر مكتبة المصنّع الأصلي للجهاز (Ide935)
الإصدار 1.0.0-alpha02
27 كانون الثاني (يناير) 2021
تم طرح androidx.window:window:1.0.0-alpha02
. يحتوي الإصدار 1.0.0-alpha02 على عمليات التنفيذ هذه.
الميزات الجديدة
لقد أوقفنا بعض واجهات برمجة التطبيقات للمساعدة في تبسيط واجهة برمجة التطبيقات والحدّ من الأخطاء. ومن أبرز الأمثلة على ذلك إزالة عمليات القراءة المتزامنة من WindowManager وإيقاف DeviceState نهائيًا. يمكن أن تؤدي عمليات القراءة المتزامنة إلى شروط السباق وتوفُّر واجهة مستخدم غير صحيحة.
وقد حوّلنا ميزة DisplayFeature إلى واجهة سيتم تنفيذها من خلال ميزات أخرى من الآن فصاعدًا. وأول ميزة لدينا هي FoldingFeature التي تمثّل الآن طي الشاشة أو المفصّلة. يحتوي هذا أيضًا على حالة المفصّلة التي تحل محل DeviceState.
تم تقديم ميزة WindowMetrics في الإصدار Android 11 من أجل تزويد المطوّرين بطريقة بسيطة للبحث عن المقاييس المتعلّقة بنافذة، على سبيل المثال موضعها وحجمها على الشاشة وأي إعدادات داخلية للنظام. تمت إتاحة واجهة برمجة التطبيقات في هذا الإصدار كي يتمكّن المطوّرون من الاستفادة من ميزة WindowMetrics ومواصلة إتاحة إصدارات Android القديمة. يمكن الحصول على WindowMetrics من خلال واجهات برمجة التطبيقات
WindowManager#getCurrentWindowMetrics()
وWindowsManager#getMaxWindowMetrics().
التغييرات في واجهة برمجة التطبيقات
- إيقاف واجهات برمجة التطبيقات التي ستتم إزالتها في الإصدار الأولي التالي (Ib7cc4)
- يجب تعديل "
ExtensionInterface
" لقبول النشاط الفاضح. المراجع. (I07ded) - لتقديم واجهة برمجة تطبيقات WindowMetrics (I3ccee)
- إزالة طرق القراءة المتزامنة من WindowManager (I69983)
- الحفاظ على حماية حزمة ExtensionWindowBackend (Ied208)
إصلاح الأخطاء
- يجب تعديل واجهات برمجة تطبيقات
ExtensionInterface
لقبول السياقات المرئية. (I8e827)
مساهمة خارجية
- ادمج DeviceState و WindowLayoutInfo لتسهيل الوصول إلى البيانات. (Id34f4)
الإصدار 1.0.0-alpha01
27 شباط (فبراير) 2020
androidx.window:window:1.0.0-alpha01
وandroidx.window:window-extensions:1.0.0-alpha01
. يحتوي الإصدار 1.0.0-alpha01 على عمليات التنفيذ هذه.
هذا هو الإصدار الأول من مكتبة Window Manager.
الميزات الجديدة
DisplayFeature
: تحدد واجهة برمجة التطبيقات الجديدة هذه الأعطال في المستوى الثابت المستمر أسطح الشاشة مثل مفصّلات أو طيّاتDeviceState
: توفر واجهة برمجة التطبيقات الجديدة هذه الوضع الحالي للهاتف من قائمة بالمواقف المحددة (على سبيل المثال،CLOSED
وOPENED
وHALF_OPENED
وما إلى ذلك)