تلفزيون

  
تزود المطورين بوظائف التصميم المتعدد الأبعاد وتصميم المواد من أجل كتابة تطبيقات للتلفزيون
التعديل الأخير الإصدار المستقر إصدار مرشح الإصدار التجريبي إصدار ألفا
1 أيار (مايو) 2024 - - الإصدار التجريبي 1.0.0-01 -

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

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

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

رائع

dependencies {
    implementation "androidx.tv:tv-foundation:1.0.0-alpha10"
    implementation "androidx.tv:tv-material:1.0.0-beta01"
}

Kotlin

dependencies {
    implementation("androidx.tv:tv-foundation:1.0.0-alpha10")
    implementation("androidx.tv:tv-material:1.0.0-beta01")
}

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

ملاحظات

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

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

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

ما مِن ملاحظات إصدار لهذا العنصر.

الإصدار 1.0 من مواد التلفزيون

الإصدار 1.0.0-beta01

1 أيار (مايو) 2024

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

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

  • ColorScheme ووظائف المرافق الخاصة به مستقرة الآن. (If34fa)
  • LocalContentColor ثابتة الآن (I60ee2)
  • Typography API ثابتة الآن (I088d6)
  • أصبحت واجهات برمجة تطبيقات الأشكال مستقرة الآن (I0f5f4)
  • واجهة برمجة تطبيقات الحدود مستقرة الآن (I69281)
  • أصبحت Glow API مستقرة الآن (Iea5f1).
  • مكوّن الرمز ثابت الآن (I62c2d)
  • LocalTextStyles API مستقرة الآن (Iaded8)
  • MaterialTheme API ثابتة الآن (I2f541)
  • المكوّن النصي ثابت الآن (Ib9e31)
  • المكوِّن RadioButton ثابت الآن (Ia03c8)
  • مكوِّن مفتاح التبديل ثابت الآن (I6cea3).
  • مكوّنات Checkbox ثابتة الآن (I7eafc)
  • مكوّنات السطح ثابتة الآن (I58758 وI04aca)
  • تم تغيير الاسم "NonInteractiveSurfaceDefaults" إلى "SurfaceDefaults" و"NonInteractiveSurfaceColors" إلى "SurfaceColors" (I0812e).
  • يستخدم سطح المكتب القابل للاختيار الآن مصطلحات "select" بدلاً من "check" لأن لكل منهما معنى مختلف في المعنى (I5a206).
  • NavigationDrawer وNavigationDrawerScope ثابتان الآن (I249c1)
  • المكوِّن NavigationDrawerItem ثابت الآن (Id6986)
  • عناصر Tab وTabRow ثابتة الآن (I92d92)
  • مكوّنات Button وOutlinedButton وIconButton وOutlinedIconButton وWideButton ثابتة الآن (Ib4de8)
  • مكوّنات Card وClassicCard وCompactCard وWideClassicCard وStandardCardContainer وWideCardContainer ثابتة الآن (I34390)
  • تم تغيير الاسم "StandardCardLayout" إلى "StandardCardContainer" و"WideCardLayout" إلى "WideCardContainer" (I08883).
  • تمت إزالة CardContainerDefaults.ImageCard وإعادة تسمية CardDefaults.ContainerGradient إلى CardDefaults.ScrimBrush (I6adfe). يمكنك استخدام "Card" بدلاً من "CardContainerDefaults.ImageCard" في حاويات البطاقات.
  • ListItem وDenseListItem ثابتان الآن (Idebd9)
  • أصبحت ListItemDefaults.ListItemShape وListItemDefaults.FocusedDisabledBorder وListItemDefaults.SelectedContainerColorOpacity خاصة الآن (I5d533)
  • تمت إعادة ترتيب معلَمات ListItem وإعادة تسمية ListItemDefaults.ListItemElevation إلى ListItemDefaults.TonalElevation (Id6841). تم نقل المَعلمة headlineContent إلى أعلى العنصر القابل للإنشاء. في وقت سابق، يمكنك استخدام بنية lambda اللاحقة في Kotlin لتمرير headlineContent. الآن، يجب الاستفادة من بناء جملة المعلَمة المسمّاة لتوفير headlineContent.
  • LocalAbsoluteTonalElevation الآن داخلي (Ibfc65)
  • تمت إزالة المكوِّن ImmersiveList. اطّلع على هذه العيّنة لمعرفة كيفية إنشائها بنفسك. (Id48da)
  • تم تعديل مكوّنات مادة التلفزيون التي تعرض MutableInteractionSource في واجهة برمجة التطبيقات لعرض قيمة MutableInteractionSource قابلة للقيم التلقائية والتي يتم ضبطها تلقائيًا على القيمة "فارغ". ما مِن تغييرات دلالية هنا: يعني ضبط القيمة "فارغ" أنك لا تريد رفع MutableInteractionSource، وسيتم إنشاؤه داخل المكوِّن إذا لزم الأمر. يؤدي التغيير إلى قيمة "فارغ" إلى السماح لبعض المكونات بعدم تخصيص MutableInteractionSource مطلقًا، والسماح للمكوّنات الأخرى بإنشاء مثيل بشكل كسول فقط عند الحاجة، ما يحسّن الأداء على مستوى هذه المكوّنات. إذا كنت لا تستخدم MutableInteractionSource الذي تمرّره إلى هذه المكوّنات، نقترح إدخال قيمة فارغة بدلاً من ذلك. يوصى أيضًا بإجراء تغييرات مماثلة في المكونات الخاصة بك. (I309b4، b/298048146)
  • أصبحت المعلَمة TextAlign لمكوِّن نص التلفزيون غير فارغة الآن (Ib73b1، b/299490814)
  • تم تقديم قيمة خاصة غير محدّدة للحقول TextAlign وTextDirection وHyphens وLineBreak من ParagraphTextStyle لاستبدالها (I4197e، b/299490814).

