טלוויזיה

  
מספקת למפתחים פונקציות של פיתוח נייטיב וחומר כדי לכתוב אפליקציות לטלוויזיה
העדכון האחרון גרסה יציבה מועמד לפרסום גרסת בטא גרסת אלפא
21 באוגוסט 2024 1.0.0 - - -

הצהרה על יחסי תלות

כדי להוסיף יחסי תלות במקורות מידע בטלוויזיה ובחומרי טלוויזיה, צריך להוסיף את מאגר Google Maven פרויקט. למאגר Maven של Google אפשר לקבל מידע נוסף.

מוסיפים את יחסי התלות של פריטי המידע הנדרשים בקובץ build.gradle בשביל האפליקציה או המודול שלך:

מגניב

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

Kotlin

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

למידע נוסף על יחסי תלות, אפשר לעיין במאמר הוספת יחסי תלות של build.

משוב

המשוב שלך עוזר לנו לשפר את Jetpack. נשמח לשמוע אם גילית בעיות חדשות או אם יש לך רעיונות לשיפור הספרייה הזו. מומלץ לעיין בעיות קיימות בספרייה הזו לפני שיוצרים ספר חדש. אפשר להוסיף את ההצבעה שלך לבעיה קיימת על ידי לחיצה על לחצן הכוכב.

דיווח על בעיה חדשה

מקורות מידע בנושא מעקב אחר בעיות אפשר לקבל מידע נוסף.

אין נתוני גרסה של פריט המידע הזה שנוצר בתהליך הפיתוח (Artifact).

גרסה 1.0 של חומר טלוויזיה

גרסה 1.0.0

21 באוגוסט 2024

androidx.tv:tv-material:1.0.0 משוחרר. גרסה 1.0.0 היא הגרסה היציבה הראשונה של androidx.tv:tv-material.

גרסה 1.0.0-rc02

7 באוגוסט 2024

androidx.tv:tv-material:1.0.0-rc02 משוחרר. גרסה 1.0.0-rc02 מכילה את ההתחייבויות האלה.

תיקוני באגים

  • אנימציה קבועה של טקסט רעידות בתצוגה קומפוזבילית מסוג Surface. (3163319)

גרסה 1.0.0-rc01

10 ביולי 2024

androidx.tv:tv-material:1.0.0-rc01 משוחרר. גרסה 1.0.0-rc01 מכילה את ההתחייבויות האלה.

גרסה 1.0.0-beta01

1 במאי 2024

androidx.tv:tv-material:1.0.0-beta01 משוחרר. גרסה 1.0.0-beta01 כוללת את ההתחייבויות האלה.

