تقدم هذه الصفحة تفاصيل حول إصدارات حزمة Support Library الأقدم. للحصول على أحدث إصدارات Support Library، يمكنك الاطّلاع على المراجعات الحديثة من مكتبة الدعم.
النسخة التجريبية 26.0.0 من الإصدار التجريبي 2
(حزيران/يونيو 2017)
يُرجى ملاحظة أن الإصدار 26.0.0-beta2 هو إصدار تجريبي. قد يخضع سطح واجهة برمجة التطبيقات للتغيير، ولا يتضمّن بالضرورة ميزات أو إصلاحات للأخطاء من أحدث الإصدارات الثابتة من Support Library.
ملاحظة مهمة: أصبحت مكتبات الدعم متاحة الآن من خلال مستودع Maven من Google. ولن تحتاج إلى تنزيل مستودع الدعم من "إدارة SDK". للحصول على مزيد من المعلومات، يمكنك الاطّلاع على إعداد مكتبة الدعم.
واجهات برمجة تطبيقات جديدة
- صف
JobIntentService
جديد لمساعدة المطوّرين في تحديد مواعيد المهام بطريقة تتوافق مع حدود التنفيذ في الخلفية الجديدة لنظام التشغيل Android O.
اختلافات واجهة برمجة التطبيقات
إصلاح الأخطاء
- بسبب انخفاض حزمة تطوير البرامج (SDK) لنظام التشغيل Android O، فقدان الخط المائل في TextViews
- استثناء قيمة فارغة عند الاتصال بـ MediaBrowserServiceCompat
- يجب أن يضبط TextInputLayout تلميحات على onprovideAutofill تفعيله()
- تجاوز حجم التكدس عند استخدام الحجم التلقائي لـ TextView على O
الإصدار 26.0.0 التجريبي 1
(أيار/مايو 2017)
يُرجى ملاحظة أن الإصدار 26.0.0-beta1 هو إصدار تجريبي. قد يخضع سطح واجهة برمجة التطبيقات للتغيير، ولا يتضمّن بالضرورة ميزات أو إصلاحات للأخطاء من أحدث الإصدارات الثابتة من Support Library.
ملاحظة مهمة: أصبحت مكتبات الدعم متاحة الآن من خلال مستودع Maven من Google. ولن تحتاج إلى تنزيل مستودع الدعم من "إدارة SDK". للحصول على مزيد من المعلومات، يمكنك الاطّلاع على إعداد مكتبة الدعم.
تغييرات مهمة
- تمّت إزالة
FragmentActivity.setSupportMediaController()
وFragmentActivity.getSupportMediaController()
. يُرجى استخدام الطريقتَين الثابتتَينMediaControllerCompat.setMediaController()
وMediaControllerCompat.getMediaController()
الجديدتَين. - يستدعي
BottomNavigationView
الآنonNavigationItemReselected()
عند اختيار عنصر محدّد بدلاً من استدعاءonNavigationItemSelected()
. - تعرض جميع مثيلات الطريقة
findViewById()
الآن<T extends View> T
بدلاً منView
. ينتج عن هذا التغيير ما يلي:- قد يؤدي ذلك إلى أن يكون للرمز الحالي نوع عرض غامض الآن،
على سبيل المثال إذا كان هناك كل من
someMethod(View)
وsomeMethod(TextView)
يأخذ نتيجة الاستدعاء إلىfindViewById()
. - عند استخدام لغة مصدر Java 8، يتطلب ذلك بثًا صريحًا إلى
View
عندما يكون نوع الإرجاع غير محدود (على سبيل المثال،assertNotNull(findViewById(...)).someViewMethod())
. - في حال إلغاء طُرق
findViewById()
غير النهائية (مثلActivity.findViewById()
)، يجب تعديل نوع الإرجاع الخاص بها.
- قد يؤدي ذلك إلى أن يكون للرمز الحالي نوع عرض غامض الآن،
على سبيل المثال إذا كان هناك كل من
واجهات برمجة تطبيقات جديدة
-
يتضمّن
FragmentManager
وFragment
طريقةisStateSaved()
للسماح بالاستعلام عما إذا كان سيتم السماح بالمعاملة بدون فقدان الحالة. ويُعدّ هذا الإجراء مفيدًا على وجه التحديد عند التعامل مع حدثonClick()
قبل تنفيذ أي معاملة. - تتوفّر حركة المسار في
AnimatedVectorDrawableCompat
. من خلال "حركة المسار"، يمكن لعارض كائن واحد تغيير خاصيتَين في الوقت نفسه استنادًا إلى مسار واحد، ويتم تحديد المسار على النحو التالي:android:pathData
في ملف XML الخاص بأداة الرسوم المتحركة. - الصور المتحركة
المستندة إلى الفيزياء:
FlingAnimation
جديدة تتيح إنشاء لقطات متحرّكة بسرعة مبدئية وتبطئ بسلاسة- تتيح الفئات الفرعية من
DynamicAnimation
إمكانية تحريك خاصية مخصّصة لأي عنصر. - يمكن الآن لكل من
SpringAnimation
وFlingAnimation
تحريك قيمة عائمة بدون الحاجة إلى ربطView
أوObject
بها.
للحصول على مزيد من المعلومات، اطّلِع على صفحتَي معاينة الصور المتحركة في الربيع والصور المتحركة المتحركة.
-
الخطوط في XML:
-
تسمح
ResourcesCompat.getFont
بتحميل موارد الخطوط، بما في ذلك ملفات XML لمجموعة الخطوط، التي يمكن استخدامها معTextView.setTypeface()
. - عند استخدام AppCompat، يتيح TextView تحديد مورد خط أو
ملف XML لمجموعة الخطوط من خلال سمة XML
android:fontFamily
. - استخدِم مجموعة خطوط XML لإنشاء مجموعات خطوط بأنماط مختلفة ووزن. (إذا كنت تستخدم فئات مكتبة الدعم لإجراء ذلك، استخدِم سمات
app:
بالإضافة إلى سماتandroid:
).
-
تسمح
- الخطوط القابلة للتنزيل:
- ميزة
FontsContractCompat
جديدة تتيح لك طلب الخطوط من موفّر خطوط بدلاً من تجميعها في تطبيقك. - يمكن أيضًا طلب الخطوط في XML واستخدامها في التنسيقات.
- ميزة
-
مكتبة التوافق مع الرموز التعبيرية:
-
بإمكان "
EmojiCompat
" معالجةCharSequence
وإضافةEmojiSpans
. -
EmojiTextView
وأدوات أخرى لعرض الرموز التعبيرية. -
FontRequestEmojiCompatConfig
لطلب خط الرموز التعبيرية من موفّر خطوط
-
بإمكان "
-
تغيير حجم
TextView تلقائيًا:
- طُرق جديدة في
TextViewCompat
بالإضافة إلى سمات XML للتحكّم في تغيير الحجم التلقائي فيTextView
.
- طُرق جديدة في
- عناصر التحكم في التشغيل Leanback مع طلب الدعم:
-
PlaybackTransportRowPresenter
جديد يعرض عناصر التحكّم في التشغيل باستخدام شريط SeekBar- جهاز
PlaybackTransportControlGlue
جديد يعمل معPlaybackTransportRowPresenter
ويتوافق مع ميزة "التقديم/الترجيع" - فئة أساسية جديدة
PlaybackSeekDataProvider
للتطبيق لتوفير صور مصغّرة لـPlaybackTransportControlGlue
.
- مخزن بيانات الإعدادات المفضّلة:
-
يتيح لك
PreferenceDataStore
الآن ضبط إعدادات مساحة التخزين المفضّلة لديك، وذلك من خلال طرق جديدة فيPreference
وPreferenceManager
.
-
يتيح لك
المشاكل المعروفة
- لا يعمل دمج الخطوط والرموز التعبيرية القابلة للتنزيل مع "خدمات Google Play" إلا على "خدمات Google Play" الإصدار 11 أو الأحدث، والذي يتوفّر حاليًا من خلال البرنامج التجريبي "خدمات Google Play".
إصلاح الأخطاء
-
MediaBrowserCompat.search()
API لا تعمل (مشكلة AOSP 262170) -
طرح
ViewCompat.postInvalidateOnAnimation()
استثناء (مشكلة AOSP 80146) -
استدعت
onActivityCreated()
بعض الأجزاء في النشاط الذي تم إتلافه. -
من المفترض أن تعرض السمة
RecyclerView.isComputingLayout()
القيمة "صحيح" أثناء الجلب المُسبَق. -
عند مقاطعة انتقال
Fade
وعكسه، يبدأView
الصورة المتحركة من البداية. (إصلاح عملية النقل من Android Framework). -
يتجاهل
Transition.Fade
ألفا الأولي لـView
(مشكلة AOSP 221820)
الإصدار 26.0.0 ألفا 1
(آذار/مارس 2017)
يُرجى ملاحظة أن الإصدار 26.0.0-alpha1 هو إصدار تجريبي. قد يخضع سطح واجهة برمجة التطبيقات للتغيير، ولا يتضمّن بالضرورة ميزات أو إصلاحات للأخطاء من أحدث الإصدارات الثابتة من Support Library.
تغييرات مهمة
ملاحظة: تمت زيادة الحد الأدنى من إصدار حزمة تطوير البرامج (SDK) إلى 14. نتيجةً لذلك، تم نهائيًا إيقاف العديد من واجهات برمجة التطبيقات التي كانت متوفّرة فقط لتوافق واجهة برمجة التطبيقات < 14. ويجب نقل عملاء واجهات برمجة التطبيقات هذه إلى إطار العمل المكافئ لها كما هو موضّح في الصفحة المرجعية لكل واجهة برمجة تطبيقات تم إيقافها.
- تم إيقاف وحدة النسبة المئوية للدعم. على عملاء هذه الوحدة نقل بياناتهم إلى أداة ConstraintLayout الجديدة، التي يتم توفيرها كأداة منفصلة في "أداة إدارة SDK".
- لم تعُد وحدة أجزاء الدعم تعتمد على وحدة support-media-compat.
واجهات برمجة تطبيقات جديدة
تمت إضافة العديد من الفئات والطرق والثوابت الجديدة لتوفير توافق متوافق مع الإصدارات القديمة لواجهات برمجة التطبيقات للنظام الأساسي التي تمت إضافتها في معاينة O.
IME_FLAG_NO_PERSONALIZED_LEARNING
: يمكن لأدوات IME رصد علامات "لا يمكن التعلُّم" للتطبيقات التي تحتوي على الوضع الخاص، مثل المتصفحات. وتساعد هذه الميزة أدوات IME في معرفة ما إذا كان التطبيق في الوضع الخاص، كي يمكنها إيقاف وظائف التعلم أو الوظائف التكيفية عندما يكون التطبيق في ذلك الوضع.
للحصول على قائمة كاملة بالتغييرات في واجهة برمجة التطبيقات بين الإصدارين 25.2.0 و26.0.0-alpha1، يمكنك الاطّلاع على تقرير الاختلافات في واجهة برمجة التطبيقات الخاصة بمكتبة الدعم.
إصلاح الأخطاء
- في بعض الحالات، يمكن أن تتم مقاطعة حركة
AutoTransition
المتحركة البسيطة من خلال عرض "القفزات". (مشكلة AOSP 221816)
الإصدار 25.4.0
(حزيران/يونيو 2017)
ملاحظة مهمة: أصبحت مكتبات الدعم متاحة الآن من خلال مستودع Maven من Google. ولن تحتاج إلى تنزيل مستودع الدعم من "إدارة SDK". للحصول على مزيد من المعلومات، يمكنك الاطّلاع على إعداد مكتبة الدعم.
تغييرات مهمة
- لا يُسمح بالمكالمات
executePendingTransactions()
وcommitNow()
وpopBackStackImmediate()
وغيرها من الطلبات المرتبطة بالمعاملات المشابهة أثناء تغييرات الحالةFragmentManager
. إنّ تنفيذ المعاملات من جديد غير آمن، ويفرضFragmentManager
الآن ذلك أثناء تغييرات الحالة. - بالتزامن مع إصدار مكتبة الدعم هذا، سنطلق أيضًا الإصدار 1.0.2 من multidex. يتضمّن هذا الإصدار التغييرات المهمة التالية:
- تسمح هذه السياسة بالتصحيح المتعدد لحزمة APK للأدوات.
- سيتم إيقاف ميزة MultiDexTestRunner (يجب استخدام AndroidJUnitRunner بدلاً من ذلك).
- توفير حماية أفضل من بعض أساليب استخراج الأرشيف غير الصالحة للتطبيق
- إصلاح خطأ قد يؤدي إلى ترك الملفات المؤقتة.
- يوفر إمكانية تثبيت أسرع عند إجراء العملية المتزامنة.
- إصلاح خطأ تثبيت في واجهة برمجة التطبيقات 19 و20.
واجهات برمجة التطبيقات الجديدة والمعدَّلة
يعتمد تشكيل المسار واستيفاء المسار في AnimatedVectorDrawableCompat
. يسمح تحويل المسار
بتغيير الأشكال من مسار واحد (تم تحديده باسم
android:valueFrom
) إلى مسار آخر (تم تحديده على أنّه
android:valueTo
)، وذلك لتحقيق تأثيرات بصرية
معقدة وجذابة. تسمح عملية الاستيفاء للمسار بتحديد عناصر الاستيفاء لـ AnimatedVectorDrawableCompat
كمسارات (المحددة بالرمز android:pathData
في ملف XML الخاص بأداة الاستيفاء).
اختلافات واجهة برمجة التطبيقات
المشاكل التي تم إصلاحها
- استثناء قيمة فارغة عند الاتصال بـ MediaBrowserServiceCompat
- واجهة برمجة التطبيقات MediaBrowserCompat.search() لا تعمل (مشكلة AOSP 262170)
- تصفحFragment onItemClicked معاودة الاتصال غير الصالحة في الإصدار 25.3.0
- NullPointerException أثناء التمرير لأعلى ولأسفل في VerticalGridView في الإصدار 25.3.1
- ClassCastException في SimpleArrayMap.allocArrays()
الإصدار 25.3.1
(آذار/مارس 2017)
المشاكل التي تم إصلاحها
- يتطلّب الإصدار
SwitchCompat
الإصدار 14 كحدّ أدنى من حزمة تطوير البرامج (SDK) أو إصدارًا أحدث. (مشكلة AOSP 251302) - تتخطّى الصورة المتحركة المستندة إلى الفيزياء
updateListener
الإطار الأول. - الصورة المتحركة لتصنيف
BottomNavigationView
معطّلة.
الإصدار 25.3.0
(آذار/مارس 2017)
تغييرات مهمة
ستتم تلقائيًا إضافة البيانات الوصفية لإصدار Support Library إلى
"AndroidManifest.xml
" عند إنشائها من خلال Gradle، ما يبسّط
تتبُّع الإصدارات في الإصدارات المتاحة للجميع. مثلاً:
<meta-data android:name="android.support.VERSION" android:value="25.3.0" />
عمليات الإيقاف
تم إيقاف عدد من الطرق والفئات في هذا الإصدار. ستتم إزالة واجهات برمجة التطبيقات التي تم إيقافها نهائيًا في إصدار مستقبلي، وعلى مطوّري البرامج بدء استخدامها. لمزيد من المعلومات حول كيفية الانتقال من واجهة برمجة تطبيقات محددة، راجع وثائقها.
ExifInterface
- تم إيقاف الطريقة المنطقية
getLatLong(float[])
نهائيًا. بدلاً من ذلك، استخدِم الطريقة الجديدةgetLatLong()
التي لا تستخدم أي وسيطات وتعرضdouble[]
. mediacompat
- تم إيقاف
PlaybackStateCompat.Builder.setErrorMessage(CharSequence)
نهائيًا. بدلاً من ذلك، استخدِم الطريقة الجديدةsetErrorMessage(int, CharSequence)
، التي تمرر رمز خطأ ووصفًا اختياريًا.
تم إيقاف EXTRA_SUGGESTION_KEYWORDS
نهائيًا. بدلاً من ذلك، يمكنك استخدام وظيفة البحثMediaBrowserCompat
.v7.recyclerview
- تمت إعادة تسمية
LinearLayoutManager.getInitialItemPrefetchCount()
إلىLinearLayoutManager.getInitialPrefetchItemCount()
. لا يزال الاسم القديم متاحًا، ولكن ستتم إزالته في إصدار مستقبلي.
واجهات برمجة التطبيقات الجديدة والمعدَّلة
appcompat-v7
- تعمل الطريقة الجديدة
ActionBarDrawerToggle.setDrawerSlideAnimationEnabled(boolean)
على تبسيط عملية إيقاف الصورة المتحركة لرمز التبديل في لائحة التنقل. customtabs
- تمت إضافة دعم لقنوات الرسائل. يمكنك الاطّلاع على مرجعَي
CustomTabsService.requestPostMessageChannel()
وCustomTabsService.postMessage()
للحصول على مزيد من التفاصيل. dynamic-animation
- مكتبة صور متحركة جديدة مستندة إلى الفيزياء وتوفّر مجموعة من واجهات برمجة التطبيقات لإنشاء صور متحركة تتفاعل بشكل ديناميكي مع إدخالات المستخدم.
leanback-v17
- تمت إضافة إمكانية استخدام خلفيات اختلاف المنظر. يمكنك الاطّلاع على مرجع
Parallax
للحصول على التفاصيل. - تمت إضافة
تطبيق
TimePicker
المصغّر لاختيار الأوقات المتاحة على واجهة التلفزيون. mediacompat
- تمت إضافة وظيفة البحث. يمكنك الاطّلاع على مرجعَي
MediaBrowserCompat.search()
وMediaBrowserServiceCompat.onSearch()
للحصول على مزيد من التفاصيل. - أتحنا استخدام أوضاع التبديل وتكرار التكرار. يمكنك الاطّلاع على مرجعَي
MediaSessionCompat.setRepeatMode()
وsetShuffleModeEnabled()
للحصول على مزيد من التفاصيل.
المشاكل التي تم إصلاحها
StaggeredGridLayoutManager
تطرحIllegalArgumentException
(مشكلة AOSP 230295)- لا تعالج الجلب المُسبَق في "
RecyclerView
" ملفRecyclerView
المرفق، ولكن لا يظهر على الشاشة بشكل صحيح. - لم يتم التعرّف على
LinearLayout
من قِبل Robolectric - عندما يتم تدمير
Activity
، يتم استدعاءonActivityCreated()
بشكل غير صحيح بسبب أجزائه. - تتسبب دالة إنشاء
AppCompatImageView
فيArrayIndexOutOfBoundsException
- أداء ضعيف لواجهة المستخدم خلال عملية نقل نشاط
Call.Details
الإصدار 25.2.0
(فبراير 2017)
تغييرات مهمة
المشاكل التي تم إصلاحها
- يعالج هذا الإصدار مشكلة خطيرة في جهاز توجيه الوسائط قد يؤدي فيها استخدام جهاز A2DP وواجهات برمجة تطبيقات توجيه الوسائط إلى توقُّف الجهاز عن الاستجابة، ما يتطلب إعادة تشغيل الجهاز.
- أصبحت الفئة
FragmentManager.FragmentLifecycleCallbacks
ثابتة الآن.
المشاكل التي تم إصلاحها
- يؤدي عرض عرض تقديمي للشرائح مع النسخ المطابق للشاشة إلى انقطاع اتصال الجهاز بشبكة Wi-Fi.
- لم يتعامل زر الوسائط بشكل صحيح مع تطبيقات الوسائط التي لم تسجِّل
نفسها في
setMediaButtonReceiver()
. -
خطأ واحد (
VectorDrawable
) في مورد السلسلة (مشكلة AOSP 232407) - تلميح مركّبات
TextInputLayout
ونصّ في حال ضبط النص بتنسيق XML (مشكلة AOSP 230171) - تسرّب الذاكرة في
MediaControllerCompat
(مشكلة AOSP 231441) -
تعطُّل "
RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback()
" - تعطُّل
RecyclerView
عند إعادة تدوير حاملات الملفات الشخصية (مشكلة AOSP 225762) - تعرض القيمة
getAllowGeneratedReplies()
القيمة false بشكل غير صحيح عند تنفيذ الإجراءات داخلWearableExtender
الإصدار 25.1.1
(كانون الثاني/يناير 2017)
ملاحظة مُهمّة: هناك خطأ معروف في الفئة android.support.v7.media.MediaRouter
في الإصدارَين 25.1.1 و25.1.0 من Support Library. إذا كان تطبيقك يستخدم الإصدار 7 MediaRouter
، يجب التحديث إلى الإصدار Support Library Revision 25.2.0 الذي يعمل على إصلاح هذا الخطأ.
تغييرات مهمة
-
يمكن الآن تحسين المعاملات التي يتم إجراؤها باستخدام تجزئة ضمن المعاملات المختلفة. يمكن أن يؤدي تحسين العمليات المُجزأة للمعاملات إلى استبعاد العمليات التي يتم إلغاؤها. على سبيل المثال، لنفترض أنّه تم تنفيذ معاملتين معًا، إحداهما تضيف الجزء أ والأخرى تستبدل الجزء أ بالجزء "ب". في هذه الحالة، قد يتم إلغاء العملية الأولى وإضافة الجزء "ب" فقط. وهذا يعني أنّ الجزء "أ" قد لا يمر بدورة حياة الإنشاء/التدمير.
ومن الآثار الجانبية لهذا التحسين أنّ الأجزاء قد تتغير حالة الأجزاء غير المتوقَّعة. على سبيل المثال، لنفترض أنّ إحدى المعاملات تضيف الجزء "أ"، والثانية تضيف الجزء "ب"، والثالثة تزيل الجزء "أ". بدون تحسين، من المتوقّع أن يكون الجزء "ب" أثناء إنشائه متوفّرًا أيضًا بسبب إزالة الجزء "أ" بعد إضافة الجزء "ب". في حال إجراء عملية التحسين، لا يمكن أن يتأكّد الجزء "ب" من توفُّر الجزء "أ" أثناء إنشاء الجزء "ب"، لأنّ عملية إنشاء الجزء "أ" وإتلافه قد تتم إزالتهما بواسطة التحسين.
ويتم إيقاف عملية التحسين هذه تلقائيًا. لتفعيل عملية التحسين، اطلب
FragmentTransaction.setAllowOptimization(true)
. - يمكن للأجزاء الآن تأجيل عمليات النقل والصور المتحركة إلى أن تصبح جاهزة باستخدام
Fragment.postponeEnterTransition()
وFragment.startPostponedEnterTransition()
. تشبه واجهة برمجة التطبيقات هذه واجهة برمجة التطبيقاتActivity.postponeEnterTransition()
وActivity.startPostponedEnterTransition()
التي يتم استخدامها مع عمليات نقل الأنشطة.
المشاكل التي تم إصلاحها
-
تعذُّر تنفيذ
MediaSessionCompatTest
معIllegalArgumentException
-
لم يتم استدعاء
DetailsFragment.installTitleView()
في الإصدار 25.1.0 - تُبقي معاملة التجزئة العرض المفرغ المحدد عند الخروج (مشكلة AOSP 230679)
-
يجب إضافة مسافة بين رمز العنصر والنص في
BottomNavigationView
(مشكلة AOSP 230653). - أدوات الاستماع المحدّدة غير متوفّرة في الإصدارَين الجديدَين
PlaybackFragment
وPlaybackSupportFragment
-
لا يتغير تركيز
TextInputLayout
بشكل صحيح في المحاكي من إصدار 25.1.0 لمكتبة الدعم (مشكلة AOSP 230461) - لا يمكن استبدال قائمة
BottomNavigationView
(مشكلة AOSP 230343) -
RecyclerView
مع أعطالStaggeredGridLayoutManager
مع عناصر كاملة (مشكلة AOSP 230295) - تعطُّل في
MediaSessionCompat
عند استخدامsetCallback(null)
-
لا يتم إرسال إشعارات من
PlaybackGlueHostOld
وPlaybackSupportGlueHostOld
إلى معاودة الاتصال عند تغيير صف التشغيل. -
مثال من
PlaybackOverlayFragment
يتعذّر بدء تشغيل/test
. -
يتعذّر تنفيذ
RecyclerViewFocusRecoveryTest
على واجهة برمجة التطبيقات 15 - تركيز صف "لقطات الشاشة" على أعلى الشاشة
-
RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback()
أعطال على واجهة برمجة التطبيقات 15 -
setActions()
فيonSubactionClicked()
معطّلة -
تعطُّل "
RecyclerView
" عند إعادة تدوير بعض حاملات الملفات الشخصية
الإصدار 25.1.0
(كانون الأول/ديسمبر 2016)
ملاحظة مُهمّة: هناك خطأ معروف في الفئة android.support.v7.media.MediaRouter
في الإصدارَين 25.1.1 و25.1.0 من Support Library. إذا كان تطبيقك يستخدم الإصدار 7 MediaRouter
، يجب التحديث إلى الإصدار Support Library Revision 25.2.0 الذي يعمل على إصلاح هذا الخطأ.
تغييرات مهمة
- أمّا عملاء أدوات
RecyclerView
المضمَّنة (مثل قائمة التمرير العمودي لقوائم التمرير الأفقي)، فيمكنهم الاستفادة من مزايا كبيرة في الأداء من خلال الإشارة إلى مدراء تنسيقات أدواتRecyclerView
الداخلية في عدد العناصر المطلوب تحضيرها قبل الانتقال إلى الأسفل على الشاشة. يمكنك الاتصال بـLinearLayoutManager.setInitialPrefetchItemCount(N)
، حيث يشير الرقم N إلى عدد المشاهدات المرئية لكل عنصر داخلي. على سبيل المثال، إذا كانت القوائم الداخلية والأفقية تعرض ما لا يقل عن ثلاثة ونصف مشاهدات للسلع في المرة الواحدة، يمكنك تحسين الأداء من خلال طلبLinearLayoutManager.setInitialPrefetchItemCount(4)
. يسمح هذا الإجراء لـRecyclerView
بإنشاء جميع المشاهدات ذات الصلة مبكرًا، أثناء تنقّلRecyclerView
الخارجي، ما يقلّل بشكل كبير من مقدار التقطّع أثناء عمليات التمرير. - تم إيقاف السمتَين
FragmentActivity.setSupportMediaController()
وFragmentActivity.getSupportMediaController()
نهائيًا. يُرجى استخدام طريقتَيMediaControllerCompat.setMediaController()
الثابتة وMediaControllerCompat.getMediaController()
الثابتة الجديدتَين. - عندما يحدِّد العميل درجة لون عنصر واجهة المستخدم من خلال تطبيق التلوين المتوافق مع التطبيق (على سبيل المثال،
appcompat:buttonTint
)، يكون العميل مسؤولاً عن توفير جميع الحالات اللازمة (مثل "تم الإيقاف" و"تم الضغط" وما إلى ذلك). ويتوافق هذا مع كيفية تحديد درجات الألوان في التطبيقات المصغّرة عند استخدام درجات لون إطار العمل.
واجهات برمجة التطبيقات الجديدة والمعدَّلة
- تمت إضافة مكتبة دعم ExifInterface. تعمل هذه المكتبة على فصل إتاحة قراءة معلومات Exif من ملفات JPEG والملفات ذات التنسيق الأولي، وإعداد معلومات Exif على ملفات الصور JPEG.
- تمت إعادة هيكلة
Snackbar
للسماح للتطبيقات بعرض المحتوى المخصّص.BaseTransientBottomBar
هي الفئة الأساسية الجديدة التي تعرض السلوك العام للانزلاق والرسوم المتحركة. - تمت إضافة حزمة leanback.media جديدة تحتوي على فئات مساعِدة لدمج مشغّلات الوسائط في تطبيقات Android TV.
- تمت إضافة
SeekBarPreference
مع تنسيق وسمات قابلة للتخصيص إلى مكتبة الدعم للإصدار 7 من الإعدادات المفضّلة. - تمت إضافة صف
ArraySet
إلى مكتبة الدعم للإصدار 4. تتوافق هذه الفئة مع فئة إطار العملArraySet
التي تم تقديمها مع المستوى 23 من واجهة برمجة التطبيقات. RecyclerView
تحسينات الجلب المسبق لعنصر RecyclerView:- يتيح الجلب المُسبَق للترميز
RecyclerView
المُدمَج الجلب المُسبَق للمحتوى منRecyclerView
ضمنRecyclerView
تمرير آخر، باستخدام واجهة برمجة التطبيقات للتحكّم في مقدار الجلب المُسبَق الذي يتم تنفيذه: - تمت إضافة واجهات برمجة التطبيقات لكائنات
LayoutManager
المخصّصة لتنفيذها لإتاحة الجلب المسبق أثناء الانتقال والتمرير السريع. - تحسينات على الجلب المُسبَق للقيام بأكبر قدر ممكن من عمل الإنشاء/الربط خلال الفترة الزمنية بين الإطارات
- يتيح الجلب المُسبَق للترميز
المشاكل التي تم إصلاحها
- تعذّر تبديل إمكانية رؤية كلمة المرور في اختبارات إمكانية الوصول.
- لا تمتثل Appcompat لـ
state_enabled
على الأجهزة التي تسبق إصدار L. - تمت إضافة آلية استرداد التركيز إلى "
RecyclerView
". تم أيضًا إصلاح أجزاء معيّنة متوافقة مع المحتوى المفضّل، ما يؤدي إلى تعطُّل التركيز عند استخدام "أزرار الاتجاهات والتنقّل"، مثل أجهزة Android TV. - Leanback: يتعطل التصفّحFragment مع إيقاف الرؤوس والمحوّل الفارغ.
- توافق التطبيق:
AlertDialog
عريض جدًا. - يطلب
InputContentInfoCompat
requestPermission()
عندما يكون من المفترض الاتصال بـreleasePermission()
. - عدد الأعطال:
MediaBrowserCompat
- تقيس CoordinatorLayout/تحدد طرق العرض عند ضبط مستوى الرؤية على
GONE
. - تعذّر تلوين
AnimatedVectorDrawableCompat
على مستوى واجهة برمجة التطبيقات الأقل من 24. - تؤدي مكتبة Leanback إلى حدوث أخطاء كاذبة في الوبر
- تسببت مكتبة لوحة الألوان في إخفاقات الاختبار على كل مستوى من مستويات واجهة برمجة التطبيقات
- تعذّر
RecyclerView
اختبار على Leanback - تعطُّل
RecyclerView
عند إعادة تدوير حاملات الملفات الشخصية (مشكلة AOSP 225762) - لم يتم استدعاء
Fragment.onDestroy()
للجزء في حزمة Backstack. - لا يتم رسم إطار حاجب
CollapsingToolbarLayout
عند تصغيره. - رمية "
CoordinatorLayout.offsetChildByInset()
" لكرةIllegalArgumentException
- تؤدي الصور المتحركة لعناصر
RecyclerView
إلى فصلRecyclerView
الداخلية، ومنع عمليات الجلب المُسبق في المستقبل. - لا يمكن جلب
RecyclerView
العناصر المرفقة من خلال الجلب المُسبق. - يتم تجاهل بيانات الجلب المُسبَق لعناصر
RecyclerView
المُدمجة أثناء التنسيق الأول. - يتعذّر الجلب المُسبَق لـ
RecyclerView
في حال وصول حدثَي سحب إلى الموضع نفسه. - من المفترض أن يتم تنسيق
RecyclerView
بشكلٍ مثالي أثناء عرض RenderThread - لا تتم دائمًا الإزالة النهائية بشكل صحيح لموارد الألوان التي تم ضبطها في الليل والتي تم تحويلها إلى "قابلة للرسم" من ذاكرة التخزين المؤقت للموارد.
FloatingActionButton
: لا يعمل الإعداد الآلي خلفيةTintList بشكل صحيح (مشكلة AOSP 227428)TextInputLayout
: لم يتم ضبط نمط الخط في عرض الخطأ (مشكلة AOSP 227803)- يتم دائمًا استخدام واجهة برمجة التطبيقات
TextInputLayout
إلى لون الخطأ الفاتح أسفل واجهة برمجة التطبيقات 23 (مشكلة AOSP 221992). - يتم عرض
FloatingActionButton
عند الضغط عند مغادرة المؤشر
تتوفّر قائمة كاملة بإصلاح الأخطاء العامة في أداة تتبُّع المشاكل AOSP.
عمليات الإيقاف
تم إيقاف عدد من الطرق والفئات في هذا الإصدار. ستتم إزالة واجهات برمجة التطبيقات التي تم إيقافها نهائيًا في إصدار مستقبلي، وعلى مطوّري البرامج نقلها منها. لمزيد من المعلومات حول كيفية الانتقال من واجهة برمجة تطبيقات معيّنة، يمكنك مراجعة المستندات المتعلّقة بذلك.
-
android.support.design.widget
-
android.support.v17.leanback.app
BackgroundManager.getDefaultDimLayer()
BackgroundManager.getDimLayer()
BackgroundManager.setDimLayer()
MediaControllerGlue.MediaControllerGlue(Context,PlaybackOverlayFragment,int[])
MediaControllerGlue.MediaControllerGlue(Context,PlaybackOverlayFragment,int[],int[])
PlaybackControlGlue.PlaybackControlGlue(Context,PlaybackOverlayFragment,int[])
PlaybackControlGlue.PlaybackControlGlue(Context,PlaybackOverlayFragment,int[],int[])
PlaybackControlGlue.getFragment()
PlaybackControlGlue.getOnItemViewClickedListener()
PlaybackControlGlue.onRowChanged()
PlaybackControlGlue.pausePlayback()
PlaybackControlGlue.skipToNext()
PlaybackControlGlue.skipToPrevious()
PlaybackControlGlue.startPlayback()
PlaybackControlSupportGlue
PlaybackOverlayFragment
PlaybackOverlaySupportFragment
-
android.support.v17.leanback.widget
-
android.support.v4.app
FragmentActivity.getSupportMediaController()
FragmentActivity.setSupportMediaController()
الإصدار 25.0.1
(تشرين الثاني/نوفمبر 2016)
المشاكل التي تم إصلاحها
- تم إيقاف مفتاح تبديل كلمة مرور
TextInputLayout
تلقائيًا الآن لتجنُّب استبدال العناصر النهائية التي يحددها المطوّرون بدون الحاجة إلى ذلك. ويمكن تفعيلها يدويًا باستخدام سمة XMLpasswordToggleEnabled
. - تم تغيير سطر واحد (
BottomNavigationView
) إلى سطر واحد لمطابقة مواصفات المادة. - يتعطّل
RecyclerView
أثناء الجلب المسبق إذا كان مدير التنسيق فارغًا. - تم ضبط ارتفاع
BottomNavigationView
الآن بشكل صحيح. (مشكلة AOSP 226182) - يتعطّل
BottomNavigationView
عند إضافة عناصر في القائمة بشكل آلي. (مشكلة AOSP 225731) - احرِص على تثبيت
TextInputLayout
مادة عرض مركبة على اليمين واليسار. (مشكلة AOSP 225836) - يتعطّل
RecyclerView
عند إعادة تدوير حاملات الملفات الشخصية. (مشكلة AOSP 225762) - Leanback: كثيرًا ما تعرض ميزة TalkBack الكلمة "فارغ" في طرق عرض وضع تقسيم الشاشة.
RecyclerView
: مشاكل العرض في "استوديو Android" (مشكلة AOSP 225753)- يظلّ
BottomNavigationView
يعرض عنصر القائمة على النحو المحدّد بعد أن يعرضonNavigationItemSelected()
القيمة false. (مشكلة AOSP 225898) - تطرح RedirectListener
NoSuchMethodError
. (مشكلة AOSP 225647) - ولا يعرض
TextInputEditText
تلميحات في وضع استخراج أداة IME. (مشكلة AOSP 221880)
تتوفّر قائمة كاملة بإصلاح الأخطاء العامة في أداة تتبُّع المشاكل AOSP.
الإصدار 25.0.0
(تشرين الأول/أكتوبر 2016)
تغييرات مهمة
- تمت حماية دالة إنشاء
ContextCompat
. يجب ألا يتم إنشاء نسخة افتراضية من هذه الفئة علنًا، ولكن قد يتم توسيعها من خلال مكتبات الدعم التي تستهدف مستويات أحدث من واجهات برمجة التطبيقات. - تمت حماية دالة إنشاء
ActivityCompat
. يجب ألا يتم إنشاء نسخة افتراضية من هذه الفئة علنًا، ولكن قد يتم توسيعها من خلال مكتبات الدعم التي تستهدف مستويات أحدث من واجهات برمجة التطبيقات. - تم جعل
getReferrer(Activity)
ثابتًا. -
تمّت إزالة
android.support.design.widget.CoordinatorLayout.Behavior.isDirty(CoordinatorLayout, V)
. يجب إزالة أي عمليات تنفيذ من جانب العملاء لهذه الطريقة. -
تمّت إزالة
android.support.v4.media.session.MediaSessionCompat.obtain(Context, Object)
. يجب استبدال الاستخدامات بالطريقة المسماة الأكثر ملاءمةfromMediaSession()
. -
تمت إزالة
android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object)
. يجب استبدال الاستخدامات بالطريقة المسماة الأكثر ملاءمةMediaSessionCompat.QueueItem#fromQueueItem
. -
تمّت إزالة
android.support.v7.widget.Space
. يجب استبدال الاستخدامات بـandroid.support.v4.widget.Space
.
واجهات برمجة تطبيقات جديدة
-
فئة
android.support.design.widget.BottomNavigationView
تنفِّذ نمط التنقل السفلي من مواصفات التصميم المتعدد الأبعاد. - تتضمّن حزمة
android.support.v13.view.inputmethod
الجديدة صفوفًا للوصول إلى ميزاتandroid.view.inputmethod.InputConnection
المقدَّمة بعد المستوى 13 من واجهة برمجة التطبيقات. -
تتيح الفئة
android.v7.widget.RecyclerView.DividerItemDecoration
تنفيذًا أساسيًا للفواصل العمودية أو الأفقية بين العناصر. - تتوفر أنماط جديدة ذات تصميم جديد في
android.support.v7.app.NotificationCompat
وDecoratedCustomViewStyle
وDecoratedMediaCustomViewStyle
، وتمت إضافة فئات مماثلة في واجهة برمجة التطبيقات 24 للنظام الأساسي.
المشاكل التي تم إصلاحها
تتوفّر قائمة كاملة بإصلاح الأخطاء العامة في أداة تتبُّع المشاكل AOSP.
الإصدار 24.2.1
أيلول (سبتمبر) 2016
المشاكل التي تم إصلاحها:
- لم يعُد من الممكن ربط
FloatingActionButton
بالعناصر الثانوية غير المباشرة لـCoordinatorLayout
. (مشكلة AOSP 220250) - لا يتم تغيير حجم الصورة داخل
CollapsingToolbarLayout
بشكلٍ صحيح باستخدامfitsSystemWindows=true
. (مشكلة AOSP 220389) - يرمي
CoordinatorLayout
IndexOutOfBoundsException
عندما يتم عرضSnackbar
وإغلاقه. (مشكلة AOSP 220762) - تعذَّر على
TextInputLayout
إظهار لون نص الخطأ. (مشكلة AOSP 220305) BatchedCallback.onMoved()
يتصل علىBatchedCallback.onInserted()
. (مشكلة AOSP 220309)- تلغي السمة
TextInputLayout
العلامة المركّبة اليمنى القابلة للرسم. (مشكلة AOSP 220728)
تتوفّر قائمة كاملة بإصلاح الأخطاء العامة في أداة تتبُّع المشاكل AOSP.
الإصدار 24.2.0
آب (أغسطس) 2016
يحتوي الإصدار 24.2.0 على التغييرات التالية:
- الإصدار 4 من قسم "مكتبة الدعم"
- تحديثات واجهة برمجة التطبيقات
- التغييرات في السلوك
- الإيقافات
- إصلاح الأخطاء
ملاحظة: يزيل الإصدار 24.2.0 التوافق مع نظام التشغيل Android 2.2 (مستوى واجهة برمجة التطبيقات 8) والإصدارات الأقدم. تم الآن وضع علامة على الفئات والطرق التي تقتصر على عرض إصدارات النظام هذه على أنّها متوقّفة نهائيًا ويجب عدم استخدامها بعد الآن. وقد تتم إزالة هذه الفئات والطرق المتوقّفة نهائيًا في إصدار مستقبلي.
الإصدار 4 من قسم "مكتبة الدعم"
ومن خلال هذا الإصدار، تم تقسيم مكتبة دعم الإصدار 4 إلى عدة وحدات أصغر حجمًا:
-
support-compat
-
توفر برامج تضمين متوافقة مع واجهات برمجة التطبيقات الجديدة لإطار العمل، مثل
Context.getDrawable()
وView.performAccessibilityAction()
. -
support-core-utils
-
توفِّر عددًا من فئات الخدمات، مثل
AsyncTaskLoader
وPermissionChecker
. -
support-core-ui
-
تنفيذ مجموعة متنوعة من المكوّنات ذات الصلة بواجهة المستخدم، مثل
ViewPager
وNestedScrollView
وExploreByTouchHelper
. -
support-media-compat
-
أجزاء من إطار عمل الوسائط،
بما في ذلك
MediaBrowser
وMediaSession
. -
support-fragment
-
تعمل هذه الميزة على إعادة تحميل إطار عمل الأجزاء. تعتمد هذه الوحدة على أنظمة التشغيل
support-compat
وsupport-core-utils
وsupport-core-ui
وsupport-media-compat
.
للتوافق مع الأنظمة القديمة، إذا أدرجت support-v4
في نص Gradle البرمجي، فسيتضمن ملف APK جميع هذه الوحدات. ولتقليل حجم ملف APK، ننصحك بإدراج الوحدات المحددة التي يحتاجها تطبيقك.
تحديثات واجهة برمجة التطبيقات
- ويمكن للعملاء الذين يستخدمون علامات التبويب المخصَّصة
التحكّم في إمكانية فتح التطبيقات الفورية. (ملاحظة: التطبيقات الفورية ليست متوفرة بعد
بشكل عام). لتفعيل التطبيقات الفورية أو إيقافها، يمكنك طلب
CustomTabsIntent.Builder.setInstantAppsEnabled()
أو تحديدEXTRA_ENABLE_INSTANT_APPS
. بشكل تلقائي، سيتم تفعيل "التطبيقات الفورية" في "علامات التبويب المخصّصة" تلقائيًا، عندما تتوفّر هذه الميزة. - تتيح ميزة
TextInputLayout
خيار إمكانية رؤية كلمة المرور من مواصفات التصميم المتعدد الأبعاد. - تعمل حزمة
android.support.transition
الجديدة على نقل إطار عمل عمليات النقل إلى المستوى 14 من واجهة برمجة التطبيقات والمستويات الأعلى. لمزيد من المعلومات، يمكنك الاطّلاع على مرجعandroid.support.transition
. - تتيح مكتبة دعم علامات التبويب المخصَّصة
استخدام
RemoteViews
في شريط الأدوات الثانوي. تم إيقاف طريقةsetToolbarItem()
الحالية نهائيًا. - يضيف
AppCompatResources
إمكانية تحميل<vector>
(على المستوى 9 من واجهة برمجة التطبيقات والمستويات الأعلى) أو<animated-vector>
(على المستوى 11 من واجهة برمجة التطبيقات والمستويات الأعلى) من رقم تعريف مورد، وذلك باستخدام طريقةgetDrawable()
الجديدة. - تتيح
CoordinatorLayout
الآن تحديد طرق عرض الإدخالات، وتحديد أن الملفات الشخصية الأخرى يجب أن تتجنب طرق العرض الداخلية. يسمح هذا الإجراء للتطبيقات بتكرار أنماط سلوك مشابهة للطريقة التي ينتقل بهاFloatingActionButton
بعيدًا عنSnackbar
، ولكن لأي عناصر ثانوية فرعية. لمزيد من المعلومات، اطّلِع على المستندات المرجعية للسمتَينLayoutParams.insetEdge
وLayoutParams.dodgeInsetEdges
. - يمكن لفئة
DiffUtil
الجديدة احتساب الفرق بين مجموعتَين، وإرسال قائمة بعمليات التعديل المناسبة ليتم استخدامها فيRecyclerView.Adapter
. -
تمت إضافة
RecyclerView.OnFlingListener
لدعم السلوك المخصَّص استجابةً للسرعة. توفّر فئةSnapHelper
عملية تنفيذ خاصة بالتقاط طرق العرض الثانوية، وتوسّع فئةLinearSnapHelper
عملية التنفيذ هذه لتوفير سلوك محاذاة من خلال محاذاة إلى الوسط مشابه لسلوكViewPager
. - تسمح مكتبة "علامات التبويب المخصّصة" الآن للعملاء بطلب واجهة المستخدم العادية للمتصفّح، بدلاً من واجهة المستخدم الخاصة بعلامات التبويب المخصّصة، من خلال طلب
CustomTabsIntent.setAlwaysUseBrowserUI()
. ويكون هذا السلوك مفيدًا في الحالات التي يكون فيها الإعداد التلقائي للمتصفّح هو واجهة المستخدم الخاصة بعلامات التبويب المخصّصة، لكن المستخدم أبدى تفضيله لواجهة المستخدم العادية الخاصة بالمتصفّح.
تغييرات السلوك
- إذا كنت تستخدم وظيفة النهار والليل في مكتبة التطبيقات، سيعيد النظام
الآن إنشاء نشاطك تلقائيًا كلما تغيّر الوضع الليلي/النهاري
(إما بسبب الوقت أو بسبب الاتصال بـ
AppCompatDelegate.setLocalNightMode()
). - يظهر
Snackbar
الآن خلف شريط التنقل إذا كان شريط الحالة شبه شفاف.
مكتبة MediaRouter
لم تعد الأجهزة التي تتضمّن بلوتوث مُدرَجة كمسارات للوسائط. يتم الآن التحكّم في توجيه الصوت إلى الأجهزة التي تتضمّن بلوتوث على مستوى نظام Android فقط.
عمليات الإيقاف
تخضع الفئات والطرق المتوقفة نهائيًا للإزالة في إصدار مستقبلي. وعليك نقل البيانات من واجهات برمجة التطبيقات هذه في أقرب وقت ممكن.
- كان مطلوبًا استخدام عدة طرق في الفئات التالية مع واجهة برمجة التطبيقات 8 والإصدارات الأقدم فقط، ويجب عدم استخدامها بعد الآن. بدلاً من ذلك، يمكنك استخدام عمليات تنفيذ إطار العمل.
android.support.v4.view.KeyEventCompat
: استبدال بـKeyEvent
android.support.v4.view.MotionEventCompat
: استخدامMotionEvent
android.support.v4.view.ViewCompat
: استخدامView
android.support.v4.view.ViewConfigurationCompat
: استخدامViewConfiguration
-
تم إيقاف السمة
AccessibilityServiceInfoCompat.getDescription()
نهائيًا لصالح السمةAccessibilityServiceInfoCompat.loadDescription()
التي تعرض وصفًا مترجمًا بشكل صحيح. - يجب عدم إنشاء مثيل للفئة
ActivityCompat
مباشرةً. وسيتم جعل طريقةgetReferrer(Activity)
غير الثابتة ثابتة في إصدار قادم. - تم إيقاف واجهة برمجة التطبيقات
CoordinatorLayout.Behavior.isDirty()
نهائيًا ولم يعُد يتم طلبها من قِبلCoordinatorLayout
. يجب إزالة أي عمليات تنفيذ، بالإضافة إلى أي طلبات موجَّهة إلى هذه الطريقة. - تم إيقاف السمة
MediaSessionCompat.obtain()
نهائيًا واستبدالها بالطريقةfromMediaSession()
التي تحمل الاسم الأنسب. - تم إيقاف السمة
MediaSessionCompat.QueueItem.obtain()
نهائيًا واستبدالها بالطريقةfromQueueItem()
التي تحمل اسمًا أكثر ملاءمة. - وقد تم إيقاف العديد من الفئات المجرّدة واستبدالها بواجهات تعكس بشكل أكبر العناصر المقابلة لإطار العمل الخاص بها.
- تم استبدال
AccessibilityStateChangeListenerCompat
بواجهةAccessibilityManagerCompat.AccessibilityStateChangeListener
. - تم استبدال
OnCloseListenerCompat
بواجهةSearchViewCompat.OnCloseListener
. - تم استبدال
OnQueryTextListenerCompat
بواجهةSearchViewCompat.OnQueryTextListener
.
- تم استبدال
- تم إيقاف واجهة برمجة التطبيقات
CustomTabsSession.setToolbarItem()
نهائيًا واستبدالها بنظام التشغيلsetSecondaryToolbarViews()
المستنِد إلى RemoteViews.
إصلاح الأخطاء
تم إصلاح المشكلات المعروفة التالية باستخدام الإصدار 24.2.0:
- تأكَّد من عرض مؤشر
SwipeRefreshLayout
عند استدعاءsetRefreshing(true)
قبل اجتياز أول عملية قياس (مشكلة AOSP 77712). - منع ظهور وميض
TabLayout
عند تغيير الصفحات (مشكلة AOSP 180454) - تجنَّب استخدام
ClassNotFoundException
عند إلغاء تنظيمSavedState
على المستوى 11 من واجهة برمجة التطبيقات والإصدارات الأقدم (مشكلة AOSP 196430).
تتوفّر قائمة كاملة بإصلاح الأخطاء العامة في أداة تتبُّع المشاكل AOSP.
الإصدار 24.1.1
تموز (يوليو) 2016
المشاكل التي تم إصلاحها:
- إصلاح مشكلة في الإصدار 24.1.0 أثرت في معرّفات الموارد التي تتم مشاركتها بين مكتبات الدعم. تسبّبت هذه المشكلة في مواجهة التطبيقات التي كانت تعتمد على مكتبات الدعم التي تتضمّن موارد (مثل التصميم وappcompat) مشاكل ناتجة عن عدم تطابق معرّفات الموارد.
الإصدار 24.1.0
تموز (يوليو) 2016
- التغييرات في مكتبة دعم الإصدار 4:
-
- يتضمن
NotificationCompat.Action.WearableExtender
طريقتين جديدتينgetHintDisplayActionInline()
وsetHintDisplayActionInline()
للتوافق مع معاينة Android Wear 2.0. تتيح هذه الطرق للتطبيق تحديد إمكانية عرض الإجراء بشكل مضمّن مع الإشعار. - لن يؤدي طلب الرقم
Fragment.setUserVisbileHint()
بعد الآن إلى بدء التقسيم إذا تمت إضافة التلميح إلىFragmentTransaction
لم يتم الالتزام به بعد. يؤثّر هذا الإجراء في مستخدميFragmentPagerAdapter
الذين يلغيونsetUserVisbileHint()
ويفترضون دورة حياة محدّدة للجزء بعد طلب الرمزsuper.setUserVisibleHint()
. لمزيد من المعلومات، اطّلِع على الصفحة المرجعية لمستنداتFragment.setUserVisbileHint()
.
- يتضمن
المشاكل التي تم إصلاحها:
- نتائج TabLayout.setCustomView(null) تظهر في NullPointerException (مشكلة AOSP 214753)
- TabLayout يميّز علامات التبويب المخصَّصة بشكل غير صحيح (مشكلة AOSP 214316)
- تستخدم AppCompatTextHelper مصفوفة سمات تم ترتيبها بشكل غير صحيح (مشكلة AOSP 214366)
- تعذّر الإشارة إلى VectorDrawable من حاوية XML قابلة للرسم عند استخدام ContextWrapper (مشكلة AOSP رقم 214055)
- ViewDragHelper.saveLastMotion() طرح ArrayIndexOutOfBoundsException (مشكلة AOSP 212945)
- يتم توسيع BottomSheetBehavior إلى ارتفاع المحتوى القديم عند استخدام setState(STATE_EXPANDED) (مشكلة AOSP 213660)
- لا تتعامل أداة CollapsingToolbarLayout مع العناصر الثانوية القابلة للتثبيت التي بها هوامش عليا أو سفلية (مشكلة AOSP 213001)
- لا يتوافق عنوان تصفح Leanback مع محاذاة RTL (مشكلة AOSP 213461)
- اختفاء PagerTabStrip بسبب عدم توفّر تعليق توضيحي موروث (مشكلة AOSP 213359)
- يؤدي ربط البيانات إلى طرح NullPointerException عند استخدام القيمة المنطقية لضبط العلامات الشرطية (مشكلة AOSP 191841)
- لا يستجيب CoordinatorLayout إلى setFitsSystemWindows() (مشكلة AOSP 212720)
- تعطُّل BottomSheetBehavior عند إعداد الحالة الأولية (مشكلة AOSP 203114)
- يتخطّى ViewPager الصفحات إذا كان فهرس الصفحات كبيرًا (مشكلة AOSP 211734)
- لا تعمل أداة BottomSheetBehavior مع التنسيقات الديناميكية (مشكلة AOSP 205226).
الإصدار 24.0.0
حزيران (يونيو) 2016
- التغييرات في مكتبة دعم الإصدار 4:
-
- تمت إضافة
Fragment.commitNow()
للالتزام المتزامن. - تمت إضافة
NotificationCompat.MessagingStyle
للمحادثات المتعددة الأطراف - تمت إضافة
NotificationManagerCompat.areNotificationsEnabled()
وgetImportance()
. - يعكس
MediaSessionCompat
الآن وظائفMediaSession
ولم يعُد يستدعيsetMediaButtonReceiver()
تلقائيًا.
ملاحظة: لا يتوافق الإصدار
MediaBrowserServiceCompat
فقط من الإصدار 24.0.0 مع الإصدارات المستقبلية من Android إلا في الإصدار 24 من API 24. إذا كنت تستخدم إصدارات سابقة، يُرجى التحديث إلى هذا الإصدار لضمان التوافق. - تمت إضافة
- التغييرات التي تم إجراؤها على الإصدار 7 من مكتبة التطبيقات:
-
- تمت إضافة إمكانية الإشارة إلى عناصر
ColorStateList
ذات مواضيع معيّنة من ملف XML.
- تمت إضافة إمكانية الإشارة إلى عناصر
- التغييرات في مكتبة دعم التصميم:
-
- تحسينات على معالجة
AppBarLayout
للارتفاع باستخدامStateListAnimator
- تحسينات على معالجة
- تغييرات مكتبة الإصدار 17 من Leanback:
-
- تمت إضافة ميزة "
OnboardingFragment
" لتوفير عملية الترحيب وبدء عملية الإعداد لأول مرة.
- تمت إضافة ميزة "
- التغييرات التي تطرأ على علامات التبويب المخصّصة:
-
- تمت إضافة إمكانية توفير تسلسل
RemoteViews
الهرمي لشريط الأدوات الثانوي. - تمت إضافة السمة
CustomTabsClient.connectAndInitialize()
لإكمال عملية الإعداد من سطر واحد.
- تمت إضافة إمكانية توفير تسلسل
الإصدار 23.4.0
أيار (مايو) 2016
- التغييرات في مكتبة دعم الإصدار 4:
-
- تم إصلاح المشكلة المتمثلة في إضافة الأجزاء بترتيب غير صحيح. (المشكلة 206901)
- تم إصلاح المشكلة المتمثلة في عدم رسم شريط التطبيق بعد الانتقال خارج الشاشة. (المشكلة 178037)
- التغييرات التي تم إجراؤها على الإصدار 7 من مكتبة التطبيقات:
-
- تمت إضافة
طريقة
AppCompatDelegate.setCompatVectorFromResourcesEnabled()
لإعادة تفعيل استخدام المتجهات القابلة للرسم في عناصرDrawableContainer
على الأجهزة التي تعمل بنظام التشغيل Android 4.4 (مستوى واجهة برمجة التطبيقات 19) والإصدارات الأقدم. لمزيد من المعلومات، يمكنك الاطّلاع على الإصدار 23.2 من AppCompat — عمر المتّجهات. - تم إصلاح مشكلة في واجهة برمجة التطبيقات 23 تتعلّق بعدم تحميل
AppCompatDelegate.setDefaultNightMode()
للموارد الصحيحة في المستوى 23 من واجهة برمجة التطبيقات. (المشكلة 206573) - تم إصلاح المشكلة التي قد تؤدي إلى
NullPointerException
. (المشكلة 207638)
- تمت إضافة
طريقة
- التغييرات في مكتبة دعم التصميم:
-
- تم إصلاح المشكلة المتمثلة في عدم قيام
TextInputLayout
بمحو لون الخطأ بعدsetErrorEnabled(false)
على المستوى 21 إلى 22 من واجهة برمجة التطبيقات (المشكلة 202829) - تم إصلاح المشكلة المتمثلة في عدم عرض
FloatingActionButton
عند إيقاف الصور المتحركة. (المشكلة 206416) - تم إصلاح مشكلة في وظائف الانطباق
AppBarLayout
عند استخدامها مع علامات الانتقال في
. (المشكلة 207398)scroll
|enterAlways
|enterAlwaysCollapsed
|snap
- تم إصلاح المشكلة المتمثلة في عدم قيام
- التغييرات في مكتبة Vector Drawable:
-
- تم إصلاح الخطأ المتمثل في عدم عرض
VectorDrawableCompat
بشكل صحيح فيTextView
على المستوى 23 من واجهة برمجة التطبيقات. (المشكلة 206227)
- تم إصلاح الخطأ المتمثل في عدم عرض
الإصدار 23.3.0
نيسان (أبريل) 2016
- التغييرات في مكتبة دعم الإصدار 4:
-
- تمت إضافة
AppLaunchChecker
للمساعدة في تتبُّع كيفية تشغيل المستخدم لتطبيقك في السابق. تتيح لك ميزةhasStartedFromLauncher()
معرفة ما إذا كان المستخدم قد شغّل تطبيقك من الشاشة الرئيسية من قبل، أو ما إذا كان قد بدأ تشغيله فقط بوسائل أخرى (على سبيل المثال، لعرض عناوين URL محدّدة على الويب). - تم إصلاح تسرّب الذاكرة في
MediaBrowserServiceCompat.mConnections
. (المشكلة 205220) - تم إصلاح مشكلة لا تأخذ
ViewPager
في الاعتبار هوامش الصفحة عند قلب الصفحة. (المشكلة 203816) - يتم تسليم
Fragment.onRequestPermissionsResult()
الآن إلى الأجزاء الفرعية.
- تمت إضافة
- التغييرات التي تم إجراؤها على الإصدار 7 من مكتبة التطبيقات:
-
- تم إصلاح مشكلة في
AppCompatSpinner
قد تتسبّب في ظهور عدة نوافذ منبثقة. (المشكلة 205052) - تم إصلاح مشكلة متعلّقة بتلوين الأزرار بلا حدود. (المشكلة 202967)
- تم إصلاح مشكلة التوافق بين
AppCompatDialogFragment
وAlertDialog
. (المشكلة 204805) - تم التراجع عن التغييرات إلى
TintResources
التي كانت تسبب مشاكل في الذاكرة والضبط. (المشكلة 205236)
- تم إصلاح مشكلة في
- تغييرات الإصدار 7 من مكتبة Mediarouter:
-
- تم إصلاح سلوك شريط تمرير مستوى الصوت
MediaRouteControllerDialog
. (المشكلة 202299)
- تم إصلاح سلوك شريط تمرير مستوى الصوت
- تغييرات في مكتبة الإصدار 7 من الإعدادات المفضّلة:
-
- تم إصلاح المشكلة المتمثلة في تعطل
PreferenceFragmentCompat
في حالة تحديدdividerHeight
. (المشكلة 204778)
- تم إصلاح المشكلة المتمثلة في تعطل
- تغييرات الإصدار 7 من مكتبة recyclerview:
-
- تم إصلاح خطأ لا يستدعي
RecyclerView
استدعاءات التمرير في حال تقليص نطاق العناصر المرئية. (المشكلة 200987) - تم إصلاح الخطأ المتمثل في تجميد
RecyclerView
إذا كان بتنسيق خطي، وتم ترجيحه، واحتواءه على صور. (المشكلة 203276) - تم إصلاح عطل في
OrientationHelper.getStartAfterPadding()
. (المشكلة 180521) - تم إصلاح عطل يحدث في استخدام
android:nestedScrollingEnabled
. (المشكلة 197932)
- تم إصلاح خطأ لا يستدعي
- التغييرات في مكتبة دعم التصميم:
-
- تم إصلاح الخطأ الذي كانت فيه البطاقة السفلية مخفية تعالج أحداث اللمس. (المشكلة 203654)
- تم إصلاح مشكلة تنسيق في
BottomSheetBehavior
عندما تكون قيمةfitsSystemWindows
صحيحة. (المشكلة 203057) - تم إصلاح مشكلة إمكانية الوصول في
Snackbar
. (المشكلة 182145) - تم إصلاح عطل عند التمرير السريع بنسبة
Snackbar
. (المشكلة 203924) - تم إصلاح خطأ في
AppBarLayout
فيenterAlways
. (المشكلة 203661) - تم إصلاح الخطأ المتمثل في محو
TextInputLayout
لفلتر لون خلفية العنصرEditText
بدون داعٍ. (المشكلة 203357)
الإصدار 23.2.1
آذار (مارس) 2016
- التغييرات في مكتبة دعم الإصدار 4:
-
- تم إصلاح استثناء في
DrawableCompat.wrap()
وLayerDrawable
على مستويات واجهة برمجة التطبيقات من 17 إلى 19. (الإصدار 201817) - تم إصلاح
ArrayIndexOutOfBoundsException
فيViewDragHelper.shouldInterceptTouchEvent()
. (المشكلة 182262) - تم إصلاح خطأ في
ViewPager
يتعلق بحساب عمليات التمرير لتغييرات الحجم. - تم إصلاح
NullPointerException
عند استدعاءDrawerLayout.removeDrawerListener()
بدون مجموعةDrawerLayout.DrawerListener
. (المشكلة 202478) - تم إصلاح الخطأ المتمثل في عدم ضبط
ViewPager
لمعلماتAccessibilityEvent
بشكل صحيح عند التمرير. - تم إصلاح مشكلة تسببت في حدوث تأخير أثناء تدوير الجهاز عند استخدام
Drawable.wrap()
. (الإصدار 201924)
- تم إصلاح استثناء في
- التغييرات التي تم إجراؤها على الإصدار 7 من مكتبة التطبيقات:
-
- تم إلغاء الاعتمادية على مواد عرض المتجهات حتى لا يضطر المطوّرون الذين يستخدمون مكتبة
appcompat إلى استخدام
VectorDrawable
وعلامات الإصدار المرتبطة بها. - تم إصلاح مشكلة التوافق مع "الوضع الليلي" والمستوى 23 من واجهة برمجة التطبيقات. (الإصدار 201910)
- تم إصلاح مشكلة التوافق مع
SwitchCompat
والمستوى 7 من واجهة برمجة التطبيقات. (الإصدار 201942) - تم إصلاح مشكلة متعلقة بنشر قيم الإعداد في كائنات الموارد. المشكلة 201928
- تم إصلاح مشكلة التوافق حيث يصبح زر الإلغاء
android.support.v7.app.NotificationCompat.MediaStyle
غير مرئي على المستوى 21 من واجهة برمجة التطبيقات والمستويات الأدنى. (المشكلة 202156) - تم إصلاح عطل في التوافق مع
AppCompatSpinner
على المستوى 21 من واجهة برمجة التطبيقات والإصدارات الأقدم. (المشكلة 202246) - تم إصلاح المشكلة المتمثلة في عدم عمل نمط
app:textAllCaps = "false"
. (المشكلة 202117) - تم إصلاح عطل كان يحدث عند استعادة
SearchView
. (المشكلة 201836) - تم إصلاح تسرّب الذاكرة الذي يحدث عند تلوين الموارد القابلة للرسم باستخدام AppCompat. (المشكلة 202379)
- تم إصلاح مشكلة
KeyEvent
على المستوى 11 من واجهة برمجة التطبيقات والإصدارات الأقدم. (المشكلة 202939)
- تم إلغاء الاعتمادية على مواد عرض المتجهات حتى لا يضطر المطوّرون الذين يستخدمون مكتبة
appcompat إلى استخدام
- تغييرات مكتبة الإصدار 7 من Cardview:
-
- تمت إضافة دعم "الوضع الليلي" لـ "
CardView
". (المشكلة 194497)
- تمت إضافة دعم "الوضع الليلي" لـ "
- تغييرات الإصدار 7 من مكتبة recyclerview:
-
- تم إصلاح الأخطاء المتعلقة بالطرق المختلفة لمواصفات القياس. (المشكلة 201856)
- تم خفض فترة الإغلاق التي لا يسمح فيها
RecyclerView
بتغيير المحوِّل أثناء احتساب التنسيق أو الانتقال في الصفحة. (الإصدار 202046) - تم إصلاح عطل كان عند استدعاء
notifyItemChanged()
على عنصر خارج العرض. (المشكلة 202136) - إصلاح عطل يحدث عندما يضيف أو يزيل
RecyclerView.LayoutManager
ملفًا شخصيًا في بطاقة القياس نفسها. (المشكلة 193958)
- تغييرات الإصدار 7 من مكتبة Mediarouter:
-
- تم إصلاح عطل يحدث عند استدعاء
MediaRouter.getInstance()
على المستوى 17 من واجهة برمجة التطبيقات. (المشكلة 180654)
- تم إصلاح عطل يحدث عند استدعاء
- تغييرات الإصدار 17 من Leanback Library:
-
- تم حل مشكلة في
GridLayout.onAddFocusables()
أدّت إلى اختيار العنصر غير الصحيح. - تم إصلاح المشكلة المتمثلة في اختفاء إجراءات
GuidedStepFragment
بعد تصغير الإجراء.
- تم حل مشكلة في
- التغييرات في مكتبة دعم التصميم:
-
- تم إصلاح عطل في
TabLayout
ناتج عن ميزة "تجميع علامات التبويب". (المشكلة 201827) - تم إصلاح خطأ في
NavigationView
تسبَّب في اختيار اللون الخاطئ. (الإصدار 201951) - تم إصلاح الخطأ المتمثل في عدم تمكّن
setBackgroundTintList()
من تغيير لون الخلفية بعد ذلك. (المشكلة 201873) - تم إصلاح المشكلة المتمثلة في عدم انتقال
AppBarLayout
خارج إطار العرض تمامًا عند استخدامه معandroid:fitsSystemWindows = “true”
. (الإصدار 201822) - تم إصلاح المشكلة المتمثلة في عدم عرض
BottomSheetDialog
لمشاهدات المحتوى القصير بشكل صحيح. (المشكلة 201793) - تم إصلاح المشكلة المتمثلة في نقل
BottomSheetDialogFragment
بشكل متقطع عند تغيير المحتوى بالداخل. (المشكلة 202125) - تم إصلاح عطل في رابط عدّاد TextInputLayout
- تم إصلاح العطل الذي حدث عند استعادة الحالة المحفوظة لتطبيق "
TextInputLayout.getCounterMaxLength()
". (المشكلة 202375) - تم إصلاح مشكلة
ClassCastException
حدثت عند استعادةCoordinatorLayout
باستخدام الحالة المحفوظة لعرض لم يكنCoordinatorLayout
.
- تم إصلاح عطل في
- تغييرات VectorDrawableCompat:
-
- تم إصلاح الخطأ المتمثل في قراءة المتغير الخطأ في
android:tintMode
. (الإصدار 201907)
- تم إصلاح الخطأ المتمثل في قراءة المتغير الخطأ في
الإصدار 23.2.0
شباط (فبراير) 2016
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- تمت إضافة
MediaBrowserCompat
لدعمMediaBrowser
وMediaBrowserServiceCompat
لدعمMediaBrowserService
. ويكون ذلك مفيدًا عند ربط خدمة الخلفية لتطبيق وسائط بمكوّنات واجهة المستخدم والدمج مع Android Auto وAndroid Wear بدون الحاجة إلى المستوى 21 من واجهة برمجة التطبيقات أو مستوى أعلى. - يطلب النظام الآن السمة
onActivityResult()
لسمةFragmentActivity
مدمجة.
- تمت إضافة
- تغييرات الإصدار 7 من مكتبة AppCompat:
-
- تمت إضافة وظيفة "الوضع الليلي" إلى المستوى 14 من واجهة برمجة التطبيقات والإصدارات الأحدث. يمكنك التبديل بين المظهرَين Material Light وMaterial Dark بناءً على الوقت أو الإعداد الخاص بالتطبيق.
-
- يمكن العثور على المظاهر ليلاً ونهارًا هنا:
<sdk>/extras/android/support/v7/appcompat/res/values/themes_daynight.xml
. AppCompatDelegate.setDefaultNightMode()
: لضبط الوضع التلقائي للتطبيق من خلال تمرير أحد الثوابت التالية:-
MODE_NIGHT_AUTO
MODE_NIGHT_NO
MODE_NIGHT_YES
MODE_NIGHT_FOLLOW_SYSTEM
AppCompatDelegate.setLocalNightMode()
: لإلغاء إعداد الوضع الليلي لمكوِّن التطبيق المحلي.AppCompatDelegate.getDefaultNightMode()
: لعرض الوضع الليلي التلقائي.
- يمكن العثور على المظاهر ليلاً ونهارًا هنا:
- تغييرات مكتبة Mediarouter v7:
-
- يطبِّق
MediaRouteControllerDialog
الآن ألوان مظاهر التطبيق المخصَّصة بشكل صحيح.
- يطبِّق
- التغييرات التي تم إجراؤها على مكتبة دعم التصميم:
-
- تمت إضافة دعم أوراق البيانات السفلية. يتيح المكوِّن الإضافي للتفاعل،
BottomSheetBehavior
، عرضًا ثانويًا لـCoordinatorLayout
ليكون بمثابة بطاقة سفلية. توفّر الفئة الأساسيةBottomSheetCallback
طلبات استدعاء لمراقبة أحداث البطاقة السفلية.
- تمت إضافة دعم أوراق البيانات السفلية. يتيح المكوِّن الإضافي للتفاعل،
- التغييرات في مكتبة دعم علامات التبويب المخصّصة:
-
- تسمح علامات التبويب المخصّصة في Chrome الآن للتطبيقات بتضمين شريط سفلي مع أزرار إجراءات بالإضافة إلى زر الإجراء العلوي الحالي.
CustomTabsIntent.Builder.addToolBarItem()
: يضيف زر إجراء إلى علامة تبويب مخصّصة. يمكنك استخدام هذا لإضافة أزرار متعددة.CustomTabsSession.setToolBarItem()
: لتحديث العناصر المرئية لعناصر شريط الأدوات. لن تنجح هذه الطريقة إلا إذا تم منحها معرّف صالح وكانت جلسة المتصفّح في المقدّمة.
- تمت إضافة مكتبة دعم VectorDrawable:
-
- الصفوف المُضافة:
-
VectorDrawableCompat
AnimatedVectorDrawableCompat
- يضيف هذا الخيار مواد عرض
VectorDrawable
إلى التطبيقات التي تعمل على المستوى 7 من واجهة برمجة التطبيقات أو مستوى أعلى. تتوفّرAnimatedVectorDrawable
مواد عرض أيضًا على المستوى 11 من واجهة برمجة التطبيقات أو مستوى أعلى. يمكن أن تكون مواد عرض المتجه أصغر بكثير من مواد عرض الصور، ويجب أن تساعد في تقليل حجم التطبيق عن طريق تقليل مقدار مواد العرض المطلوبة للتوافق مع شاشات متعددة للأجهزة. - أصبحت هذه المكتبة الآن تابعة لمكتبة AppCompat للإصدار 7، ما يتيح للمطوّرين وAppCompat
استخدام أشكال المتّجهات القابلة للرسم بسهولة. لاستخدام
VectorDrawableCompat
ضمنImageButton
أوImageView
، استخدِم السمةapp:srcCompat
XML أو طريقةsetImageResource()
. - للاستمرار في الإشارة إلى معرّفات السمات على المستوى 20 لواجهة برمجة التطبيقات أو مستوى أدنى، أضِف علامة
appt
التالية إلى ملفbuild,gradle
: -
- إذا كنت بصدد إنشاء مكوّن Android Plugin for Gradle 1.5.0 أو الإصدارات الأقدم، أضِف ما يلي إلى ملف
build.gradle
: -
android { defaultConfig { // Stops the Gradle’s automatic rasterization of vectors generatedDensities = [] } // Flag that tells aapt to keep the attribute ids aaptOptions { additionalParameters "--no-version-vectors" } }
- إذا كنت بصدد إنشاء مكوّن Android الإضافي لبرنامج Gradle 2.0.0 أو الإصدارات الأحدث، أضِف ما يلي إلى ملف
build.gradle
: -
android { defaultConfig { vectorDrawables.useSupportLibrary = true } }
- إذا كنت بصدد إنشاء مكوّن Android Plugin for Gradle 1.5.0 أو الإصدارات الأقدم، أضِف ما يلي إلى ملف
- تغييرات مكتبة الإصدار 17 من Leanback:
-
- تمت إضافة إمكانات جديدة إلى
GuidedStepFragment
، وهو مكوّن يرشد المستخدمين خلال قرار أو سلسلة من القرارات: -
- تمت إضافة إجراءات الزر إلى
GuidedAction
: GuidedStepFragment.setButtonActions()
: يحدّد قائمة بأزرارGuidedAction
التي قد يختارها المستخدم من طريقة عرض "الإجراءات".- حقول الوصف قابلة للتعديل الآن:
-
GuidedAction.Builder.descriptionEditable()
: عند تمريرtrue
، يتم ضبط وصف الإجراء ليكون قابلاً للتعديل.GuidedAction.getEditDescription()
: لعرض الوصف القابل للتعديل على أنّهCharSequence
.
- تمت إضافة قوائم منسدلة للإجراءات الفرعية:
-
GuidedAction.setSubActions()
: لتعيين قائمةGuidedAction
كقائمة منسدلة بالإجراءات الفرعية.
- تمت إضافة إجراءات الزر إلى
- تمت إضافة التطبيق المصغّر
GuidedDatePickerAction
لوظائفDatePicker
: -
- يتم اختيار التاريخ باستخدام أعمدة السنة والشهر واليوم، ويكون له نطاق قابل للتخصيص.
GuidedDatePickerAction.Builder
: فئة أداة الإنشاء للعنصرGuidedDatePickerAction
GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat)
: يمكنك ضبط تنسيق التاريخ المطلوب من خلال تمريرString
الملائم المكوّن من ثلاثة أحرف، مثل“YMD”
أو“MDY”
. يمكنك أيضًا استخدام السمةdatePickerFormat
XML.
- تمت إضافة إمكانات جديدة إلى
- تغييرات مكتبة الإصدار 7 من RecyclerView:
-
- يتضمّن
RecyclerView
الآن ميزة الموافقة المسماة القياس التلقائي والتي تسمح لـRecyclerView.LayoutManager
بلف المحتوى بسهولة أو التعامل مع مواصفات القياس المختلفة التي يوفّرها العنصر الرئيسيRecyclerView
. ويتيح هذا الإجراء جميع إمكانات الصور المتحركة الحالية فيRecyclerView
. -
- إذا كانت لديك واجهة برمجة تطبيقات
RecyclerView.LayoutManager
مخصّصة، يمكنك استدعاءsetAutoMeasureEnabled(true)
لبدء استخدام واجهة برمجة التطبيقات Automeasure API الجديدة. إنّ جميع كائناتRecyclerView.LayoutManager
المدمجة تتيح ميزة القياس التلقائي بشكل تلقائي. - لم يعُد
RecyclerView.LayoutManager
يتجاهل بعض إعداداتRecyclerView.LayoutParams
، مثلMATCH_PARENT
في اتجاه التمرير.ملاحظة: قد تؤدي هذه القيود التي تم رفعها إلى حدوث سلوك غير متوقَّع في تنسيقاتك. احرص على تحديد معلمات التنسيق الصحيحة.
- إذا كانت لديك واجهة برمجة تطبيقات
- عند تعديل
RecyclerView.ViewHolder
بمعلومات حمولة البيانات، يوقفDefaultItemAnimator
الآن تغيير الصور المتحركة. - يمكنك الآن تعديل سرعة الإفلات في
ItemTouchHelper
للتحكّم في حساسية التمرير السريع. لتسهيل التمرير السريع أو جعله أصعب، يمكنك إلغاءgetSwipeEscapeVelocity(float defaultValue)
وتعديلdefaultValue
.
- يتضمّن
الإصدار 23.1.1
تشرين الثاني (نوفمبر) 2015
- تغييرات الإصدار 7 من مكتبة recyclerview:
-
- تم إصلاح عطل يحدث عند تنفيذ إجراء "التمرير السريع للإغلاق" الذي توفِّره
فئة الأداة المساعدة
ItemTouchHelper
، ثم إضافة عنصر. (المشكلة 190500)
- تم إصلاح عطل يحدث عند تنفيذ إجراء "التمرير السريع للإغلاق" الذي توفِّره
فئة الأداة المساعدة
- تغييرات تم إجراؤها على مكتبة الإعدادات المفضّلة للإصدار 7:
-
- تم إصلاح مشكلة في استخدام ProGuard. (المشكلة 183261)
- تغييرات في مكتبة دعم الإصدار 17 من Leanback:
-
- تم إصلاح عدد من المشاكل الداخلية في هذه المكتبة.
- تغييرات في مكتبة دعم التصميم:
-
- تمت إضافة طريقة
getHeaderView
إلى الصفNavigationView
. - تم إصلاح مشكلة شفافة في الخلفية لعنصر
FloatingActionButton
على الأجهزة التي تعمل بنظام التشغيل Android 4.0 (المستوى 15 من واجهة برمجة التطبيقات) والإصدارات الأقدم. (المشكلة 183315)
- تمت إضافة طريقة
الإصدار 23.1.0
تشرين الأول (أكتوبر) 2015
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- تمت إضافة إمكانية استخدام واجهة
OnScrollChangedListener
إلى التطبيق المصغّرNestedScrollView
. يتيح لك هذا الخيار تلقّي استدعاءات عند تغيير موضعَي التمرير "س" أو "ص". - تمت إضافة صف
MediaButtonReceiver
لإعادة توجيه عناصر التحكّم في التشغيل المُستلَمة إلى خدمة تدير الفئةMediaSessionCompat
. وتحتوي الفئةMediaSessionCompat
على دالة إنشاء يمكنها العثور تلقائيًا على أداة استقبال زر الوسائط في البيان. ويشكّل جهاز استقبال أزرار الوسائط جزءًا أساسيًا من عملية التعامل مع عناصر التحكّم في التشغيل من الأجهزة أو عناصر التحكّم التي تعمل بالبلوتوث.
- تمت إضافة إمكانية استخدام واجهة
- التغييرات التي تم إجراؤها على الإصدار 7 من مكتبة التطبيقات:
-
- تمت إضافة التصميم المتعدد الأبعاد
Seekbar
وImageButton
تطبيق مصغّر. - تم تعديل التطبيق المصغّر "
ImageView
" لإتاحة ميزة درجات الألوان. - تم تعديل مظهر تطبيق
SwitchCompat
المصغّر وأسلوبه.
- تمت إضافة التصميم المتعدد الأبعاد
- تغييرات الإصدار 7 من مكتبة Mediarouter:
-
- تمت إضافة الميزات التالية إلى الصف "
MediaRouteChooserDialog
": - عرض صفحة تحميل أثناء اكتشاف مقدمي مسارات الوسائط.
- يتضمن رمز نوع الجهاز لتحديده بسهولة.
- يرتب المسارات وفقًا لمعدل الاستخدام في التطبيق الحالي.
- إتاحة الوضع الأفقي
- تمت إضافة الميزات التالية إلى الصف "
MediaRouteControllerDialog
": - يتعرّف على بث الشاشة ويقدّم وصفًا مناسبًا.
- كما يتيح استخدام أحجام مختلفة لصورة الألبوم ونِسب عرض إلى ارتفاعها، كما يتيح تحميل الصورة بشكل غير متزامن.
- يتم اختيار لون المحتوى تلقائيًا استنادًا إلى اللون الأساسي للتطبيق.
- يضبط تنسيق مربّع الحوار استنادًا إلى مساحة الشاشة المتاحة على الجهاز.
- إتاحة الوضع الأفقي
- تمت إضافة الميزات التالية إلى الصف "
- التغييرات التي تم إجراؤها على مكتبة لوحات الإصدار 7:
-
- تمت إضافة الطريقة
setRegion()
لإتاحة استخراج اللون من منطقة محدّدة من عنصرBitmap
.
- تمت إضافة الطريقة
- تغييرات الإصدار 7 من مكتبة recyclerview:
-
- تمت إضافة واجهة برمجة تطبيقات محسّنة للصور المتحركة إلى الصف
ItemAnimator
للحصول على خيارات تخصيص أفضل: - إنّ تغيير الصور المتحركة لم يعُد يفرض نسختين من العنصر
ViewHolder
، ما يؤدي إلى تفعيل الصور المتحركة لمحتوى العنصر. بالإضافة إلى ذلك، يحدّد الكائنItemAnimator
ما إذا كان يريد إعادة استخدام كائنViewHolder
نفسه أو إنشاء كائن جديد. - تتيح واجهة برمجة التطبيقات الجديدة لسجلّ المعلومات للفئة
ItemAnimator
المرونة في جمع البيانات عند المرحلة الصحيحة من مراحل نشاط التصميم. ويتم نقل هذه المعلومات لاحقًا إلى عمليات معاودة الاتصال المتحركة.
- توفير خطة انتقال سهلة لهذا التغيير غير المتوافق مع الأنظمة القديمة في واجهة برمجة التطبيقات:
- إذا سبق لك تمديد الصف
ItemAnimator
، يمكنك تغيير الفئة الأساسية إلىSimpleItemAnimator
ويجب أن يعمل الرمز على النحو المعتاد. توفّر الفئةSimpleItemAnimator
واجهة برمجة التطبيقات القديمة من خلال إضافة إغلاق واجهة برمجة التطبيقات الجديدة. - تمت إزالة بعض الطرق من الفئة
ItemAnimator
. ولن يتم تجميع الرمز التالي:
Kotlin
recyclerView.itemAnimator.supportsChangeAnimations = false
Java
recyclerView.getItemAnimator().setSupportsChangeAnimations(false)
يمكنك استبداله بـ:
Kotlin
val animator: SimpleItemAnimator? = recyclerView.itemAnimator as? SimpleItemAnimator animator?.supportsChangeAnimations = false
Java
ItemAnimator animator = recyclerView.getItemAnimator(); if (animator instanceof SimpleItemAnimator) { ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false); }
- تمت إضافة واجهة برمجة تطبيقات محسّنة للصور المتحركة إلى الصف
- التغييرات التي تم إجراؤها على مكتبة تفضيل v7 وv14 وv17:
-
- تمت إزالة واجهات برمجة التطبيقات للتحكّم في مربّعات حوار
EditText
.
- تمت إزالة واجهات برمجة التطبيقات للتحكّم في مربّعات حوار
- تغييرات في مكتبة دعم الإصدار 17 من Leanback:
-
- تمت إضافة نسخة من فئة
GuidedStepFragment
لمكتبة الدعم (مع امتدادandroid.support.v4.app.Fragment
)، بالإضافة إلى صور متحركة وانتقالات محسَّنة. - تم تعديل الصف
GuidedStepFragment
بحيث يمكن وضعه فوق المحتوى الحالي. - تمت إضافة إمكانية إضافة تعليقات توضيحية إلى أنواع مختلفة من عمليات البحث المكتملة إلى الصف
SearchFragment
. - تمت إضافة إمكانية النقل المتدرّج للشرائح إلى الصف
VerticalGridFragment
.
- تمت إضافة نسخة من فئة
- تغييرات في مكتبة دعم التصميم:
-
- تمت إضافة إمكانية
عدد الأحرف إلى التطبيق المصغّر
TextInputLayout
. - تمت إضافة دعم محاذاة الحواف إلى الفئة
AppBarLayout
من خلال إضافة الثابتSCROLL_FLAG_SNAP
. عند انتهاء التمرير، إذا كان العرض مرئيًا جزئيًا فقط، يتم تصغير العرض وتمريره إلى أقرب حافة له. - تمت إتاحة طرق العرض المخصّصة للفئة
NavigationView
باستخدام السمةapp:actionLayout
أو الطريقةMenuItemCompat.setActionView()
.
- تمت إضافة إمكانية
عدد الأحرف إلى التطبيق المصغّر
- تغييرات في مكتبة دعم علامات التبويب المخصَّصة:
-
- تمت إضافة طريقة
enableUrlBarHiding()
إلى الصفCustomTabsIntent
. فهو يتيح للعميل تخصيص ما إذا كان يجب إخفاء شريط عنوان URL تلقائيًا عند الانتقال للأسفل. - تمت إضافة طريقة
setActionButton()
إلى الصفCustomTabsSession
. ويسمح ذلك للعميل بتغيير رمز زر إجراء مخصّص في علامة تبويب مخصّصة سبق أن تم إطلاقها. - تمت إضافة الثوابت
TAB_SHOWN
وTAB_HIDDEN
كأحداث جديدة لطريقةonNavigationEvent
من الفئةCustomTabsCallback
.
- تمت إضافة طريقة
الإصدار 23.0.1
أيلول (سبتمبر) 2015
- التغييرات التي تم إجراؤها على مكتبة الإصدار 7 ومكتبة التفضيلات v14:
-
- تمت إضافة تخطيط التصميم متعدد الأبعاد وملفات النمط. (المشكلة 183376)
- التغييرات التي تم إجراؤها على الإصدار 7 من مكتبة التطبيقات:
-
- تم إصلاح مشاكل الأعطال للفئة
Fragment
من خلال حصر استخدام طبقات الأجهزة على الإصدار Android 4.1 (المستوى 16 لواجهة برمجة التطبيقات) والإصدارات الأحدث. (المشكلة 183896) - تم إصلاح المشكلة المتمثلة في عدم عمل أزرار الأجهزة عندما ضبط أحد الأنشطة فئة
Toolbar
لتكون بمثابةActionBar
باستخدام طريقةsetSupportActionBar()
. (المشكلة 183334) - تم تعديل الفئة
AppCompatDialogFragment
لكي لا تعرض الخطأWindows feature must be requested before adding content
بعد الآن. (المشكلة 183186)
- تم إصلاح مشاكل الأعطال للفئة
- تغييرات في مكتبة دعم التصميم:
-
- تم إصلاح فئة
AppBarLayout
بحيث يتم رسمها الآن بشكلٍ صحيح بعد التناوب. (المشكلة 183109) - تم إصلاح
فئة
TabLayout
لكي تعمل الآن بشكل صحيح عندما ينقر المستخدم بعد التمرير السريع. (المشكلة 183123)
- تم إصلاح فئة
- تغييرات في مكتبة دعم علامات التبويب المخصَّصة:
-
- تم خفض قيمة
minSdkVersion
من 16 إلى 15 للتوافق مع الإصدار. - تمت إضافة طريقة لإنشاء
CustomTabsSessionToken
من هدف.
- تم خفض قيمة
النسخة رقم 23
أغسطس 2015
- تمت إضافة مكتبات دعم جديدة:
للحصول على قائمة كاملة بالتغييرات في "مكتبة الدعم"، يمكنك الاطّلاع على تقرير الاختلافات في واجهة برمجة تطبيقات مكتبة الدعم.
الإصدار 22.2.1
تموز (يوليو) 2015
- تغييرات في مكتبة دعم التصميم:
-
- تمت إضافة الطريقتَين
hide()
وshow()
إلى الفئةFloatingActionButton
للتشغيل الآلي للصور المتحركة. - تمت إضافة الثابت
LENGTH_INDEFINITE
إلى الفئةSnackbar
لعرض شريط للوجبات الخفيفة إلى أن يتم إغلاقه أو حتى يتم عرض شريط نصي آخر. وتمت أيضًا إضافة الطريقتَينsetActionTextColor(int)
وsetActionTextColor(ColorStateList)
. - تمت إضافة الطريقة
getSelectedTabPosition()
إلى الصفTabLayout
لاسترداد علامة التبويب المحدّدة حاليًا. - تم توفير واجهة برمجة تطبيقات كاملة اللغة
للفئة
android.support.v7.app.NotificationCompat.MediaStyle
لتسلسل الطرق. - تمت إضافة طرق ملائمة إلى
RecyclerView
لإدراج العناصر بشكل مجمّع.
- تمت إضافة الطريقتَين
للحصول على قائمة كاملة بالتغييرات في "مكتبة الدعم"، يمكنك الاطّلاع على تقرير الاختلافات في واجهة برمجة تطبيقات مكتبة الدعم.
الإصدار 22.2.0
أيار (مايو) 2015
- تمت إضافة مكتبة دعم التصميم:
-
- تمت إضافة السمة
TextInputLayout
لعرض نص التلميحEditText
والخطأ كتصنيفات عائمة. - تمت إضافة
FloatingActionButton
لتنفيذ إجراء أساسي على واجهتك كزر إجراء عائم، يتوافق مع الحجم التلقائي أو المصغّر. - تمت إضافة
Snackbar
لتقديم ملاحظات بسيطة مع إجراء اختياري في شريط وجبات خفيفة متحرك. - تمت إضافة ميزة
TabLayout
لتنفيذ علامات تبويب ثابتة وقابلة للتمرير، بالإضافة إلى إمكانية الدمج السهلة معViewPager
. - تمت إضافة ميزة
NavigationView
لتنفيذ محتوى درج التنقّل، بما في ذلك إمكانية تضخيم عناصر القائمة عبر مورد قائمة. - تمت إضافة
CoordinatorLayout
، وهو تنسيق للأغراض العامة، يُستخدم لإنشاء تبعيات بين طرق العرض التابعة والسماح بتفاعلات التمرير السهل بين المكونات عبرCoordinatorLayout.Behavior
. ويعتمد العديد من مكوّنات مكتبة التصميم على عناصر فرعية للسمةCoordinatorLayout
. - تمت إضافة
AppBarLayout
، وهي حاوية لـToolbar
وطرق عرض أخرى (مثلTabLayout
) للتفاعل مع تمرير الأحداث من خلال التمرير خارج الشاشة، أو الظهور ضمن التفاعل مع تمرير للأسفل، أو إمكانية تصغير/إلغاء تصغير قبل التمرير خارج/على الشاشة. - تمت إضافة
CollapsingToolbarLayout
للتحكم في كيفية تصغيرToolbar
. يمكن أن يتم تصغير شريط الأدوات من خلال: تثبيت المكونات في أعلى الشاشة أثناء تصغيرها، أو تقديم التمرير المحوري للمكوّنات، مثلImageView
، أو إضافة لون شريط لاصق المحتوى عند تصغير العرض جزئيًا.
- تمت إضافة السمة
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- تمت إضافة حقلي الإجراءين
getContentChangeTypes()
وsetContentChangeTypes()
ونوع التغيير ذي الصلة إلى الفئةAccessibilityEventCompat
للتعامل مع الأحداث المتعلقة بتسهيل الاستخدام. - تمت إضافة طرق
getActiveQueueItemId()
وgetCustomActions()
وgetExtras()
مع حقول الحالة ذات الصلة إلى الفئةPlaybackStateCompat
للحصول على إجراءات مخصّصة من قائمة الانتظار. - تمت إضافة الطُرق
addCustomAction()
وsetActiveQueueItemId()
وsetExtras()
إلى الفئةPlaybackStateCompat.Builder
لإضافة إجراءات مخصّصة إلى حالة التشغيل. - تمت إضافة طريقتَي
fromCustomAction()
وgetCustomAction()
إلى الفئةPlaybackStateCompat.CustomAction
للحصول على إجراءات مخصّصة من قائمة الانتظار. - تمت إضافة طرق
isAttachedToWindow()
وoffsetLeftAndRight()
وoffsetTopAndBottom()
إلى الفئةViewCompat
للتعامل مع المشاهدات. - تمت إضافة الطُرق
addOnPageChangeListener()
وclearOnPageChangeListeners()
وremoveOnPageChangeListener()
إلى الفئةViewPager
للاستجابة للتغييرات التي تطرأ على الصفحة.تم إيقاف طريقة
ViewPager.setOnPageChangeListener()
. - تمت إضافة الطريقة
notifySubtreeAccessibilityStateChanged()
إلى الفئةViewParentCompat
لإبلاغ العنصر الرئيسي للعرض بأنّ حالة إمكانية الوصول لأحد العناصر التابعة قد تم تغييرها. - تمت إضافة الطرق
translationZ()
وtranslationZBy()
وz()
وzBy()
إلى الفئةViewPropertyAnimatorCompat
لإضافة الصور المتحركة.
- تمت إضافة حقلي الإجراءين
- تغييرات الإصدار 7 من مكتبة التطبيقات:
-
- تمت إضافة طريقة
onWindowStartingSupportActionMode()
إلى الفئاتAppCompatActivity
وAppCompatCallback
وAppCompatDialog
للتعامل مع أوضاع الإجراءات التي تم بدؤها من النافذة الحالية. - تمت إضافة طريقتَي
isHandleNativeActionModesEnabled()
وsetHandleNativeActionModesEnabled()
إلى الفئةAppCompatDelegate
للتعامل مع أوضاع الإجراءات الأصلية.
- تمت إضافة طريقة
للحصول على قائمة كاملة بالتغييرات في "مكتبة الدعم"، يمكنك الاطّلاع على تقرير الاختلافات في واجهة برمجة تطبيقات مكتبة الدعم.
الإصدار 22.1.0
نيسان (أبريل) 2015
- التغييرات في مكتبة التعليقات التوضيحية:
-
- تمت إضافة مكتبة التعليقات التوضيحية لتوفير الدعم لعمليات فحص الرموز المحسَّنة. تتم إضافة التعليقات التوضيحية على شكل علامات بيانات وصفية تُرفِقها بالمتغيّرات والمَعلمات وقيم الإرجاع لفحص القيم المعروضة للطريقة والمَعلمات التي تم تمريرها والمتغيرات والحقول المحلية.
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- تمت إضافة الفئة
ColorUtils
لتوفير مجموعة من طرق الخدمات المرتبطة بالألوان. - تمت إضافة الطريقتَين
unwrap()
وwrap()
إلى الفئةDrawableCompat
، ما يتيح لك استخدامsetTint()
وsetTintList()
وsetTintMode()
على كل الأجهزة من المستوى 4 أو الأعلى من واجهة برمجة التطبيقات. - تمت إضافة فئة
TraceCompat
لكتابة أحداث التتبُّع إلى المخزن المؤقت لتتبُّع النظام، والذي يمكن بعد ذلك جمعه وعرضه باستخدام أداة Systrace. - تمت إضافة الفئة
CircularIntArray
لإنشاء بُنى بيانات مصفوفة بأعداد صحيحة دائرية. - تمت إضافة الطرق
clear()
وremoveFromStart()
وremoveFromEnd()
إلى الفئةCircularArray
. وتم أيضًا تغيير الطرق الحالية في هذه الفئة لتكون غير نهائية. - تمت إضافة
InputDeviceCompat
كصف مساعد للوصول إلى البيانات في الصفInputDeviceCompat
. - تمت إضافة الفئة
LayoutInflaterCompat
كفئة مساعدة للوصول إلى البيانات في الصفLayoutInflaterCompat
مع إضافة واجهةLayoutInflaterFactory
. - تمت إضافة فئات وطرق وواجهات لإتاحة التمرير المتداخل.
- تمت إضافة الصفَّين المساعِدَين
NestedScrollingChildHelper
وNestedScrollingParentHelper
لتنفيذ طريقة عرض العناصر الرئيسية والفرعية القابلة للتمرير. - تمت إضافة واجهة
NestedScrollingChild
ليتم تنفيذها من قِبل فئات فرعية من النوعView
. - تمت إضافة الواجهتَين
NestedScrollingParent
وScrollingView
لإتاحة عمليات التمرير وتوفير واجهات برمجة التطبيقات المتعلّقة بالتنقّل. - تمت إضافة الطريقة
getNestedScrollAxes()
إلى الفئةViewGroupCompat
. - تمت إضافة طرق إلى الفئة
ViewParentCompat
لإتاحة التمرير المدمج. - تمت إضافة الصف
NestedScrollView
لإتاحة التمرير الرئيسي والثانوي المدمج في كل من الإصدارَين الجديد والقديم من Android.
- تمت إضافة الصفَّين المساعِدَين
- تمت إضافة طُرق وثابتة إلى الفئة
MotionEventCompat
للحصول على قيم المحاور ومصدر الحدث. - تم تعديل الفئة
AccessibilityNodeInfoCompat
لإضافة طرق لرصد الأخطاء وإبطال المحتوى والتصنيفات. - تمت إضافة فئات الاستيفاء التالية للصور المتحركة:
FastOutLinearInInterpolator
وFastOutSlowInInterpolator
وLinearOutSlowInInterpolator
وLinearOutSlowInInterpolator
وPathInterpolatorCompat
. - تمت إضافة الفئة
Space
لإنشاء فجوات بين المكوّنات في التنسيقات العامة. تم إيقاف هذا الصف نهائيًا في مكتبة gridLayout. - تمت إضافة الصف
TextViewCompat
للوصول إلى الميزات فيTextView
. - تمت إضافة مَعلمة لإزاحة إلى طريقة
onPull()
في الفئةEdgeEffectCompat
.
- تمت إضافة الفئة
- تغييرات الإصدار 7 من مكتبة التطبيقات:
-
- تمت إضافة إمكانية استخدام تلوين على التطبيقات المصغّرة المتوافقة، ومنها
AppCompatAutoCompleteTextView
وAppCompatButton
وAppCompatCheckBox
وAppCompatCheckedTextView
وAppCompatEditText
وAppCompatMultiAutoCompleteTextView
وAppCompatRadioButton
وAppCompatRatingBar
وAppCompatSpinner
وAppCompatTextView
. - تم تعديل
AppCompatActivity
لتكون الفئة الأساسية للأنشطة التي تستخدم ميزات شريط إجراءات مكتبة الدعم. وتحلّ هذه الفئة محلّActionBarActivity
المتوقّفة نهائيًا. - تمت إضافة
واجهة
AppCompatCallback
المطلوب تنفيذها لتطبيق AppCompat ليتمكّن من إجراء عمليات معاودة الاتصال. - تمت إضافة
الفئة الموجزة
AppCompatDelegate
كتفويض يمكنك استخدامه لتوسيع نطاق دعم AppCompat ليشمل أي نشاط. - تمت إضافة فئة
AppCompatDialog
كفئة أساسية لمربّعات الحوار المستوحاة من AppCompat. - تمت إضافة صفّ
AlertDialog
وAlertDialog.Builder
نمط الدوران لتوفير سمةAlertDialog
مستوحاة من AppCompat. - تمت إضافة الفئة
Palette.Builder
لإنشاءPalette
مثيل.- تمت إضافة الإجراء
from(Bitmap)
إلى الفئةPalette
لبدء إنشاء لوحة ألوان باستخدام مثيلPalette.Builder
الذي تم عرضه. - تم إيقاف الإجراءَين
Palette.generate()
وPalette.generateAsync()
نهائيًا.
- تمت إضافة الإجراء
- تمت إضافة الطريقة
getAbsoluteAlignment()
إلى الفئةGridLayout.Spec
. - تم إيقاف استخدام
app:theme
للنمطToolbar
. يمكنك الآن استخدامandroid:theme
لأشرطة الأدوات على جميع الأجهزة من المستوى 7 والإصدارات الأحدث من واجهة برمجة التطبيقات وandroid:theme
مع جميع التطبيقات المصغّرة على الأجهزة من المستوى 11 من واجهة برمجة التطبيقات والإصدارات الأحدث.
- تمت إضافة إمكانية استخدام تلوين على التطبيقات المصغّرة المتوافقة، ومنها
- تغييرات الإصدار 17 من مكتبة leanback:
-
- تمت إضافة
GuidedStepFragment
وGuidanceStylist
وGuidedActionsStylist
لإتاحة إنشاء تدفقات اتخاذ قرارات متعددة الخطوات.
- تمت إضافة
- تغييرات الإصدار 7 من مكتبة recyclerview:
-
- تمت إضافة
SortedList
صفوف لعرض العناصر بترتيب القائمة وتقديم إشعار بالتغييرات التي تطرأ على القائمة. - تمت إضافة الفئة
SortedListAdapterCallback
التي يمكنها ربط قائمة تم ترتيبها بالفئةRecyclerView.Adapter
.
- تمت إضافة
- التغييرات في مكتبة الإصدار 8 من Renderscript:
-
- تمت إضافة الفئة
ScriptIntrinsicHistogram
لاستخدامها كفلتر مدرج تكراري. - تمت إضافة الفئة
ScriptIntrinsicResize
لإجراء تغيير حجم التخصيص الثنائي الأبعاد.
- تمت إضافة الفئة
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- تم تعديل طريقة
getDrawable()
لعرض عنصر قابل للرسم لرقم تعريف مورد محدّد، وكثافة الشاشة، والمظهر. - تمت إضافة طريقة
setImportantForAccessibility()
حتى تتمكّن من الإشارة إلى ما إذا كان يجب أن تؤدي المشاهدة إلى تشغيل الأحداث المخصّصة لتسهيل الاستخدام. - تمت إضافة طريقة
getStatusBarBackgroundDrawable()
بحيث يمكنك الحصول على خلفية قابلة للرسم في شريط الحالة. - تمت إضافة طرق إلى الفئة
NotificationCompat.CarExtender.UnreadConversation
ليتمكّن تطبيقات المراسلة على Android Auto من استرداد بيانات الإشعارات الإضافية. - تمت إضافة الطريقة
getProgressCircleDiameter()
لعرض قطر التخطيط الدائري. - تم تغيير لون شريط الحالة
DrawerLayout
التلقائي إلىcolorPrimaryDark
.
- تم تعديل طريقة
- تغييرات الإصدار 7 من مكتبة التطبيقات:
-
- تمت إضافة نمط الدوران
Base_Widget_AppCompat_Spinner_Underlined
. - تمت إضافة أنماط مصغّرة للتطبيقات المصغّرة مع
Widget_AppCompat_AutoCompleteTextView
وMultiAutoCompleteTextView
وTextAppearance_AppCompat_Button
وBase_Widget_AppCompat_RatingBar
.
- تمت إضافة نمط الدوران
- تغييرات الإصدار 17 من مكتبة leanback:
-
- تمت إضافة طريقتَي
getRecycledPoolSize()
وsetRecycledPoolSize()
لإتاحة أحجام مخصّصة لحمامات السباحة المُعاد تدويرها. - تمت إضافة السمة
WRAP_CONTENT
إلى إعداد عرض التنسيق لإتاحة المحتوى الملتف لرموز العناوين. - تم تحديد
R.transition
في ملف XML لتحسين تعديلات عمليات النقل. - تم تفعيل التوافق مع التنسيقات من اليمين إلى اليسار.
- تمت إضافة ميزة التشغيل والإيقاف المؤقت للأحداث الرئيسية في الوسائط إلى الصف
PlaybackOverlayFragment
. - تمت إضافة انتقالات الإدخال والرجوع إلى الصفَّين
BrowseFragment
وDetailsFragment
. - تمت إضافة الطريقة
replace()
لاستبدال العناصر في مصفوفة محوِّل العنصر.
- تمت إضافة طريقتَي
- تغييرات الإصدار 7 من مكتبة Mediarouter:
-
- تم تعديل رموز Google Cast لاستخدام نمط التصميم المتعدد الأبعاد.
- تم تعديل جميع الرموز المستخدَمة في مربّعات حوار
MediaRouter
لاستخدام نمط التصميم المتعدد الأبعاد.
- تغييرات الإصدار 7 من مكتبة recyclerview:
-
- تمت إضافة الإجراءَين
getlayoutPosition()
وgetadapterPosition()
إلى الفئةRecyclerView
. - تم إيقاف الإجراءَين
classgetChildPosition()
وfindViewHolderForPosition()
نهائيًا في الفئةRecyclerView
. - تم إيقاف الإجراء
getPosition()
في الفئةRecyclerView.ViewHolder
. - تم إيقاف الإجراء
getViewPosition()
في الفئةRecyclerView.LayoutParams
.
- تمت إضافة الإجراءَين
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- تمت إضافة العديد من طُرق
NotificationCompat.WearableExtender
لتحسين عرض الرموز الشريطية في الإشعارات على الأجهزة القابلة للارتداء.
- تمت إضافة العديد من طُرق
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- تمت إضافة صف
NotificationCompat.CarExtender
لإتاحة إضافات Android Auto في الإشعارات.
- تمت إضافة صف
- تغييرات الإصدار 7 من مكتبة التطبيقات:
-
- تمت إضافة الدالة الإنشائية
PopupMenu
لإتاحة القوائم المنبثقة الجديدة. - تمت إتاحة استخدام وصف رمز التصغير في الصف
Toolbar
. - تم تعديل التطبيق المصغّر
SearchView
لإتاحة عرضcommitIcon
. - تمت إزالة السمة
buttonGravity
من الفئةToolbar
.
- تمت إضافة الدالة الإنشائية
- تغييرات الإصدار 7 من مكتبة Cardview:
-
- تمت إضافة واجهة برمجة التطبيقات
setCardBackgroundColor(ColorStateList)
لإتاحة تغيير لون خلفيةCardView
. - تم تغيير
CardView
للإبلاغ عن قيمة التعتيم بمزيد من الدقة على أنّهاTRANSLUCENT
.
- تمت إضافة واجهة برمجة التطبيقات
- تغييرات مكتبة الإصدار 7 من recyclerview:
-
- تمت إضافة الثوابت
TOUCH_SLOP_DEFAULT
وTOUCH_SLOP_PAGING
إلى الفئةRecyclerView
لإتاحة إعدادات التمرير باللمس عند نقل البيانات.
- تمت إضافة الثوابت
- تغييرات الإصدار 17 من مكتبة leanback:
-
- تمت إضافة إمكانية إنشاء أجزاء الرمز v4.
- تم تغيير لون النص الثانوي في
CardView
.
- تمت إضافة مكتبة دعم متعدد الاستخدامات لإتاحة ملفات متعددة في Dalvik قابلة للتنفيذ (DEX) لإتاحة استخدام الملفات المتعددة الوسائط قبل الإصدار Android 5.0.
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- تمت إضافة إتاحة عمليات نقل
Fragment
للأجهزة التي تعمل بنظام التشغيل Android 5.0 (المستوى 21 من واجهة برمجة التطبيقات). يُرجى العلم أنّ عمليات النقل ليس لها أي تأثير على الأجهزة التي تعمل بنظام التشغيل Android 4.4 والإصدارات الأقدم. - تمت إضافة
DocumentFile
لتسهيل الانتقال منFile
أثناء العمل مع مجموعات المستندات. تتطلّب هذه الفئة تكاليف معالجة إضافية مقارنةً بواجهة برمجة التطبيقاتDocumentsContract
للنظام الأساسي التي تمت إضافتها في الإصدار Android 4.4 (المستوى 19 من واجهة برمجة التطبيقات). لذا، عليك التبديل إلى استخدامDocumentsContract
عند استخدام نظام التشغيل Android 4.4 والإصدارات الأحدث.
- تمت إضافة إتاحة عمليات نقل
- تغييرات الإصدار 7 من مكتبة التطبيقات:
-
- تمت إضافة دعم لواجهات مستخدم التصميم متعدد الأبعاد.
- تمت إضافة السمة
Toolbar
التي تعمِّم وظائفActionBar
للاستخدام ضمن تنسيقات التطبيقات. - تم تعديل السمة
ActionBarDrawerToggle
التي تحتوي على الصورة المتحركة من قائمة إلى سهم. - تم تحديث أدوات واجهة المستخدم الشائعة لإتاحة تعديل الألوان عبر سمات المظهر عند التشغيل على أجهزة تعمل بالإصدار 5.0 من نظام التشغيل Android.
- تمت إضافة
SwitchCompat
، وهو عبارة عن خلفية لأداةSwitch
التي تمت إضافتها في Android 4.0 (مستوى واجهة برمجة التطبيقات 14).
- الإصدار 7 من مكتبة Cardview الجديدة:
-
- تمت إضافة التطبيق المصغّر
CardView
الذي يوفّر عملية تنفيذ متوافقة مع التصميم المتعدد الأبعاد لعرض عناصر البيانات.
- تمت إضافة التطبيق المصغّر
- مكتبة الإصدار 7 من recyclerview الجديدة:
-
- تمت إضافة التطبيق المصغَّر
RecyclerView
الذي يوفّر طريقة عرض قائمة مرنة لتوفير نافذة محدودة في مجموعة بيانات كبيرة.
- تمت إضافة التطبيق المصغَّر
- مكتبة لوحة الإصدار 7 الجديدة:
-
- تمت إضافة الفئة
Palette
التي تتيح لك استخراج ألوان بارزة من صورة.
- تمت إضافة الفئة
- مكتبة leanback الإصدار v17 الجديدة:
-
- تمت إضافة إمكانية إنشاء واجهات مستخدم للتلفزيون، بما في ذلك
BrowseFragment
وDetailsFragment
وPlaybackOverlayFragment
. لمزيد من المعلومات عن استخدام تطبيقات واجهة المستخدم هذه، راجِع إنشاء تطبيقات تشغيل التلفزيون.
- تمت إضافة إمكانية إنشاء واجهات مستخدم للتلفزيون، بما في ذلك
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- تمت إضافة دعم إضافي للإشعارات على Android Wear في
NotificationCompat.WearableExtender
، ما يتيح لك تحديد الميزات الخاصة بالأجهزة القابلة للارتداء في إشعاراتك. - تمت إضافة
NotificationCompat.Action.WearableExtender
، ما يتيح إضافة الإجراءات على إشعارات الأجهزة القابلة للارتداء. - تمت إضافة ميزة
NotificationManagerCompat
، والتي تتيح لك إصدار إشعارات تتوافق مع الميزات القابلة للارتداء بشكل صحيح. - تمت إضافة السمة
RemoteInput
، والتي تسمح للأجهزة المحمولة باليد بتلقّي إدخال صوتي من إشعار يظهر على الجهاز القابل للارتداء. - تم تحسين معالجة الملاحظات التي تتم باللمس في
SwipeRefreshLayout
.
- تمت إضافة دعم إضافي للإشعارات على Android Wear في
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- وتمت إضافة الفئة
SwipeRefreshLayout
التي تتيح للمستخدمين إعادة تحميل محتوى العرض بإيماءة التمرير السريع عمودي. - تم إصلاح مشاكل إمكانية الوصول في أدراج التنقل.
- وتمت إضافة الفئة
- التغييرات التي تم إجراؤها على الإصدار 7 من مكتبة التطبيقات:
-
- تم إصلاح مشاكل الخلفية في شريط الإجراءات.
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- تم تحسين
PrintHelper
عن طريق إضافة معالجة غير متزامنة للطباعة. - تم إصلاح تقريب الفئة
DrawerLayout
للطريقةaddChildrenForAccessibility()
. - ميزة النسخ المطابق القابل للرسم للشرائح في
ActionBarDrawerToggle
- تم حل مشكلة واحدة تلو الأخرى عند إزالة عنصر من تكرار مجموعة.
- تم تحسين
- تغييرات لمكتبة Mediarouter v7:
-
- تم تحسين تحديد المسار باستخدام اسم المكون الكامل في
MediaRouteProvider.ProviderMetadata
. - تم تعديل
MediaRouteChooserDialog
لإخفاء المسارات غير المفعَّلة.
- تم تحسين تحديد المسار باستخدام اسم المكون الكامل في
- التغييرات في مكتبة الإصدار 8 من Renderscript
-
- تمت إضافة عملية نشر الخطأ لطبقة تعتيم RenderScript.
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- تم توفير واجهات برمجة تطبيقات مساحة التخزين الخارجية من خلال
getObbDirs()
وgetExternalFilesDirs()
وgetExternalCacheDirs()
وgetStorageState()
. تعرض طُرق المساعدة هذه دائمًا عنصر ملف واحد على الأجهزة التي تعمل بالإصدار 4.3 من نظام التشغيل Android (المستوى 18 من واجهة برمجة التطبيقات) والإصدارات الأقدم. وعند استخدام نظام التشغيل Android 4.4 (المستوى 19 لواجهة برمجة التطبيقات) والإصدارات الأحدث، قد تعرض هذه الطرق أكثر من عنصر ملف واحد. - تمت إضافة الصف
PrintHelper
الذي يعمل مع واجهات برمجة تطبيقات الطباعة لطباعة الصور باستخدام الحدّ الأدنى من الرموز. - تمت إضافة دعم واجهة المستخدم للسحب للفتح للقوائم المنبثقة. لمزيد من المعلومات، يمكنك الاطّلاع على
PopupMenuCompat
وListPopupWindowCompat
. - تم تحسين تسهيل الاستخدام من خلال إضافة طريقة
findFocus()
فيAccessibilityNodeProviderCompat
والطريقةgetLiveRegion()
فيAccessibilityNodeInfoCompat
. - تمت إضافة فئة المساعدة
ScaleGestureDetectorCompat
للوصول إلى طرق إيماءات التوسعة الجديدة. - تم حل مشكلة اللغة
ActionBarDrawerToggle
المعروضة من اليمين إلى اليسار. - تم تعديل خيار
AutoScrollHelper
لاستخدام أحداث اللمس أو السماح بتمريرها إلى طرق عرض أخرى.
- تم توفير واجهات برمجة تطبيقات مساحة التخزين الخارجية من خلال
- تغييرات لمكتبة Mediarouter v7:
-
- تمت إتاحة إضافة الوسائط إلى "قائمة المحتوى التالي" وضبط قيم عناوين HTTP ومدة تشغيل الوسائط.
- تمت إضافة إجراءات واضحة لبدء الجلسة والحصول عليها وانتهائها لإدارة جلسات تشغيل الوسائط بوضوح باستخدام جهاز توجيه الوسائط.
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- واجهة المستخدم
- تمت إضافة السمة
BidiFormatter
لمعالجة السلاسل النصية التي تجمع النص من اليمين إلى اليسار ومن اليمين إلى اليسار. - تم تعديل
ViewPager
للتعامل بشكل أفضل مع الحالات التي يكون فيها جهاز النداء صفريًا أثناء معالجة التنسيق الأولية. - تم تعديل
DrawerLayout
وSlidingPaneLayout
لعدم طرح استثناءات للقياس أثناء تعديل رمز المشروع.
- تمت إضافة السمة
- تسهيل الاستخدام
- تمت إضافة السمة
ExploreByTouchHelper
لتبسيط عملية تنفيذ تسهيل الاستخدام لطرق العرض المخصّصة. - تم إصلاح مشكلة متعلّقة بتعبئة
ViewPager
بشكل غير صحيح لأحداث تسهيل الاستخدام فيTYPE_VIEW_SCROLLED
. - تم إصلاح استثناء مؤشر فارغ في
ViewPager
عند تعبئة حدث تسهيل الاستخدام. - تم تبسيط
AccessibilityNodeInfoCompat
من خلال تغيير إدخالاتCharSequence
إلىString
عنصر. - تم إيقاف دالة إنشاء
AccessibilityRecordCompat
التي استخدمتObject
كإدخال.
- تمت إضافة السمة
- الوسائط
- تمت إضافة فئة المساعد
TransportMediator
لإدارة عناصر التحكّم في نقل الوسائط، مثل التشغيل والإيقاف المؤقت والتخطي وإجراءات الوسائط الأخرى. - تمت إضافة
DisplayManagerCompat
لإدارة إخراج الشاشة على شاشة جهاز واحدة أو أكثر.
- تمت إضافة فئة المساعد
- التغييرات الأخرى
- تمت إضافة فئة المساعد
WakefulBroadcastReceiver
لتنفيذ نمط شائع يتمثل في رصد حدث تنشيط الجهاز وتمرير العمل إلىService
مع ضمان عدم عودة الجهاز إلى وضع السكون قبل اكتمال عملية التسليم. - تمت إضافة واجهتَي برمجة تطبيقات جديدتَين، هما
commitContentChanged()
وrollbackContentChanged()
، إلىAsyncTaskLoader
للمساعدة في التعامل مع التعديلات في الخلفية لتغييرات البيانات التي سيتم إلغاؤها لاحقًا.
- تمت إضافة فئة المساعد
- واجهة المستخدم
- الإصدار 7 من مكتبة التطبيقات:
- مكتبة Mediaroute الجديد من الإصدار 7:
-
تمت إضافة مكتبة جديدة لجهاز توجيه الوسائط توفّر دعمًا لمعاينة مطوّري برامج Google Cast. توفّر واجهات برمجة التطبيقات لمكتبة Mediarouter v7 وسيلة للتحكم في توجيه قنوات الوسائط وعمليات البث من الجهاز الحالي إلى الشاشات الخارجية ومكبّرات الصوت وأجهزة الوجهة الأخرى، مع التوافق مع الإصدار Android 2.1 (المستوى 7 من واجهة برمجة التطبيقات). راجِع مكتبة جهاز توجيه الوسائط V7 للحصول على مزيد من المعلومات.
تخضع واجهات برمجة التطبيقات الإصدار 7 من مكتبة Mediarouter في الإصدار r18 من مكتبة الدعم للتغيير في الإصدارات اللاحقة من "مكتبة الدعم". نقترح في الوقت الحالي استخدام المكتبة فقط مع معاينة المطور على Google Cast.
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- تمت إضافة السمة
DrawerLayout
لإنشاء درج تنقّل يمكن سحبه من حافة النافذة. - تمت إضافة التطبيق المصغَّر
SlidingPaneLayout
لإنشاء روابط تعرض ملخّصات وعروض تفاصيل تتلاءم بشكل مناسب مع أحجام الشاشات المختلفة. - تمت إضافة
ActionBarDrawerToggle
كطريقة لربط دالتَيDrawerLayout
وActionBar
معًا. - تمت إضافة
ViewDragHelper
كمكوّن مشترك جديد لسحب طرق العرض في طريقة عرض رئيسية. - تمت إضافة
ScrollerCompat
لتوفير دعم التوافق بينScroller
وOverScroller
. - تمت إضافة
FileProvider
للسماح بمشاركة الملفات الخاصة بين التطبيقات. - تم تعديل السمة
ViewPager
لتوفير استثناء إذا تم تعديل فئةPagerAdapter
المرتبطة بدون طلب الزحف إلىnotifyDataSetChanged()
. - تم إصلاح مشكلة متعلقة بترتيب الترتيب في
ViewPager
أطفال. - تم إصلاح
GestureDetectorCompat
لنقل مكالماتonSingleTapConfirmed(MotionEvent)
المفقودة بين مهلة النقر وأحداث الضغط المطوّل.
- تمت إضافة السمة
- مكتبة الإصدار 7 الجديد من الشبكة:
-
- تمت إضافة
GridLayout
لتوفير الدعم لكائن التنسيقGridLayout
. - تمت إضافة السمة
android.support.v7.widget.Space
التي يمكن استخدامها لإنشاء مناطق فارغة داخل كائن التنسيقGridLayout
.
- تمت إضافة
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- تم تحسين سلوك التفاعل لتطبيق "
ViewPager
". - تم إصلاح الخلل الذي قد يتسبب في اختيار
ViewPager
للصفحة غير الصحيحة. - تم إصلاح استخدام طريقة
removeView()
أثناء تنسيقViewPager
. - تم إصلاح مشكلة في
SearchViewCompat
تؤدي إلى عدم محو نص البحث عند استخدام زر الرجوع للإغلاق. لا ينطبق هذا الإصلاح إلّا على مستويات واجهة برمجة التطبيقات المضيفة 14 والمستويات الأعلى.
- تم تحسين سلوك التفاعل لتطبيق "
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- واجهة المستخدم
- تمت إضافة الدعم لصفوف
Fragment
المدمَجة. - تمت إضافة تحسينات على تصحيح الأخطاء في
FragmentManager
. - تم إصلاح مشكلة في
FragmentTabHost
كانت تؤدي إلى فقدان حالةListView
عند التفاعل مع الأجزاء وعلامة التبويب. - تم إصلاح المشكلة المتعلقة بالتلميح المرئي للمستخدم في
FragmentStatePagerAdapter
. - تمت إضافة واجهة
PageTransformer
إلىViewPager
للسماح للتطبيقات بتوفير سلوك انتقال مخصّص للتمرير. - تمت إضافة ميزات وإصلاحات جديدة إلى الإصدار
TaskStackBuilder
من الإصدار الحالي. - تم إصلاح أخطاء
PagerTitleStrip
لتتبُّعPagerAdapter
المستخدمة حاليًا بشكل صحيح. - تم إصلاح المشاكل المتعلقة بالوميض وتحديد الموضع واقتصاص النص في الشاشة في
PagerTitleStrip
. - تم إصلاح
PagerTabStrip
لمراعاة المساحة المتروكة بشكل صحيح عند رسم تسطير.
- تمت إضافة الدعم لصفوف
- تسهيل الاستخدام
- تمت إضافة الدعم لأنواع أحداث اللمس والإيماءات لتسهيل الاستخدام الجديدة في
AccessibilityEventCompat
. - تمت إضافة الدعم لواجهات برمجة التطبيقات الجديدة لتسهيل الاستخدام في
ViewCompat
. - تمت إضافة إمكانية استخدام طريقة
performAccessibilityAction()
إلىViewCompat
.
- تمت إضافة الدعم لأنواع أحداث اللمس والإيماءات لتسهيل الاستخدام الجديدة في
- تمت إضافة إمكانية استخدام الإيماءات من خلال
GestureDetectorCompat
. - تمت إضافة إمكانية إجراء العمليات البسيطة على الملفات باستخدام فئة
AtomicFile
جديدة. - تمت إتاحة المجموعة الكاملة من طُرق
make
فيIntentCompat
. - تمت إضافة طريقة
trimToSize()
في فئة الأداةLruCache
. - تم تحديث
ConnectivityManagerCompat
للحصول على NetworkInfo من بثCONNECTIVITY_ACTION
.
- واجهة المستخدم
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- تمت إضافة دعم لميزات الإشعارات التي تم تقديمها في Android 4.1 (المستوى 16 من واجهة برمجة التطبيقات) مع إضافات إلى
NotificationCompat
.
- تمت إضافة دعم لميزات الإشعارات التي تم تقديمها في Android 4.1 (المستوى 16 من واجهة برمجة التطبيقات) مع إضافات إلى
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- دعم واجهة المستخدم
- تمت إضافة دعم
PagerTabStrip
، مما يوفر وظائف محسَّنة بخلافPagerTitleStrip
. - تم إصلاح أخطاء مختلفة في
PagerTitleStrip
وPagerTabStrip
، بما في ذلك خيارsetAllCaps
ومحاذاة العنوان وتحسينات المظهر والحد الأدنى لقيود العرض ومشاكل التنقّل باللمس. - تمت إضافة دعم هامش توثيق صفحات
ViewPager
، والذي يساعد الفئةViewPager
على توفير دعم الصفحات للمحتوى الذي يتضمّن نطاق تمرير أفقي كبير، مثل الخريطة. - تم إصلاح العديد من الأخطاء في
ViewPager
، بما في ذلك مشاكل تغيير الحجم ومجموعة البيانات، وتحديد موضع الصفحات، وتفاعل المستخدم، وتتبع التمرير، ومشاكل التنقّل باستخدام لوحة المفاتيح. - تم إصلاح العديد من الأخطاء في
Fragment
، بما في ذلك المعالجة السليمة لـonActivityResult()
عندما لا يعود الجزء المستهدف متوفرًا، وإرسال أحداث التحديد إلى أجزاء غير مرئية، وتحسين سلوكFragmentTransaction.replace()
، وإضافة معالجة أفضل للحالة التي يتم نقلها خارج إطار العرض. - تمت إضافة إمكانية استخدام طريقة
postOnAnimation()
فيViewCompat
. - تم تحديث
NavUtils
لاستخدام وظيفة Android 4.1 (المستوى 16 من واجهة برمجة التطبيقات) لأعلى وظائف التنقّل عند توفّرها.
- تمت إضافة دعم
- تسهيل الاستخدام
- تم تحديث فئات دعم تسهيل الاستخدام، بما في ذلك
AccessibilityNodeInfoCompat
، لاتّباع الإصلاحات التي تم إجراؤها في Android 4.1 (المستوى 16 من واجهة برمجة التطبيقات). - تمت إضافة دعم لإجراءات التمرير لتسهيل الاستخدام في
ViewPager
.
- تم تحديث فئات دعم تسهيل الاستخدام، بما في ذلك
- تحسينات عامة
- تم تحديث
TaskStackBuilder
لإظهار التغييرات في واجهة برمجة التطبيقات في Android 4.1 (المستوى 16 من واجهة برمجة التطبيقات). - تم تحسين
TaskStackBuilder
للسماح باستخدامها من إحدى الخدمات. - تمت إضافة دعم
EXTRA_HTML_TEXT
إلىShareCompat
. - تم تعديل السمة
NotificationCompat.Builder
لتتوافق مع طريقةsetNumber()
. - تمت إضافة الدعم في
ConnectivityManagerCompat
لطريقةisActiveNetworkMetered()
.
- تم تحديث
- دعم واجهة المستخدم
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- علامات الأهداف الثابتة لكائنات
PendingIntent
التي تم إنشاؤها بواسطةTaskStackBuilder
. - تمت إزالة السمات غير المستخدَمة من مشاريع مكتبة الشبكات الشبكية للتأكّد من إمكانية إنشاء المكتبة بالمستوى 7 من واجهة برمجة التطبيقات والإصدارات الأحدث.
- تمت إضافة ملفَّي
.classpath
و.project
لمشروع المكتبة لتنسيق الشبكة.
- علامات الأهداف الثابتة لكائنات
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- تمت إضافة
ShareCompat
التي توفّر صفوفًا مساعدة لإرسال المحتوى وتلقّيه في تطبيقات المشاركة على الشبكات الاجتماعية، بما في ذلك البيانات الوصفية الجديدة لنسب البيانات التي تمت مشاركتها إلى التطبيق المصدر. توفّر هذه الصف أيضًا عملية دمج متوافقة مع الإصدار الجديد منShareActionProvider
في Android 4.0. - تمت إضافة
NavUtils
وTaskStackBuilder
لتوفير الدعم لتنفيذ إرشادات تصميم Android للتنقل. تتضمن هذه الإضافات طريقة لتنفيذ الزر السهم لأعلى في شريط الإجراءات عبر الإصدارات. للحصول على مثال لتنفيذ هذا النمط، يُرجى الاطّلاع على نموذج App Navigation في (<em><sdk></em>/samples/<em><platform></em>/AppNavigation
). - تمت إضافة
NotificationCompat.Builder
لتوفير التوافق مع الفئة المساعِدةNotification.Builder
في Android 3.0 لإنشاء إشعارات النظام الموحّدة.
- تمت إضافة
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- التغييرات على ViewPager:
- تمت إضافة دعم إضافي لطريقة العرض المزخرفة لـ
ViewPager
. يمكن تقديم طرق العرض الزخرفية كطرق عرض ثانوية لجهاز النداء بتنسيق XML. - تمت إضافة السمة
PagerAdapter.getPageTitle()
لتوفير سلاسل العناوين للصفحات، مع العلم بأنّه يتم ضبط القيمة التلقائية على عدم توفّر عنوان لكل صفحة. - تمت إضافة
PagerTitleStrip
، وهو شريط عناوين غير تفاعلي يمكن إضافته كعنصر ثانوي في ViewPager. ويمكن للمطوّرين توفير مظهر النص ولونه، بالإضافة إلى معلومات عن حجم التنسيق والجاذبية. - تم تعديل طرق
PagerAdapter
لأخذ كائنات ViewGroup بدلاً من العرض لتجنُّب إرسال الفئة في عمليات تنفيذ المحوِّلات. - تم تعديل
ViewPager
لاستخدام أسلوب تبادل الرسائل الإلكترونية بنمط مشغّل التطبيقات. - إصلاح الأخطاء المتعلقة بتفاعل واجهة المستخدم والتشغيل الآلي للاختبار.
- تمت إضافة دعم إضافي لطريقة العرض المزخرفة لـ
- دعم الأجزاء:
- تم تغيير طريقة
setStartDeferred()
إلىsetUserVisibleHint(boolean)
. - تمت إضافة ميزة "البدء المؤجَّل" للصفحات التي لا تظهر على الشاشة من أجل تحسين الأداء.
- تم تغيير طريقة
- دعم واجهات برمجة تطبيقات Accessiblity:
- تم تعديل طُرق
AccessibilityDelegateCompat
لعرض القوائم الفارغة بدلاً من القيم الفارغة. - تمت إضافة واجهات برمجة تطبيقات جديدة مطلوبة من نماذج الإصدار 4.
- تم تعديل طُرق
- التغييرات على ViewPager:
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- دعم واجهات برمجة تطبيقات Accessiblity:
- تمت إضافة
AccessibilityDelegateCompat
لدعمView.AccessibilityDelegate
. - تمت إضافة
AccessibilityEventCompat
لدعمAccessibilityEvent
. - تمت إضافة
AccessibilityManagerCompat
لدعمAccessibilityManager
. - تمت إضافة
AccessibilityNodeInfoCompat
لدعمAccessibilityNodeInfo
. - تمت إضافة
AccessibilityRecordCompat
لدعمAccessibilityRecord
. - تمت إضافة
AccessibilityServiceInfoCompat
لدعمAccessibilityServiceInfo
. - تمت إضافة
ViewGroupCompat
لإتاحة ميزات تسهيل الاستخدام فيViewGroup
. - تم تعديل
ViewCompat
لإتاحة ميزات تسهيل الاستخدام فيView
.
- تمت إضافة
- التغييرات على ViewPager:
- تمت إضافة دعم الهوامش بين الصفحات.
يمكن توفير
Drawable
اختيارية لملء الهوامش. - تمت إضافة الدعم لـ
EdgeEffect
. - تمت إضافة إمكانية التنقّل باستخدام لوحة المفاتيح.
- تمت إضافة إمكانية التحكّم في عدد الصفحات التي يتم الاحتفاظ بها على أي من جانبَي الصفحة الحالية.
- تحسين فيزياء اللمس.
- إصلاح الأخطاء المتعلقة بسلوك واجهة المستخدم
- تمت إضافة دعم الهوامش بين الصفحات.
يمكن توفير
- دعم واجهات برمجة تطبيقات Accessiblity:
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- تمت إضافة
EdgeEffectCompat
لدعمEdgeEffect
. - تمت إضافة
LocalBroadcastManager
للسماح للتطبيقات بالتسجيل بسهولة في الطلبات واستلامها ضمن تطبيق واحد بدون بثها على مستوى العالم. - تمت إضافة دعم هذه الميزة في
ViewCompat
للتحقق من أوضاع التمرير الزائد وضبطها لـView
على نظام التشغيل Android 2.3 والإصدارات الأحدث. - التغييرات التي تطرأ على واجهات برمجة التطبيقات Fragment API:
- تمت إضافة واجهات برمجة تطبيقات جديدة للتحكّم في إمكانية رؤية القوائم الجديدة.
- تمت إضافة واجهات برمجة تطبيقات الصور المتحركة المخصّصة.
- تمت إضافة واجهات برمجة التطبيقات في
FragmentActivity
للاحتفاظ ببيانات المثيل المخصصة التي لم يتم إعدادها. - إصلاحات أخطاء متنوعة.
- تم إصلاح خطأ
Loader
الذي تسبّب في حدوث مشاكل في إلغاءAsyncTask
عند التشغيل على Froyo والإصدارات الأقدم من النظام الأساسي. يستخدم رمز الدعم الآن إصداره الخاص منAsyncTask
للحفاظ على السلوك نفسه في جميع إصدارات الأنظمة الأساسية.
- تمت إضافة
- التغييرات التي تم إجراؤها على مكتبة دعم الإصدار 4:
-
- إتاحة استخدام "
Fragment.SavedState
" - إضافة
MotionEventCompat
لدعم واجهات برمجة تطبيقاتMotionEvent
الأحدث - إضافة
VelocityTrackerCompat
لدعم واجهات برمجة تطبيقاتVelocityTracker
أحدث - إضافة
ViewConfigurationCompat
لدعم واجهات برمجة تطبيقاتViewConfiguration
أحدث - جميع واجهات برمجة التطبيقات الجديدة (المتوفرة في مكتبة الدعم فقط) التي تسمح لك بإنشاء واجهات مستخدم
باستخدام صفحات أفقية، ما يسمح للمستخدمين بالتمرير سريعًا لليسار واليمين بين طرق عرض المحتوى. وتشمل الصفوف التي تدعم ذلك ما يلي:
ViewPager
: عنصرViewGroup
يدير تنسيق طرق العرض الثانوية، التي يمكن للمستخدم التمرير بينها.PagerAdapter
: محوِّل يملأViewPager
بالملفات الشخصية التي تمثّل كل صفحة.FragmentPagerAdapter
: إضافة منPagerAdapter
إلى التقليب بين الأجزاء.FragmentStatePagerAdapter
: إضافة منPagerAdapter
للتنقل بين الأجزاء التي تستخدم دعم المكتبة معFragment.SavedState
.
- إتاحة استخدام "
- مكتبة دعم الإصدار 13 الجديد:
-
- تتضمن
FragmentPagerAdapter
وFragmentStatePagerAdapter
لإتاحة عملية التقسيم على صفحات أفقية.وهي مماثلة تمامًا لواجهات برمجة التطبيقات التي تمت إضافتها إلى مكتبة دعم الإصدار 4، ولكنها تعتمد على مكونات النظام الأساسي الأخرى في Android 3.2. يُرجى استخدام هذه المكتبة بدلاً من الإصدار 4 إذا كنت تطوِّر نظام التشغيل Android 3.2 والإصدارات الأحدث (جميع واجهات برمجة التطبيقات الأخرى المتوفّرة في مكتبة الإصدار 4 متوفّرة بالمستوى 13 من واجهة برمجة التطبيقات).
- تتضمن
- التغييرات التي تم إجراؤها على مكتبة الإصدار 4:
-
- دعم الرسوم المتحركة للأجزاء
- إصلاح الخطأ في
Fragment.onActivityResult()
النسخة رقم 22
مارس 2015
الإصدار 21.0.3
كانون الأول (ديسمبر) 2014
الإصدار 21.0.2
تشرين الثاني (نوفمبر) 2014
الإصدار 21.0.1
تشرين الثاني (نوفمبر) 2014
النسخة رقم 21
تشرين الأول (أكتوبر) 2014
النسخة رقم 20
تموز (يوليو) 2014
الإصدار 19.1.0
مارس 2014
الإصدار 19.0.1
كانون الأول (ديسمبر) 2013
المراجعة 19
تشرين الأول (أكتوبر) 2013
النسخة رقم 18
تموز (يوليو) 2013
النسخة 13
أيار (مايو) 2013
النسخة 12
شباط (فبراير) 2013
النسخة 11
تشرين الثاني (نوفمبر) 2012
النسخة 10
أغسطس 2012
النسخة 9
حزيران (يونيو) 2012
النسخة 8
نيسان (أبريل) 2012
النسخة 7
آذار (مارس)، 2012
النسخة السابقة
كانون الأول (ديسمبر)، 2011
ملاحظة: يتوفّر الآن مرجع واجهات برمجة التطبيقات لمكتبة الدعم مع مراجع أُطر العمل، مثل: android.support.v4.app
.
النسخة السابقة
كانون الأول (ديسمبر)، 2011
النسخة السابقة
تشرين الأول (أكتوبر) 2011
النسخة السابقة
تموز (يوليو) 2011
النسخة السابقة
أيار (مايو) 2011
النسخة السابقة
مارس 2011
هو الإصدار الأولي مع مكتبة الإصدار 4.