الإصدار 1.0.0

الإصدار 1.0.0-alpha10

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

تم طرح androidx.tv:tv-foundation:1.0.0-alpha10 وandroidx.tv:tv-material:1.0.0-alpha10. يحتوي الإصدار 1.0.0-alpha10 على هذه الالتزامات.

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

  • تم تقديم السمة NavigationDrawerItem للاستخدام ضمن NavigationDrawer وModalNavigationDrawer. (I4b491)
  • أضِف الملف الشخصي الأساسي إلى مكتبة المؤسسات التلفزيونية. (2b57fd7)
  • أضِف الملف الشخصي المرجعي إلى مكتبة مواد التلفزيون. (1711ff5)

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

  • تمت إعادة تسمية "NavigationDrawerScope.doesTabRowHaveFocus" إلى "NavigationDrawerScope.hasFocus". (I8286b)
  • تمت إعادة تسمية "TabRowScope.isActivated" إلى "TabRowScope.hasFocus". (Ic4273)

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

  • إصلاح توافق لوحة العرض الدوّارة مع العناصر المجاورة التي تستخدم واجهات برمجة التطبيقات لأداة استعادة التركيز (7b2a7a4)
  • إيقاف مؤشر التوهج لـ API_LEVEL أقل من 28، لأنّها غير متوافقة مع نظام التشغيل. (6d3616f)
  • إصلاح تعطُّل خطأ ANR الذي نتج عن موضع العناصر غير الصحيح في الحاويات البطيئة عند الانتقال السريع في الاتجاه العكسي (642d65c)
  • تمت إزالة المساحة المتروكة في الخلفية في درج التنقل المشروط. (69965b2)
  • إصلاح Scrim في درج التنقل ليتم رسمه فوق محتوى الخلفية بدلاً من رسمه خلفه. (d4bbefb)

الإصدار 1.0.0-alpha09

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

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

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

  • إضافة واجهة ReusableComposition لإدارة دورة الحياة وإعادة استخدام التركيبات الفرعية. (I812d1، b/252846775)
  • مزامنة شوكة التأسيس التلفزيوني مع إنشاء المحتوى. (I737c3، b/287011882)
  • تمت إضافة حِمل السمة LazyLayout، وتقبل دالة lambda LazyLayoutItemProvider، وهي ليست كائنًا عاديًا كما كانت في السابق. تم إيقاف التحميل الزائد السابق. (I42a5a)
  • أضِف TvKeyboardAlignment للسماح للمطوِّر بضبط موضع لوحة المفاتيح على الشاشة من خلال AndroidImeOptions. (Idb772)
  • أضِف rememberCarouselState لتذكُّر CarouselState مع Saver إلى "مواد الكتابة على التلفزيون". (Id7275)
  • يؤدي تغيير المَعلمة scrimColor: Color إلى المَعلمة scrimBrush:Brush للسماح للمستخدمين بإضافة تدرّجات إلى طبقة الحدّ. (I254d4)

الإصدار 1.0.0-alpha08

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

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

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

  • قدِّم مكوّنات "الشريحة" في ميزة ComposeAllowed لمواد التلفزيون. (I86da4)
  • إضافة المكون ListItem إلى مادة الكتابة على التلفزيون (I3f0b3)
  • إضافة مكوّن DenseListItemإلى مادة "الكتابة على التلفزيون" (I536bf)

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

  • تم وضع علامة على واجهات برمجة التطبيقات العامة لمواد التلفزيون على أنّها "تجريبية". (I632e7)
  • تم طرح ميزة TabRowScope لمشاركة حالة من عنصر TabRow قابل للإنشاء مع خصائص علامة تبويب قابلة للإنشاء، وتمت إعادة تسمية خصائص TabColors. (Ief587)