שינויים ב-API

  • ColorScheme ופונקציות השימוש שלו יציבות עכשיו. (If34fa)
  • LocalContentColor יציב עכשיו (I60ee2)
  • ה-API של Typography יציב עכשיו (I088d6)
  • ממשקי ה-API של הצורות יציבים עכשיו (I0f5f4)
  • Border API יציב עכשיו (I69281)
  • Glow API יציב עכשיו (Iea5f1)
  • רכיב הסמל יציב עכשיו (I62c2d)
  • ה-API של LocalTextStyles יציב עכשיו (Iaded8)
  • ה-API של MaterialTheme יציב עכשיו (I2f541)
  • רכיב הטקסט יציב עכשיו (Ib9e31)
  • הרכיב RadioButton יציב עכשיו (Ia03c8)
  • רכיב המתג יציב עכשיו (I6cea3)
  • רכיבי Checkbox יציבים עכשיו (I7eafc)
  • רכיבי המשטח יציבים עכשיו (I58758, I04aca)
  • השם של NonInteractiveSurfaceDefaults שונה ל-SurfaceDefaults ואת השם NonInteractiveSurfaceColors ל-SurfaceColors (I0812e)
  • המונח 'פלטפורמה לבחירה' משתמש עכשיו במונחים "נבחרים" במקום "בדיקה" כי לשניהם יש משמעות סמנטיקה שונה (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 (מזהה 6841). הפרמטר headlineContent הועבר לחלק העליון של התוכן הקומפוזבילי. מוקדם יותר, אפשר היה להשתמש בתחביר lambda של Kotlin כדי להעביר את headlineContent. עכשיו צריך להשתמש בתחביר של פרמטרים בעלי שם כדי לספק את ה-headlineContent.
  • LocalAbsoluteTonalElevation הוא עכשיו פנימי (Ibfc65)
  • הרכיב ImmersiveList הוסר. בדוגמה הזו תוכלו ללמוד איך לפתח אותה בעצמכם. (Id48da)
  • רכיבי tv-material שחושפים MutableInteractionSource ב-API שלהם עודכנו ועכשיו הם חושפים MutableInteractionSource אפסי שברירת המחדל שלו היא null. אין כאן שינויים סמנטיים: העברת ערך null פירושה שלא רוצים להניף את ה-MutableInteractionSource, והוא ייווצר בתוך הרכיב במקרה הצורך. שינוי ל-null מאפשר לרכיבים מסוימים לא להקצות אף פעם MutableInteractionSource, ומאפשר לרכיבים אחרים ליצור מכונה באופן מדורג רק כשהם צריכים. פעולה זו משפרת את הביצועים ברכיבים האלה. אם אתם לא משתמשים בMutableInteractionSource שאתם מעבירים לרכיבים האלה, מומלץ להעביר במקום זאת ערך null. מומלץ גם לבצע שינויים דומים ברכיבים שלכם. (I309b4, b/298048146)
  • הפרמטר TextAlign של רכיב הטקסט בטלוויזיה אינו null (Ib73b1, b/299490814)
  • נוסף ערך מיוחד מסוג 'לא צוין' עבור השדות TextAlign, TextDirection, Hyphens ו-LineBreak של ParagraphTextStyle שיחליפו (I4197e, b/299490814)

שינויים בהתנהגות

  • ערך ברירת המחדל של הפרמטר shape עבור הפרמטר Surface הלא אינטראקטיבי השתנה ל-RectangleShape (I1b859cb)
  • חלק מתכונות הקרוסלה הוסרו מהשקת גרסת הבטא כי ממשקי ה-API הנדרשים הם ניסיוניים (I0e755d4)
  • כשמשנים את contentColor ב-Surface, כבר לא מתבצעת אנימציה בין מדינות (I436e794f)

גרסה 1.0.0

גרסה 1.0.0-alpha11

10 ביולי 2024

androidx.tv:tv-foundation:1.0.0-alpha11 משוחרר. גרסה 1.0.0-alpha11 מכילה את התחייבויות אלה.

שינויים ב-API

  • הוצאנו משימוש את פריסות הטלוויזיה Lazy Layouts מספריית האינטרנט. בכרטיס הזה מוסבר איך עוזבים את הפריסה העצמית בטלוויזיה. (I0855f, b/332674072)
  • עכשיו PlatformImeOptions הוא מחלקה קונקרטית במקום ממשק. (If40a4)

גרסה 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)

שינויים ב-API

  • השם של NavigationDrawerScope.doesTabRowHaveFocus השתנה. השם החדש הוא NavigationDrawerScope.hasFocus. (I8286b)
  • השם של TabRowScope.isActivated השתנה. השם החדש הוא TabRowScope.hasFocus. (Ic4273)

