تقدم هذه الصفحة تفاصيل حول أحدث إصدارات حزم Support Library. للتعرف على الإصدارات السابقة، يمكنك الاطلاع على دعم أرشيف النُسخ السابقة من مكتبة الدعم.
الإصدار 28.0.0 الإنتاج
(21 أيلول (سبتمبر) 2018)
هذا هو الإصدار الثابت من Support Library 28.0.0، وهو مناسب للاستخدام
في الإنتاج. سيكون هذا الإصدار الأخير من ميزة الميزات ضمن حزمة android.support
، ونحن نشجع المطوّرين على نقل بياناتهم إلى AndroidX.
الميزات الجديدة
-
يوفر
AnimatedStateListDrawableCompat
انتقالات متحركة بين الحالات القابلة للرسم. -
يدعم
VectorDrawableCompat
التدرج وColorStateList
الملء والضرب.
الإصدار 28.0.0 RC 2
(27 آب (أغسطس) 2018)
يُعد إصدار الإصدار المرشَّح لمكتبة الدعم هذا مكتملة الميزات، وأن سطحه العام لواجهة برمجة التطبيقات مستقر. سيتم شحن هذا الإصدار كنسخة ثابتة نهائية وثابتة لمنع أي مشاكل حرجة قد تنشأ. يجب أن يكون هذا الإصدار آمنًا للاستخدام في الإنتاج. يُرجى إبلاغ أداة تتبّع المشاكل العامة.
المشاكل التي تم إصلاحها
- يُزيل Proguard دالة إنشاء تطبيق النموذج (مشكلة عامة 112230489)
- تم إصلاح الحالة الثابتة "AnimatedStateListDrawableCompat".
- تمت إزالة تبعية media2 من mediarouter 1.0.0
- لا يتم إيقاف "Fragment.getViewLifecycleOwner()" عند النقر على زر الصفحة الرئيسية (مشكلة علنية 113070421) ([مشكلة عامة 113070421](https://issuetracker.google.com/issues/113070421))
الإصدار 28.0.0 RC 1
(6 آب (أغسطس) 2018)
يُعد إصدار الإصدار المرشَّح لمكتبة الدعم هذا مكتملة الميزات، وأن سطحه العام لواجهة برمجة التطبيقات مستقر. سيتم شحن هذا الإصدار كنسخة ثابتة نهائية وثابتة لمنع أي مشاكل حرجة قد تنشأ. يجب أن يكون هذا الإصدار آمنًا للاستخدام في الإنتاج. يُرجى إبلاغ أداة تتبّع المشاكل العامة.
ملاحظة: لا تزال بعض المكتبات، مثل media2، في مرحلة الإصدار الأولي، لأنّه لم يتم بعد إنهاء مساحات عرض واجهة برمجة التطبيقات الخاصة بها. لا ننصح باستخدام مكتبات ألفا في مرحلة الإنتاج. على المكتبات تجنُّب الاعتماد بشكل صارم على مكتبات ألفا في مرحلة الإنتاج، حيث قد تتغير مساحات عرض واجهة برمجة التطبيقات الخاصة بها بطرق غير متوافقة مع المصدر والبرنامج الثنائي.
المشاكل التي تم إصلاحها
- لم تتم تهيئة قائمة Bottom NavigationView بشكل صحيح في مكتبة دعم التصميم
- لا يعالج PositionalDataSource بشكل صحيح عمليات إدراج العناصر المضافة مسبقًا في قاعدة البيانات
- أشرطة التمرير بسيطة ولا تستجيب
- لا يضيف "SlicesProviderCompat.getinstalledSpecs() " أرقام تعريف المستخدمين إلى معرفات الموارد المنتظمة (URI).
- RoutePlayer2: عدم عودة التشغيل عن بُعد إلى التشغيل المحلي
- تعطّل عملية تحليل الشرائح المخزّنة مؤقتًا عند تنفيذ الإجراءات
- تعطُّل تطبيق "بحث Google" أثناء عرض شريحة ثابتة
- ConcurrentModificationException في مكتبة التحديدات في RecyclerView عند تغيير مجموعة البيانات بإزالة التحديد
- تم تحديث PriorityThemeOverlay إلى أحدث مظهر متعدد الأبعاد. وإذا لم يتم توفير مظهر مخصص، يتم استخدام PreferencesThemeOverlay كمظهر تلقائي.
- تم إيقاف مظاهر PriorityThemeOverlay.v14 وتفضيلات PriorityThemeOverlay.v14.Material ووضعها لصالح FavoriteThemeOverlay.
- أصبح إذن الوصول إلى تفضيلGroup مرتبطًا الآن بعناصره الثانوية، وسيؤدي إخفاء مجموعة رئيسية أيضًا إلى منع ظهور عناصرها الثانوية في التدرّج الهرمي. ويمكنك استخدام Preferences.isShown() لمعرفة ما إذا كانت الإعدادات المفضّلة ستظهر للمستخدم في التسلسل الهرمي أم لا.
- تم إيقاف Preferences.onSetInitialValue(boolean, Object) نهائيًا واستبدالها بـ onSetFirstValue(Object). تستعيد خدمة PreferencesDataStore الآن القيم التلقائية بشكل صحيح.
الإصدار 28.0.0 التجريبي 1
(تموز/يوليو 2018)
يُعد هذا الإصدار التجريبي من Support Library مكتملاً للميزات، كما أن سطحه العام لواجهة برمجة التطبيقات مستقر، باستثناء أي مشكلات حرجة قد تحدث. على الرغم من أنّ هذا الإصدار آمن للاستخدام في الإنتاج، قد يحتوي على أخطاء. يُرجى إبلاغ أداة تتبّع المشاكل العامة عن أي مشاكل.
المشاكل التي تم إصلاحها
- QuestionSelectionHelper يتناول تناول الأحداث على عناصر لا يمكن تحديدها
- يمكن أن تتضمّن شرائح شريط التمرير رمز إبهام مكرّر عند تعديل قيمة شريط التمرير.
- كسر IconCompat رموز TYPE_URI
- التعطُّل مع التفضيلات باستخدام Seekbar
- تعطُّل في Slice.toString()
- يستدعي OffsettingListUpdateCallback.onMoved() mCallback.onRemoved() بدلاً من mCallback.onMoved() (المشكلة 110711937)
الإصدار 27.1.1
(نيسان/أبريل 2018)
المشاكل التي تم إصلاحها
- AsyncListDiffer لا يستدعي getChangePayload (مشكلة AOSP 73961809)
- لم يتم استدعاء Fragment ViewModel's onCleared (مشكلة AOSP 74139250)
- RecyclerView.setRecycledViewPool() تزيد منAttachCount حتى عندما يكون المحوّل فارغًا
- RecyclerView NPE إذا كان Smooth Scroller.onStop callstop() أو startSmooth Scroller()
- تؤدي معاملة استبدال التجزئة إلى وميض الجزء السابق بعد عرض جزء جديد (مشكلة AOSP 74051124).
- تغيير تعطُّل في معاودة الاتصال في أداة التحميل في الإصدار 27.1.0 (مشكلة AOSP 74135998)
- لا يعمل تنسيق RTL عندما يكون عمود مجموعة عرض الشبكة العمودية >1
- يتم استدعاء onLoadEnd مرات عديدة في ViewPager باستخدام FragmentPagerAdapter
- من المفترض أن يرسل AsyncListDiffer التحديثات بعد إعداد القائمة الحالية (مشكلة AOSP 74003309).
- خدمة ShareActionProvider تطرح ClassCastException في الإصدار 27.1.0
- تغيير مراحل نشاط الجزء في ViewPager (مشكلة AOSP 73976255)
الإصدار 28.0.0 ألفا 1
(آذار/مارس 2018)
ملاحظة: إنّ الإصدار 28.0.0-alpha1 هو إصدار تجريبي متوافق مع معاينة مطوّري برامج Android P. إنّ واجهة برمجة التطبيقات الخاصة بها عرضة للتغيير، ولا تتضمّن بالضرورة ميزات أو إصلاحات للأخطاء من أحدث الإصدارات الثابتة من Support Library.
تغييرات مهمة
- كما أشرنا سابقًا في
إشعار Android KTX، سنواصل استخدام بادئة الحزمة
androidx
في مكتباتنا. نعمل حاليًا على إطلاق مجموعة جديدة من المكتبات الجديدة، بما في ذلكheifwriter
وrecyclerview-selection
، في هذه الحزمة الجديدة. نأمل أن يوضّح التقسيم بينandroid.*
وandroidx.*
واجهات برمجة التطبيقات المضمّنة في النظام الأساسي، وأيّ مكتبات ثابتة لمطوّري التطبيقات تعمل على إصدارات مختلفة من Android. - وقد قسَّمنا أجزاءً من support-core-ui وsupport-core-utils وsupport-compat إلى مكتبات أصغر. سيساعدنا هذا التغيير في فك تبعيات
مكتبة الدعم في المستقبل. تتوفّر لدينا الآن المكتبات الجديدة التالية:
- asyncLayoutinflater (من support-core-ui)
- المجموعات (من support-compat)
- التخطيط المنسق (من التصميم)
- مؤشر الماوس (من support-core-ui)
- طريقة العرض المخصّصة (من واجهة المستخدم الأساسية)
- ملف المستند (من support-core-utils)
- drawerLayout (من support-core-ui)
- أداة احتساب معدّل التداخل (من support-core-ui)
- برنامج التحميل (من أجزاء الدعم والتطبيقات الأساسية)
- مدير البث المحلي (من support-core-utils)
- الطباعة (من support-core-utils)
- slidingpaneLayout (من support-core-ui)
- مرِّر تحديثًا سريعًا (من support-core-ui)
- صفحة العرض (من support-core-ui)
واجهات برمجة تطبيقات جديدة
- توفّر السمة
recyclerview-selection
إمكانية اختيار العناصر للسمةRecyclerView
. توفّر الحزمة ما يلي:- يتيح إنشاء وتعديل وفحص ومراقبة التغييرات لمجموعة من العناصر المحددة في قائمة RecyclerView.
- إتاحة إجراءات الاختيار المتعدد السهلة:
- يتيح الاختيار الذي يعمل باللمس للمستخدمين اختيار نطاقات من العناصر باستخدام إيماءة سهلة للضغط والسحب.
- يتيح اختيار النطاق الذي يستند إلى الماوس للمستخدمين اختيار مجموعة محددة من العناصر في قائمة RecyclerView باستخدام شريط مؤشر الماوس التقليدي/الإجراءات الحركية.
- دعم الأجهزة التي تعتمد على اللمس، بما في ذلك عوامل شكل الشكل للهاتف والكمبيوتر المحمول الذي يعمل باللمس، بالإضافة إلى الأجهزة التي تركز على المؤشر.
- يوفر HEIF writer دعمًا لكتابة الصور الثابتة بتنسيق HEIF.
- مكتبة التصميم
- طرحنا مظهر تطبيق جديد،
"
Theme.MaterialComponents
"، بسمات جديدة وأنماط معدّلة للمكوّنات. - لقد أضفنا العناصر التالية:
- BottomAppBar
- الشريحة
- مجموعة الشرائح
- زر متعدد الأبعاد
- عرض MaterialCardView
- طرحنا مظهر تطبيق جديد،
"
- توفّر الشرائح إطار عمل للتطبيقات من أجل تضمين محتوى مستند إلى نماذج من تطبيقات أخرى.
- تحتوي منصات إنشاء الشرائح على طرق لإنشاء محتوى بتنسيق قالب.
- تحتوي طريقة عرض الشرائح على طرق لعرض هذا المحتوى.
- توفر إجراءات المتصفح بروتوكولاً لمطوّري التطبيقات لتشغيل قائمة سياقات متسقة (ولكن قابلة للتخصيص) لعناوين URL. تعتمد هذه الميزة على توفُّر تطبيق متصفح (مثل Chrome، حيث لا تزال هذه الميزة قيد التطوير) يدعم إجراءات المتصفح.
-
تسمح
ContextCompat.getSystemService()
وgetSystemServiceName()
بعمليات البحث عن خدمة النظام حسب الكتابة في جميع مستويات واجهة برمجة التطبيقات.
إصلاح الأخطاء
- لم يتم استدعاء Fragment ViewModel's onCleared (مشكلة AOSP 74139250)
- onLoadEnded() استدعاء عدة مرات في ViewPager مع FragmentPagerAdapter (مشكلة AOSP 74182171)
- تعرض واجهة برمجة التطبيقات LinearLayoutManager ()SsmoothToPosition() في RecyclerView حركة غير منتظمة (للأمام) في ظل ظروف معينة (مشكلة AOSP 71567765)
إصدار الإصدار 27.1.0
(شباط/ فبراير 2018)
تغييرات مهمة
- تمت إعادة كتابة التنفيذ الأساسي لـ Loaders لاستخدام Lifecycle. لم يتم إجراء أي تغييرات على واجهة برمجة التطبيقات، ولكن هناك عدد من التغييرات في السلوك:
- يمكن الآن طلب
initLoader()
وrestartLoader()
وdestroyLoader()
من سلسلة المحادثات الرئيسية فقط. - يتم الآن استدعاء
onStartLoading()
وonStopLoading()
لـ Loader عند بدء تشغيل FragmentActivity/Fragment الذي يحتوي على وإيقافها، على التوالي. - سيتم الاتصال برقم "
onLoadFinished()
" فقط بينonStart()
وonStop
. ونتيجةً لذلك، أصبح بالإمكان الآن تنفيذ معاملات التجزئة بأمان فيonLoadFinished()
. - تم إيقاف طرق FragmentController المتعلقة بـ Loaders
- يمكن الآن طلب
- ستصبح قيمة
getDialog()
في DialogFragment الآن غير فارغة حتىonDestroyView()
، بدلاً من أن تصبح فارغة فيdismiss()
. يمكنك الآن تحديد ما إذا تم إغلاق مربّع الحوار يدويًا فيonStop()
من خلال التحقّق ممّا إذا كانgetDialog().isShowing()
يعرض رسالة "خطأ".
واجهات برمجة تطبيقات جديدة
ListAdapter
بالنسبة إلىRecyclerView
(إلى جانبAsyncListDiffer
)، يُسهِّل احتساب اختلافات القائمة على سلسلة محادثات الخلفية. يمكن أن يساعد ذلك في RecyclerView إجراء تغييرات على المحتوى المتحرك تلقائيًا، بأقل قدر من العمل على مؤشر ترابط واجهة المستخدم. تستخدمDiffUtil
في التفاصيل.- تتيح
SortedList.ReplaceAll
تحديث جميع البيانات في SortedList، وهي تتيح تشغيل جميع الرسوم المتحركة المناسبة لعمليات الإدراج والإزالة والتغييرات وعمليات النقل (يتم التعامل مع عمليات النقل على أنّها عمليات إزالة وإدراج). - يستخدم كل من FragmentActivity وFragment الآن
ViewModelStoreOwner
ويمكن استخدامهما الآن مع دوالViewModelProvider
كبديل لاستخدامViewModelProviders.of()
- تحتوي الأجزاء الآن على الطرق
requireContext()
وrequireActivity()
وrequireHost()
وrequireFragmentManager()
التي تعرض كائنNonNull
من مناهج get المكافئة أو تعرضIllegalStateException
. - تمت إضافة
requireViewById()
، وهو نسخة متوافقة من@NonNull
منfindViewById()
إلىWindowCompat
وActivityCompat
وViewCompat
، ما يؤدي إلى عرضIllegalArgumentException
عند عدم العثور على الهدف. - تحتوي طريقتَا
LoaderCallbacks
الآن على التعليقَين التوضيحيَين@Nullable
و@NonNull
المناسبَين. - يتوافق
FileProvider
الآن معgetExternalMediaDirs()
على واجهة برمجة التطبيقات 21 والأجهزة الأحدث من خلال العنصر<external-media-path>
الجديد.
إصلاح الأخطاء
- الجزء الذي يقوم بتهيئة Loader في onCreate قد تسبب في عطل في دورة الحياة داخل ViewPager
- يطرح LoaderManager شرطًا غير محظور على حالة الخطأ في الدالة onLoadFinished
- لا يقوم LoaderViewModel بمحو مركبات التحميل في onCleared
- لم يتم العثور على ملف فئة android.rc.lifecycle.ViewModelStoreOwner
- DialogFragment onReject لا يتم استدعاءه على الفور بعد إغلاق()
- لا تعمل الرموز التعبيرية لعلم البلد على الأجهزة التي تعمل بمفاتيح الإصدار عند استخدام الخطوط القابلة للتنزيل
- تستخدم مكتبة التفضيلات سمات لن تعمل على إصدارات Android القديمة
- تم توثيق أنواع عناصر الاختبار في MediaCompat بطريقة غير صحيحة (مشكلة AOSP 71559905)
- تعطُّل Google Sans في TypefaceCompatUوسيلة
- عرض الدالة الإنشائية ArraySet التي تتخذ في المجموعة.
- يزيل updateApi ملفات .ignore التي يجب الاحتفاظ بها
- MainFragment متكررة تم إنشاؤها في browseFragment
- إزالة استخدام الانعكاس من CarRecyclerView
- java.lang.legalStateException في FragmentManagerImpl.checkStateLoss
- تم الحصول على (undocumented) java.lang.SecurityException عند استخدام android.support.v4.content.PermissionChecker.checkSelfPermission
- RecyclerView IndexOutOfBoundsException بسبب عدم محو State.mPreviousLayoutItemCount في setAdapter (مشكلة AOSP 37657125)
- الجزء الذي يهيئ أداة التحميل في onCreate قد تعطّل دورة حياة داخل ViewPager (مشكلة AOSP 34831613)
- أعطال FragmentManagerImpl.execSingleAction
إصدار الإصدار 27.0.2
(تشرين الثاني/نوفمبر 2017)
إصلاح الأخطاء
-
EmojiEditTextHelper
يرميNullPointerException
. -
IllegalStateException
: لم يتم إرفاق الجزء بعد. - يتعذر إغلاق النافذة المنبثقة لرمز "البثّ" من خلال النقر في أي مكان على الشاشة.
-
MediaMetadataCompat
يرميBadParcelableException
.
إصدار الإصدار 27.0.1
(تشرين الثاني/نوفمبر 2017)
إصلاح الأخطاء
- تكون حالة LifecycleRegistry في حالة غير صحيحة بعد طلب
startActivityForResult()
. (المشكلة 65665621) - لون الأزرار التي تم إيقافها فاتح جدًا في مستويات واجهة برمجة التطبيقات القديمة.
- بعد انتقال المستخدم للأسفل، لا يمكنه النقر على عنصر في
RecyclerView
. (مشكلة AOSP 66996774) - في Talkback، لا يؤدي النقر على مزيد من الخيارات إلى إعلان النظام عن النافذة المنبثقة الجديدة أو التركيز على الخيارات الجديدة.
إصدار الإصدار 27.0.0
(تشرين الأول/أكتوبر 2017)
اختلافات واجهة برمجة التطبيقات
التغييرات في واجهة برمجة التطبيقات
- تمّت إضافة التعليقات التوضيحية التي لا تتضمّن أي قيم إلى مجموعة متنوعة من واجهات برمجة التطبيقات، بما في ذلك ما يلي: قد يؤدي ذلك إلى حدوث أخطاء في تجميع لغة البرمجة Kotlin عندما لا يتم التعامل بشكل صحيح مع أنواع الإرجاع القابلة للقيم الفارغة.
-
يمكن لـ
Fragment
استخدام إصدارات المكتبة المتوافقة منTransition
مع عمليات الانتقال للأجزاء، بما في ذلك عمليات انتقال العناصر المشتركة. - توفّر مكتبة تقسيم المحتوى (
android.support.content.ContentPager
) إمكانية استخدام صفحات المحتوى التي يتم عرضها من خلالContentProvider
. يتيح استخدام هذه المكتبة للعميل تجنُّب "عمليات تبديل نوافذ المؤشر" المكلفة في سلسلة محادثات واجهة المستخدم، ما يوفّر مكتبة متوافقة مع ميزة Android 8.0. -
يضيف تطبيق
ViewCompat
الآن برامج تضمين لطُرق الملء التلقائي، بما في ذلكgetImportantForAutofill()
وisImportantForAutofill()
وsetAutofillHints()
وsetImportantForAutofill()
. -
يحصل Leanback
على ميزات جديدة ويصقل ويفقد بعض الفئات المتوقّفة، مثل:
-
بإمكان
Picker
الآن استخدام فواصل مختلفة بين كل عمود باستخدام طريقةsetSeparators()
. -
تمت إضافة
DiffCallback
للسماح لـArrayObjectAdapter
بالاستفادة من المخرجات التي يتم توفيرها من قِبلDiffUtil
. - تمت إضافة بنية أساسية لإتاحة مشغّلات الوسائط باستخدام عناصر تحكّم متغيّرة، وإضافة عناصر تحكّم اختيارية للتقديم السريع والتكرار والترتيب العشوائي والتالي والسابق والترجيع.
- تمت إزالة
MediaControllerGlue
وPlaybackControlGlue وPlaybackControlSupportGlue
وPlaybackOverlayFragment
.
-
بإمكان
- لأغراض الاختبار، يتم نقل الأداة PollingCheck من AOSP CTS. فهو يسأل عن حالة حدوث ضمن فترة المهلة.
- تمت إضافة البنية الأساسية لإتاحة أذونات وقت التشغيل في التطبيقات الفورية لنظام التشغيل Android 5.0، وذلك باستخدام
PermissionCompatDelegate
. - أصبحت علامات التبويب المخصّصة الموثوق بها متاحة الآن، إلى جانب إمكانية تحديد العلاقة بين التطبيق ومعرّف الموارد المنتظم (URI) الأصلي.
- تم تبسيط إتاحة "وضع الإضاءة السينمائية" على Android Wear باستخدام جزء "وضع عدم النشاط" الذي لا يتضمّن واجهة مستخدم رسومية، ما يجعل إتاحة "وضع الإضاءة السينمائية" متوافقًا مع استخدام المكوّنات الهندسية.
- يسعى فريق Wear للحصول على ملاحظات مطوّري البرامج حول هذا التغيير المهم. لمزيد من المعلومات، يمكنك الاطّلاع على ملاحظات إصدار Android Wear.
- تمت إزالة بعض الفئات التي تم إيقافها نهائيًا بسبب ابتعادنا عن واجهات برمجة التطبيقات القديمة التي تسبق الإصدار V14، مثل
android.support.v7.NotificationCompat
(استخدِم الإصدار 4NotificationCompat
بدلاً منه) وKeyEventCompat
وParallelExecutorCompat
وSearchViewCompat
. - أصبحت ثوابت البيانات الوصفية التي تم نقلها متوفّرة الآن من خلال
android.support.wear.utils.MetadataConstants
. - يتوفر الآن "وضع الاستراحة" لجميع الأنشطة، وليس فقط لـ WearableActivity. لمزيد من المعلومات، يمكنك الاطّلاع على مرجع
AmbientMode
. -
تتيح علامة التبويب
RoundedDrawable
الآن استخدام تضخيم تنسيق XML.
إصلاح الأخطاء
- أعطال التطبيق في الإصدار 27 من مكتبة الدعم والخط القابل للتنزيل
- لا تعمل الخطوط القابلة للتنزيل مع المشاريع الجديدة التي يتم إنشاؤها بعد تحديث حزمة تطوير البرامج (SDK).
- واجهة برمجة تطبيقات SpeechRecognizer معطّلة في آخر ترقية
- تعطُّل متعلق بالأجزاء أثناء الرسم بعد إزالة عرض الصورة المتحركة
- تشغيل الوسائط support-leanback-demos معطلة
- مكتبة دعم Android تضيف <meta-data> إلى البيان
- يجب على FontResourcesParserCompat فهم طبيعة Android: attrs.
- لا تدعم تقنية Glue في Leanback مفتاح الإدخال "إيقاف مؤقت"
- رمز لم يتم حله في IDE عندما تشترك حزم متعددة في نفس معرّف الأداة.
- استثناء المؤشر فارغ في CarExtender
- تم تعيين وضع التشغيل العشوائي / التكرار بشكل غير صحيح بعد إنشاء وحدة تحكم الوسائط
- يتم تشغيل الملصقات التلقائية لمجموعة المكتبات في المجموعة التالية أثناء التنقل
- تم اقتطاع البيانات الوصفية لبطاقة الاقتراحات
- legalArgumentException على RecyclerView.attachViewToParent()
- ClassNotFoundException عند إلغاء تحديد SaveState (مشكلة AOSP 37133281)
- توقُّف التركيز في RecyclerView
- إصلاح خطأ ANR في Leanback LayoutManager
إصدار الإصدار 26.1.0
(أيلول/سبتمبر 2017)
هذا إصدار خاص لدمج مكتبة الدعم مع دورات الحياة من مكوّنات البنية. إذا كنت لا تستخدم مكتبة "مراحل الحياة"، لن تحتاج إلى التحديث من الإصدار 26.0.2. لمزيد من المعلومات، راجع ملاحظات إصدار المكونات الهيكلية.
تغييرات مهمة
- ينفِّذ
Fragment
وFragmentActivity
(الفئة الأساسية للسمةAppCompatActivity
) الآن واجهةLifecycleOwner
من مكوّنات البنية.
إصدار الإصدار 26.0.2
(آب/أغسطس 2017)
إصلاح الأخطاء
- يتم دمج رموز القائمة في Support Library 26.0.0
- لا يعمل
GuidedAction.multilineDescription
بشكل صحيح مع Leanback
إصدار الإصدار 26.0.1
(آب/أغسطس 2017)
إصلاح الأخطاء
- تعطُّل FontCompat 26.0.0 على أجهزة O-MR1
- يجب ألا تتضمن مكتبة دعم التصميم 26.0.0 دعمًا متعدد الوسائط (المشكلة 63999442))
- يحتوي AppBarLayout الآن على مساحة متروكة تبلغ 300 بكسل منذ الإصدار 26.0.0
- التنقل في PlaybackTransportControl معطّل
- يتم استدعاء Fragment.onCreateView في وقت ما قبل انتهاء onCreate في وقت ما
- android.os.BadParcelableException: ClassNotFoundException عند التوقف: android.support.v4.media.MediaMetadataCompat
إصدار الإصدار 26.0.0
(تموز/يوليو 2017)
ملاحظة مهمة: أصبحت مكتبات الدعم متاحة الآن من خلال مستودع Maven من Google. ولن تحتاج إلى تنزيل مستودع الدعم من "إدارة SDK". للحصول على مزيد من المعلومات، يمكنك الاطّلاع على إعداد مكتبة الدعم.
تغييرات مهمة
- تمت زيادة الحد الأدنى من إصدار حزمة تطوير البرامج (SDK) إلى 14. ونتيجةً لذلك، تم نهائيًا إيقاف العديد من واجهات برمجة التطبيقات التي كانت متوفّرة فقط بغرض التوافق مع المستويات الأقدم من 14 لواجهة برمجة التطبيقات. ويجب نقل عملاء واجهات برمجة التطبيقات هذه إلى إطار العمل المكافئ لها كما هو موضّح في الصفحة المرجعية لكل واجهة برمجة تطبيقات تم إيقافها.
- تحتوي مكتبة واجهة مستخدم Wear على صفوف تساعدك في تنفيذ الأنماط والتصاميم المتوافقة مع أجهزة Wear OS. لمزيد من المعلومات، يمكنك الاطّلاع على استخدام مكتبة واجهة مستخدم Wear.
- تم إيقاف وحدة دعم Percent. على عملاء هذه الوحدة نقل البيانات إلى
أداة
ConstraintLayout
الجديدة التي يتم توفيرها كعنصر منفصل في "أداة إدارة تطوير البرامج (SDK)". - تم إيقاف السمة
android.support.v7.app.NotificationCompat
والفئات التي تتضمّنها نهائيًا وستتم إزالتها في إصدار مستقبلي:- استخدِم السمة
NotificationCompat.Builder
بدلاً منv7.app.NotificationCompat.Builder
. تم دمج الوظائف التي كانت تعتمد سابقًا على استخدام الإصدار 7 من أداة إنشاء التطبيقات AppCompat Builder في الإصدار 4 من Compat Builder. -
تم نقل
DecoratedCustomViewStyle
إلى حزمةandroid.support.v4.app
. -
أصبحت
MediaStyle
وDecoratedMediaCustomViewStyle
الآن جزءًا من مكتبة Media-compat ويمكن العثور عليها في حزمة android.support.v4.media.app.
- استخدِم السمة
واجهات برمجة تطبيقات جديدة
- علامة منطقية
fastScrollEnabled
جديدة لـRecyclerView
إذا كانت هذه الميزة مفعّلة، يجب ضبطfastScrollHorizontalThumbDrawable
وfastScrollHorizontalTrackDrawable
وfastScrollVerticalThumbDrawable
وfastScrollVerticalTrackDrawable
.
اختلافات واجهة برمجة التطبيقات
إصلاح الأخطاء
- حلقة لانهائية في RecyclerView.toString()
- ResourceNotFoundException تشغيل مشروع Kotlin على واجهة برمجة التطبيقات 16 AVD بعد الترقية إلى إصدار Canary 6
- java.lang.AssertionError في عرض التصميم مع مكتبة الدعم 26.0.0-beta2
- معاينة تنسيق "استوديو Android" معطّلة لتطبيقات "مكتبة الدعم"
- يتم تجاهل التفضيلات.setSingleLineTitle() في حال عدم إنشاء الإعداد المفضّل باستخدام سمات.
- التعليقات التوضيحية "منذ أن" في DAC خاطئة في مراجعات 25.3.0 / 25.4.0 من Support Library
- موارد الموارد (ResourceCompat.getFont()) تطرح استثناء
- عنوان شريط الأدوات ليس بخط غامق
- يؤدي تغيير الحجم التلقائي باستخدام maxLines إلى نتائج غير متوقعة
- NullPointerException في TextView.checkForRelayout()
- يستدعي AppCompatTextViewAutoSizeHelper.setRawTextSize() requestLayout() أثناء التنسيق.
- أعطال EmojiAppCompatTextView
- لا يتم ضبط طريقة عرض النص في الحجم التلقائي عند تغيير النص
- تلف الشاشة في Instacart
- supportedOperationException في MenuItemCompat
- لا يستخرج NotificationCompat الإجراءات بالكامل من واجهة برمجة التطبيقات 24 أو الإصدارات الأحدث.
- مشاكل الإرساء في تعديلات التنسيق بتنسيق CoordinatorLayout