الإصدار 1.0.0-alpha07

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

تم طرح androidx.tv:tv-foundation:1.0.0-alpha07 وandroidx.tv:tv-material:1.0.0-alpha07. يحتوي الإصدار 1.0.0-alpha07 على هذه الالتزامات.

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

  • تتضمن مؤشرات مقياس المكونات الآن "بدون" لإيقاف التحجيم. (I50df5)
  • تمت إضافة إمكانية النقر الطويل على سطح مواد التلفزيون والبطاقات والأزرار. (Id2b89)
  • تمت إزالة CarouselItem وCarouselScope. يمكن إنشاء صور متحركة للمحتوى الذي يعمل في المقدمة في الشريحة باستخدام Modifier.animateEnterExit من AnimatedContentScope. (Ic038e)
  • تم دمج المَعلمتَين color وcontentColor باسم colors لسطح مادة التلفزيون. (Ie69eb)
  • تم تقديم RadioButton قابل للإنشاء في مادة التلفزيون. (I08690)
  • تم تقديم Switch قابل للإنشاء في مادة التلفزيون. (I45e29)
  • تم تقديم Checkbox قابل للإنشاء في مادة التلفزيون. (I6a45a)
  • تم تقديم السطح غير القابل للتفاعل في مادة التلفزيون. (Ic5f85)
  • تقديم مؤشرات داخلية. (Ibff82)

الإصدار 1.0.0-alpha06

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

تم طرح androidx.tv:tv-foundation:1.0.0-alpha06 وandroidx.tv:tv-material:1.0.0-alpha06. يحتوي الإصدار 1.0.0-alpha06 على هذه الالتزامات.

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

  • إضافة تطبيقات بطاقة Material 3 المحسَّنة للتلفزيون
    • البطاقة الأساسية (I5b701)
    • ClassicCard وCompactCard وWideClassicCard (I70471)
    • StandardCardLayout وWideCardLayout (I33fae)
  • إضافة عمليات تنفيذ أزرار Material 3 محسَّنة للتلفزيون.
    • الزر الأساسي (I69c11)
    • IconButton وOutlinedIconButton (Ib504c)
    • WideButton (I4cecf)

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

  • تمت إعادة تسمية "CarouselSlide" و"slideCount" في Carousel إلى CarouselItem وitemCount. (Ie554c)
  • تمت إعادة تسمية forward وbackward ContentTransforms إلى StartToEnd وEndToStart. (Ie554c)

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

  • استخدِم زر "أزرار الاتجاهات" الخلفي عند التركيز على "NavigationDrawer". (d654f4)

الإصدار 1.0.0-alpha05

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

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

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

  • نقدّم لك درج التنقّل الجانبي القابل للإنشاء في tv-material. لمعرفة كيفية استخدام هذا العنصر القابل للإنشاء، يُرجى الاطّلاع على النماذج. (I12c08)
  • تقديم رمز قابل للإنشاء في مادة التلفزيون 3 (I72db9)
  • نعرّفك على Surface القابل للإنشاء والمتوفّرة لـ "tv-material" مع مؤشرات مثل "الحدود" و"اللمعان" و"المقياس" التي يمكن استخدامها لإنشاء مكوّنات تُبرز بوضوح العنصر الذي يتم التركيز عليه على شاشة التلفزيون. (I4a6d8)، (Iceea1)، (Iee4d4)، (I79edf)، (Icb376)
  • عدِّل CarouselItem إلى CarouselSlide لمطابقة اسم المعلَمة slideCount في واجهة برمجة التطبيقات 'منصّة العرض بعناصر متغيّرة من'Ic4299.