תיקוני באגים

  • תיקון התאימות של קרוסלה לפריטים קרובים שמשתמשים בממשקי API לשחזור מיקוד. (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 מכילה את התחייבויות אלה.

שינויים ב-API

  • הוספת ממשק ReusableComposition לניהול מחזור חיים ושימוש חוזר בהרכבת משנה. (I812d1, b/252846775)
  • סנכרון המזלג של תשתית הטלוויזיה עם בסיס הכתיבה. (I737c3, b/287011882)
  • נוסף עומס יתר של LazyLayout, הוא מקבל lambda של LazyLayoutItemProvider, לא אובייקט פשוט כמו קודם. עומס היתר הקודם הוצא משימוש. (I42a5a)
  • הוספה של TvKeyboardAlignment תאפשר למפתח להגדיר את מיקום המקלדת שמופיעה במסך דרך AndroidImeOptions. (Idb772)
  • צריך להוסיף rememberCarouselState כדי לזכור את CarouselState עם Saver לחומר הלימוד לטלוויזיה. (Id7275)
  • שינוי הפרמטר scrimColor: Color לפרמטר scrimBrush:Brush כדי לאפשר למשתמשים להוסיף הדרגתיות ל-scrim. (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 מכילה את התחייבויות אלה.

תכונות חדשות

  • הצגה של רכיבי צ'יפ עבור 'פיתוח נייטיב' עבור חומרים לטלוויזיה. (I86da4)
  • הוספת הרכיב ListItem לחומר הלימוד בטלוויזיה. (I3f0b3)
  • הוספת רכיב DenseListItemלחומר 'פיתוח נייטיב' לטלוויזיה. (I536bf)

שינויים ב-API

  • סומנו ממשקי API ציבוריים של חומר טלוויזיה כניסיוני. (I632e7)
  • הוספת את TabRowScope למצב שיתוף של מצב קומפוזבילי מסוג TabRow עם תכונות קומפוזביליות של Tab, שהשם שלהן השתנה ל-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 מכילה את התחייבויות אלה.

שינויים ב-API

  • אינדיקציות לקנה המידה של הרכיבים כוללות עכשיו 'ללא' כדי להשבית את ההתאמה לעומס (scaling). (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)

שינויים ב-API

  • השמות של 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 מכילה את התחייבויות אלה.

שינויים ב-API

  • חדש: חלונית הזזה לניווט צדדית שתהיה קומפוזבילית ל-tv-material. כדי ללמוד איך להשתמש בתוכן הקומפוזבילי הזה, כדאי לעיין בדוגמאות. (I12c08)
  • הצגת סמל קומפוזבילי ב-Material TV 3 (I72db9)
  • חדש: משטח קומפוזבילי ל-tv-material עם אינדיקציות כמו Border, Glow ו-Scale, שאפשר להשתמש בהם כדי לבנות רכיבים שמדגישים באופן ברור את הרכיב שבו מתמקדים במסך הטלוויזיה. (I4a6d8), (Iceea1), (Iee4d4), (I79edf), (Icb376)
  • מעדכנים את CarouselItem לערך CarouselSlide כדי למצוא התאמה לשם הפרמטר slideCount ב'קרוסלה' API (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)

שינויים ב-API

  • שינוי השם של 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)
  • הושק ממשק ה-API של 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 זמין עכשיו כ-API ניסיוני שמאפשר למשתמשים להוסיף סרגלי ניווט מובילים לאפליקציות שלהם. באופן כללי, מכשירי טלוויזיה מצפים שהכרטיסיות ייטענו כשמתמקדים בכותרת של הכרטיסייה בשורת הכרטיסייה.
  • אינדיקטורים ספציפיים לטלוויזיה, כמו קו תחתון ואינדיקטור גלולה, מוצעים מחוץ לאריזה. דוגמאות לשימושים מופיעות בקטעים לדוגמה של פרסום בטלוויזיה

גרסה 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 כדי שמאגר הגלילה יגלול את התוכן, כך שהפריט המטורגט יישאר באותו מיקום במסך הטלוויזיה.
  • הוספת תוכן קומפוזבילי של קרוסלה מומלצת לטלוויזיה שמאפשרת למשתמש ליצור קרוסלה של מודעות באנר לגלילה אוטומטית.
  • הוספת תוכן קומפוזבילי לצפייה בטלוויזיה שמאפשרת למשתמשים ליצור שורה/עמודה או רשת ב-360 מעלות, שמשנה את הרקע על סמך הפריט ברשימה שבמיקוד.

בעיות מוכרות

  • כשמאגר הגלילה מתמקד יותר, הרכיב הראשון לא מתמקד כברירת מחדל.
  • התמקדות ב-TextField לא תמיד פותחת את המקלדת או מונע את המיקוד לעבור לשדות אחרים.
  • לגלילה אנכית בתוך LazyColumn שמכיל את LazyRows יש ביצועים נמוכים.