الإصدار 1.0.0-alpha04

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

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

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

  • في الصفوف والأعمدة والشبكات الكسولة، يتم إلغاء المحور، إذا لزم الأمر، لضمان عرض العنصر بأكمله. (11d7e40)
  • إضافة تخصيص لألوان علامات التبويب في حالات مختلفة (21b2925)
  • تقبل لوحة العرض الدوّارة الآن الرسوم المتحركة المخصّصة للتمرير اليدوي للأمام وللخلف. (431494a)

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

  • جارٍ إعادة تسمية androidx.tv.material إلى androidx.tv.material3 وتسوية بنية الحزمة ضمن androidx.tv.material3. (I6ca52)
  • المؤشر داخل صف مؤشر لوحة العرض الدوّارة هو الآن خانة يمكن للمطور تخصيصها. (268af2a)
  • تمت إعادة تسمية "focusableItem" إلى "immersiveListItem". على المستخدمين إضافة معدِّل focusable() أو clickable() يدويًا مع immersiveListItem (5dd5078)(b/263061052).
  • تمت إعادة التسمية timeToDisplayMillis إلى autoScrollDurationMillis في مكوِّن لوحة العرض الدوّارة. (431494a)
  • CarouselItem يقتصر استخدامه الآن على نطاق Carousel. (431494a)
  • تقبل لوحة العرض الدوّارة الآن استخدام ContentTransforms كتعريف للصورة المتحركة بدلاً من EnterTransition وExitTransitions. (431494a)
  • تم طرح واجهة برمجة تطبيقات PinnableContainer وتم نشرها من خلال القوائم البطيئة من خلال مقطوعة موسيقية محلية تسمح بتثبيت العنصر الحالي. (Ib8881 وb/259274257 وb/195049010)
  • تمت إضافة الخاصية mainAxisItemSpacing إلى TvLazyListLayoutInfo وTvLazyGridLayoutInfo (I37765).

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

  • حدِّث صف علامات التبويب للتأكد من أنه يتعامل مع عدد علامات التبويب البالغ 0 أو 1 بشكل صحيح. (I44009)، (1c01525)، (b/264018028)
  • إصلاح تعطُّل ميزة "البحث عن التركيز" عندما يحتوي الحقل "TvLazyColumn" على قيمة "TvLazyRow" فارغة. (e11b4fe)، (b/260299091)
  • يعمل مفتاح التعديل clickable الآن مع ImmersiveList. (5dd5078)، (b/263061052)
  • يتم الآن التعامل مع مفتاح الرجوع واستخدامه للخروج من لوحة العرض الدوّارة المميّزة. (84c138c)
  • لا تفقد لوحة العرض الدوّارة التركيز على الضغطات السريعة المتعددة على المفاتيح. (799489f)
  • لا تفقد لوحة العرض الدوّارة التركيز على الضغطات الطويلة على المفاتيح. (b2cf37e)
  • تمت معالجة الأعطال عند تغيير عدد شرائح لوحة العرض الدوّارة. (b261247)

الإصدار 1.0.0-alpha03

7 كانون الأول (ديسمبر) 2022

تم طرح androidx.tv:tv-foundation:1.0.0-alpha03 وandroidx.tv:tv-material:1.0.0-alpha03. يحتوي الإصدار 1.0.0-alpha03 على هذه الالتزامات.

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

  • يتوفّر "TabRow" الآن كواجهة برمجة تطبيقات تجريبية تسمح للمستخدمين بإضافة أشرطة التنقل العلوية إلى تطبيقاتهم. بوجه عام، تتوقع أجهزة التلفزيون تحميل علامات التبويب عند التركيز على عنوان علامة التبويب في صف علامات التبويب.
  • يتم عرض المؤشرات الخاصة بالتلفزيون مثل مؤشر التسطير ومؤشر الدواء بشكل غير تقليدي. يمكنك الاطّلاع على نماذج الاستخدامات في نماذج البرامج التلفزيونية.

الإصدار 1.0.0-alpha02

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

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

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

  • تم تحسين أداء الانتقال عند التنقّل في مجموعة من TvLazyRows/TvLazyColumns من خلال تقليل مساحة البحث التي يتم التركيز عليها.(I723a3)

الإصدار 1.0.0-alpha01

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

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

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

يحتوي الإصدار الأولي الأول على عمليات تنفيذ معاينة مبكرة لمكونات حالات استخدام التلفزيون، بما في ذلك:

  • عند إضافة عنصر التعديل scrollableWithPivot، يتم السماح لحاويات التمرير غير الكسول، مثل "الصف" و"العمود" و"الشبكة" بأن تتيح لحاوية التمرير تمرير المحتوى كي يظل التركيز على العنصر في الموضع نفسه على شاشة التلفزيون.
  • جارٍ إضافة العناصر القابلة للإنشاء TvLazyRow وTvLazyColumn وTvLazyHorizontalGrid وTvLazyVerticalGrid لإتاحة إمكانية تمرير حاوية التمرير في المحتوى حتى يظل العنصر الذي يظهر في التركيز في الموضع نفسه على شاشة التلفزيون.
  • إضافة لوحة عرض دوّارة مميّزة قابلة للإنشاء للتلفزيون، ما يتيح للمستخدم إنشاء لوحة عرض دوّارة يتم عرضها تلقائيًا
  • إضافة قائمة مجسّمة قابلة للإنشاء للتلفزيون، وتتيح للمستخدم إنشاء صف/عمود/شبكة مجسّمة تغيّر الخلفية بناءً على عنصر القائمة الذي يتم التركيز عليه.

المشاكل المعروفة

  • عند الحصول على التركيز في الحاوية، لا يتم التركيز على العنصر الأول بشكل افتراضي.
  • ولا يؤدي التركيز على TextField إلى فتح لوحة المفاتيح دائمًا أو إلى منع التركيز من الانتقال إلى حقول أخرى.
  • يؤدي التمرير عموديًا في LazyColumn التي تحتوي على LazyRows إلى ضعف الأداء.