tv

  
Udostępnia deweloperom funkcje Compose i Material Design do tworzenia aplikacji na telewizory.
Ostatnia aktualizacja Wersja stabilna Wersja kandydująca Wersja Beta Wersja alfa
15 stycznia 2025 r. 1.0.0 - - 1.1.0-alpha01

Deklarowanie zależności

Aby dodać zależności od tv-foundation i tv-material, musisz dodać repozytorium Google Maven do projektu. Więcej informacji znajdziesz w repozytorium Maven firmy Google.

Dodaj zależności dla artefaktów, których potrzebujesz, w pliku build.gradle aplikacji lub modułu:

Odlotowe

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")
}

Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.

Opinia

Twoja opinia pomoże nam ulepszyć Jetpacka. Daj nam znać, jeśli zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz zagłosować na istniejący problem, klikając przycisk z gwiazdką.

Tworzenie nowego zgłoszenia

Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.

Nie ma informacji o wersji tego artefaktu.

Tv-Material w wersji 1.1

Wersja 1.1.0-alpha01

15 stycznia 2025 r.

androidx.tv:tv-material:1.1.0-alpha01 został zwolniony. Wersja 1.1.0-alpha01 zawiera te komity.

Zmiany w interfejsie API

  • Zmień FocusEnterExitScope.cancelFocus() na cancelFocusChange()(I89959)
  • Parametry FocusProperties.enterFocusProperties.exit zostały zastąpione odpowiednio przez onEnteronExit, z użyciem zakresu odbiornika zamiast parametru FocusDirection. (I6e667)

Poprawki błędów

  • Aby naprawić problem z tresem podczas skalowania, przeniesiono CompositingStrategy.OffScreen z grupy Powierzchnia do grupy Tekst. (I92b15f17)
  • Naprawiono błąd związany z nieprawidłowym zarządzaniem punktem skupienia w karuzeli (Ie508b721375).
  • Elementy powierzchniowe (nieinteraktywne) mają uproszczoną implementację w porównaniu z elementami interaktywnymi. (I7ea545150)

Tv-Material Version 1.0

Wersja 1.0.0

21 sierpnia 2024 r.

androidx.tv:tv-material:1.0.0 został zwolniony. Wersja 1.0.0 to pierwsza stabilna wersja androidx.tv:tv-material.

Wersja 1.0.0-rc02

7 sierpnia 2024 r.

androidx.tv:tv-material:1.0.0-rc02 został zwolniony. Wersja 1.0.0-rc02 zawiera te zatwierdzenia.

Poprawki błędów

  • Naprawiono animację obrazującą trzęsienie tekstu w komponowalnym elementu Surface. (3163319)

Wersja 1.0.0-rc01

10 lipca 2024 r.

androidx.tv:tv-material:1.0.0-rc01 został zwolniony. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.

Wersja 1.0.0-beta01

1 maja 2024 r.

androidx.tv:tv-material:1.0.0-beta01 został zwolniony. Wersja 1.0.0-beta01 zawiera te komity.

Zmiany w interfejsie API

  • Interfejs ColorScheme i jego funkcje pomocnicze są teraz stabilne. (If34fa)
  • LocalContentColor jest teraz stabilny (I60ee2)
  • Typography Interfejs API jest teraz stabilny (I088d6)
  • Interfejsy API kształtów są teraz stabilne (I0f5f4)
  • Interfejs Border API jest teraz stabilny (I69281)
  • Interfejs Glow API jest teraz stabilny (Iea5f1).
  • Komponent ikony jest teraz stabilny (I62c2d)
  • LocalTextStyles Interfejs API jest teraz stabilny (Iaded8)
  • MaterialTheme Interfejs API jest teraz stabilny (I2f541)
  • Komponent tekstowy jest teraz stabilny (Ib9e31)
  • Komponent RadioButton jest teraz stabilny (wersja Ia03c8).
  • Komponent przełącznika jest teraz stabilny (I6cea3)
  • Komponenty Checkbox są teraz stabilne (I7eafc)
  • Komponenty powierzchni są teraz stabilne (I58758, I04aca)
  • Zmieniono nazwę NonInteractiveSurfaceDefaults na SurfaceDefaults, a NonInteractiveSurfaceColors na SurfaceColors (I0812e).
  • W elementach dostępnych do wybrania termin „wybierz” zastąpił termin „zaznacz”, ponieważ oba mają inną semantykę (I5a206)
  • Wersje NavigationDrawerNavigationDrawerScope są teraz stabilne (I249c1).
  • Komponent NavigationDrawerItem jest teraz stabilny (Id6986)
  • Komponenty karty i TabRow są teraz stabilne (I92d92)
  • Komponenty Button, OutlinedButton, IconButton, OutlinedIconButtonWideButton są teraz stabilne (Ib4de8).
  • Komponenty Card, ClassicCard, CompactCard, WideClassicCard, StandardCardContainerWideCardContainer są teraz stabilne (I34390)
  • Zmieniono nazwę StandardCardLayout na StandardCardContainer, a WideCardLayout na WideCardContainer (I08883)
  • Usunięto CardContainerDefaults.ImageCard i zmieniono nazwę CardDefaults.ContainerGradient na CardDefaults.ScrimBrush (I6adfe). W kontenerach kart możesz używać elementu Card zamiast elementu CardContainerDefaults.ImageCard.
  • ListItemDenseListItem są teraz stabilne (Idebd9)
  • ListItemDefaults.ListItemShape, ListItemDefaults.FocusedDisabledBorderListItemDefaults.SelectedContainerColorOpacity są teraz prywatne (I5d533)
  • Zmieniono kolejność parametrów ListItem i nazwę parametru ListItemDefaults.ListItemElevation na ListItemDefaults.TonalElevation (Id6841). Parametr headlineContent został przeniesiony na szczyt składanego elementu. Wcześniej można było użyć składni lambda na końcu w Kotlinie, aby przekazać headlineContent. Aby podać parametr headlineContent, musisz użyć składni parametru o nazwie.
  • LocalAbsoluteTonalElevation jest teraz wewnętrzny (Ibfc65)
  • Komponent ImmersiveList został usunięty. Zapoznaj się z tym przykładem, aby dowiedzieć się, jak stworzyć taką funkcję samodzielnie. (Id48da)
  • Komponenty tv-material, które w swoim interfejsie API udostępniają wartość MutableInteractionSource, zostały zaktualizowane, aby udostępniać wartość MutableInteractionSource, która może być null. Domyślnie jest ona ustawiana na null. Nie ma tu żadnych zmian semantycznych: przekazanie wartości null oznacza, że nie chcesz podnosić MutableInteractionSource, i w razie potrzeby zostanie on utworzony wewnątrz komponentu. Ustawienie wartości null pozwala niektórym komponentom nigdy nie przydzielać MutableInteractionSource, a innym pozwala tworzyć instancję tylko wtedy, gdy jest to konieczne, co poprawia wydajność tych komponentów. Jeśli nie używasz wartości MutableInteractionSource przekazywanej do tych komponentów, zalecamy przekazanie zamiast niej wartości null. Zalecamy też wprowadzenie podobnych zmian w własnych komponentach. (I309b4, b/298048146)
  • Parametr TextAlign elementu Text w YouTube TV nie jest już pusty (Ib73b1, b/299490814)
  • Wprowadziliśmy specjalną wartość Nieokreślona w przypadku pól TextAlign, TextDirection, HyphensLineBreak w tabelce ParagraphTextStyle, aby zastąpić nią dotychczasowe wartości (I4197e, b/299490814)

Zmiany w zachowaniu

  • Wartość domyślna parametru shape w przypadku nieinteraktywne Surface została zmieniona na RectangleShape (I1b859cb)
  • W wersji beta usunięto niektóre funkcje karuzeli, ponieważ wymagane interfejsy API są w wersji eksperymentalnej (I0e755d4).
  • Zmiana wartości parametru contentColor w elementach Surface nie powoduje już animacji między stanami (I436e794f).

Wersja 1.0.0

Wersja 1.0.0-alpha12

15 stycznia 2025 r.

androidx.tv:tv-foundation:1.0.0-alpha12 został zwolniony. Wersja 1.0.0-alpha12 zawiera te komity.

Zmiany w interfejsie API

  • Usuwanie niestandardowych układów z tv-foundation. Aby przejść z wersji tv-foundation lazy layouts, zapoznaj się z informacjami o wersji 1.0.0-alpha11. (I2fdd3, b/358913893)

Wersja 1.0.0-alpha11

10 lipca 2024 r.

androidx.tv:tv-foundation:1.0.0-alpha11 został zwolniony. Wersja 1.0.0-alpha11 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Szablony opóźnionego układu zostały wycofane z biblioteki tv-foundation. Aby dowiedzieć się, jak przejść z nieaktywnych układów na telewizory, zapoznaj się z tym zgłoszeniem. (I0855f, b/332674072)
  • PlatformImeOptions jest teraz konkretną klasą, a nie interfejsem. (If40a4)

Wersja 1.0.0-alpha10

4 października 2023 roku

androidx.tv:tv-foundation:1.0.0-alpha10androidx.tv:tv-material:1.0.0-alpha10 są dostępne. Wersja 1.0.0-alpha10 zawiera te zatwierdzenia.

Nowe funkcje

  • Wprowadzono NavigationDrawerItem do użytku w funkcjach NavigationDrawerModalNavigationDrawer. (I4b491)
  • Dodaj profil podstawowy do biblioteki tv-foundation. (2b57fd7)
  • Dodaj profil podstawowy do biblioteki tv-material. (1711ff5)

Zmiany w interfejsie API

  • Nazwa NavigationDrawerScope.doesTabRowHaveFocus została zmieniona na NavigationDrawerScope.hasFocus. (I8286b)
  • Nazwa TabRowScope.isActivated została zmieniona na TabRowScope.hasFocus. (Ic4273)

Poprawki błędów

  • Poprawić zgodność karuzeli z sąsiednimi elementami, które korzystają z interfejsów API przywracających fokus. (7b2a7a4)
  • Wyłącz oznaczenie blasku dla poziomu API poniżej 28, ponieważ nie jest ono obsługiwane przez system operacyjny. (6d3616f)
  • Naprawiono błąd ANR spowodowany nieprawidłowym umieszczeniem elementów w kontenerach opóźnionych podczas szybkiego przewijania w przeciwnym kierunku. (642d65c)
  • Usunięto wypełnienie tła w panelu nawigacji modalnej. (69965b2)
  • Napraw ekran ciemny w panelu nawigacji, aby był wyświetlany nad treściami tła, a nie za nimi. (d4bbefb)

Wersja 1.0.0-alpha09

6 września 2023 r.

androidx.tv:tv-foundation:1.0.0-alpha09androidx.tv:tv-material:1.0.0-alpha09 są dostępne. Wersja 1.0.0-alpha09 zawiera te commity.

Zmiany w interfejsie API

  • Dodaj interfejs ReusableComposition do zarządzania cyklem życia i ponownego używania podkompozycji. (I812d1, b/252846775)
  • Zsynchronizuj odgałę tv-foundation z compose-foundation. (I737c3, b/287011882)
  • Dodano przeciążenie funkcji LazyLayout, która przyjmuje lambda LazyLayoutItemProvider, a nie zwykły obiekt, jak to było wcześniej. Poprzednia wersja funkcji overload została wycofana. (I42a5a)
  • Dodaj TvKeyboardAlignment, aby umożliwić deweloperowi skonfigurowanie pozycji klawiatury ekranowej za pomocą AndroidImeOptions. (Idb772)
  • Dodaj rememberCarouselState, aby zapamiętać CarouselState z Saver do materiału do tworzenia reklam w TV. (Id7275)
  • Zmień parametr scrimColor: Color na parametr scrimBrush:Brush, aby umożliwić użytkownikom dodawanie gradientów do sceny początkowej. (I254d4)

Wersja 1.0.0-alpha08

26 lipca 2023 r.

androidx.tv:tv-foundation:1.0.0-alpha08androidx.tv:tv-material:1.0.0-alpha08 są dostępne. Wersja 1.0.0-alpha08 zawiera te zatwierdzenia.

Nowe funkcje

  • Wprowadzenie komponentów typu element do komponowania w przypadku materiałów na potrzeby Compose for TV (I86da4)
  • Dodaj komponent ListItem do materiału w edytorze TV. (I3f0b3)
  • Dodaj komponent DenseListItem do materiału w edytorze TV. (I536bf)

Zmiany w interfejsie API

  • Oznaczyliśmy publiczne interfejsy tv-material jako eksperymentalne. (I632e7)
  • Wprowadziliśmy TabRowScope, aby udostępniać stan z komponowalnych elementów TabRow w komponowalnym elemencie karty, oraz zmienić nazwę właściwości TabColors. (Ief587)

Wersja 1.0.0-alpha07

7 czerwca 2023 r.

androidx.tv:tv-foundation:1.0.0-alpha07androidx.tv:tv-material:1.0.0-alpha07 są dostępne. Wersja 1.0.0-alpha07 zawiera te commity.

Zmiany w interfejsie API

  • Wskaźniki skali komponentów obejmują teraz opcję Brak, która umożliwia wyłączenie skalowania. (I50df5)
  • Dodano obsługę długiego kliknięcia w przypadku interfejsu Material Surface, kart i przycisków na telewizorze. (Id2b89)
  • Zasoby CarouselItemCarouselScope zostały usunięte. Animację treści na pierwszym planie można uzyskać na slajdzie, używając Modifier.animateEnterExit z AnimatedContentScope. (Ic038e)
  • Złączone parametry color i contentColor jako colors dla powierzchni materiału na potrzeby telewizji. (Ie69eb)
  • Wprowadziliśmy komponent RadioButton w Material TV. (I08690)
  • Wprowadziliśmy komponent Switch w Material TV. (I45e29)
  • Wprowadziliśmy komponent Checkbox w Material TV. (I6a45a)
  • Wprowadziliśmy w materiałach na potrzeby telewizji powierzchnię, z którą nie można wchodzić w interakcję. (Ic5f85)
  • Ustaw na wewnętrzne. (Ibff82)

Wersja 1.0.0-alpha06

19 kwietnia 2023 r.

androidx.tv:tv-foundation:1.0.0-alpha06androidx.tv:tv-material:1.0.0-alpha06 są dostępne. Wersja 1.0.0-alpha06 zawiera te commity.

Nowe funkcje

  • Dodaj implementacje karty Material 3 zoptymalizowane pod kątem telewizorów.
    • Karta podstawowa (I5b701)
    • ClassicCard, CompactCardWideClassicCard (I70471)
    • StandardCardLayoutWideCardLayout (I33fae)
  • Dodaj implementacje przycisku Material 3 zoptymalizowane pod kątem telewizorów.
    • Podstawowy przycisk (I69c11)
    • IconButtonOutlinedIconButton (Ib504c)
    • WideButton (I4cecf)

Zmiany w interfejsie API

  • Zmieniono nazwy CarouselSlideslideCountCarousel na CarouselItemitemCount. (Ie554c)
  • Zmieniono nazwy forwardbackward ContentTransforms na StartToEndEndToStart. (Ie554c)

Poprawki błędów

  • Obsługa przycisku Wstecz na panelu kierunkowym, gdy kursor jest ustawiony na NavigationDrawer. (d654f4)

Wersja 1.0.0-alpha05

22 marca 2023 r.

androidx.tv:tv-foundation:1.0.0-alpha05androidx.tv:tv-material:1.0.0-alpha05 są dostępne. Wersja 1.0.0-alpha05 zawiera te commity.

Zmiany w interfejsie API

  • Przedstawiamy panel nawigacji bocznej, który można dodać do tv-material. Aby dowiedzieć się, jak korzystać z tej usługi, zapoznaj się z przykładami. (I12c08)
  • Wprowadzenie komponentu Icon w TV Material 3 (I72db9)
  • Wprowadzamy komponent powierzchni do tv-material z wskazaniami takimi jak obramowanie, poświata i skala, które można wykorzystać do tworzenia komponentów wyraźnie wyróżniających element skupienia na ekranie telewizora. (I4a6d8), (Iceea1), (Iee4d4), (I79edf), (Icb376)
  • Zmień wartość CarouselItem na CarouselSlide, aby pasowała do nazwy parametru slideCount w interfejsie API „Carousel” (Ic4299)

Wersja 1.0.0-alpha04

8 lutego 2023 r.

androidx.tv:tv-foundation:1.0.0-alpha04androidx.tv:tv-material:1.0.0-alpha04 są dostępne. Wersja 1.0.0-alpha04 zawiera te commity.

Nowe funkcje

  • W nieaktywnych wierszach, kolumnach i siatkach, w razie potrzeby, przesłona jest zastępowana, aby zapewnić widoczność całego elementu. (11d7e40)
  • Dodaj możliwość dostosowywania kolorów kart w różnych stanach. (21b2925)
  • Karuzela obsługuje teraz niestandardowe animacje do ręcznego przewijania do przodu i do tyłu. (431494a)

Zmiany w interfejsie API

  • Zmień nazwę androidx.tv.material na androidx.tv.material3 i spłaszcz strukturę pakietu w ramach androidx.tv.material3. (I6ca52)
  • Wskaźnik w wierszu wskaźnika w karuzeli to teraz miejsce, które deweloper może dostosować. (268af2a)
  • Nazwa focusableItem została zmieniona na immersiveListItem. Użytkownicy będą musieli ręcznie dodać modyfikator focusable() lub clickable() wraz z immersiveListItem (5dd5078)(b/263061052)
  • Zmieniono nazwę timeToDisplayMillis na autoScrollDurationMillis w komponencie Karuzela. (431494a)
  • Aplikacja CarouselItem jest teraz dostępna tylko w ramach Carousel. (431494a)
  • Karuzelę można teraz definiować za pomocą animacji ContentTransforms zamiast animacji EnterTransition i ExitTransitions. (431494a)
  • Wprowadziliśmy interfejs PinnableContainer propagowany przez listy opóźnione za pomocą składu lokalnego, który umożliwia przypięcie bieżącego elementu. (Ib8881, b/259274257, b/195049010)
  • Dodano właściwość mainAxisItemSpacing do kampanii TvLazyListLayoutInfo i TvLazyGridLayoutInfo (I37765).

Poprawki błędów

  • Zaktualizuj wiersz tab-row, aby zapewnić prawidłowe działanie funkcji tab-count, gdy jej wartość wynosi 0 lub 1. (I44009), (1c01525), (b/264018028)
  • Naprawiono problem z awarią wyszukiwania w trybie fokusowania, gdy TvLazyColumn zawiera pustą wartość TvLazyRow. (e11b4fe), (b/260299091)
  • Modyfikator clickable działa teraz z ImmersiveList. (5dd5078), (b/263061052)
  • Klawisz Wstecz jest teraz obsługiwany i używany do zamykania karuzeli z polecanymi treściami. (84c138c)
  • Karuzelę nie traci skupienia po wielokrotnym szybkim naciśnięciu klawiszy. (799489f)
  • Karuzela nie traci fokusu po długim naciśnięciu klawisza. (b2cf37e)
  • Usunięto problemy z zawieszaniem się aplikacji, gdy zmienia się liczba slajdów w karuzeli. (b261247)

Wersja 1.0.0-alpha03

7 grudnia 2022 r.

androidx.tv:tv-foundation:1.0.0-alpha03androidx.tv:tv-material:1.0.0-alpha03 są dostępne. Wersja 1.0.0-alpha03 zawiera te commity.

Nowe funkcje

  • TabRow jest teraz dostępny jako eksperymentalny interfejs API, który umożliwia użytkownikom dodawanie do aplikacji górnych pasków nawigacyjnych. Zasadniczo urządzenia telewizyjne oczekują, że karty będą się wczytywać, gdy tytuł karty będzie zaznaczony w wierszu kart.
  • Wskaźniki dla telewizorów, takie jak podkreślenie i prywatność, są dostępne domyślnie. Przykładowe zastosowania znajdziesz w pliku tv-samples.

Wersja 1.0.0-alpha02

9 listopada 2022 r.

androidx.tv:tv-foundation:1.0.0-alpha02androidx.tv:tv-material:1.0.0-alpha02 są dostępne. Wersja 1.0.0-alpha02 zawiera te commity.

Poprawki błędów

  • Zwiększona wydajność przewijania podczas przeglądania kolekcji TvLazyRows/TvLazyColumns dzięki zmniejszeniu obszaru wyszukiwania fokusa (I723a3).

Wersja 1.0.0-alpha01

5 października 2022 r.

androidx.tv:tv-foundation:1.0.0-alpha01androidx.tv:tv-material:1.0.0-alpha01 są dostępne. Wersja 1.0.0-alpha01 zawiera te commity.

Nowe funkcje

Pierwsza wersja alfa zawiera wczesne wersje podglądu komponentów do zastosowań na telewizorach, w tym:

  • Dodanie modyfikatora scrollableWithPivot, aby umożliwić kontenerom z przewijaniem innym niż Lazy Scrolling (np. Row, Column, Grid) przewijanie treści w taki sposób, aby element w centrum uwagi pozostawał w tej samej pozycji na ekranie telewizora.
  • Dodanie komponentów TvLazyRow,TvLazyColumn, TvLazyHorizontalGrid, TvLazyVerticalGrid, aby kontener przewijał treści, dzięki czemu element w centrum uwagi pozostanie w tej samej pozycji na ekranie telewizora.
  • Dodanie modułu karuzeli polecanych na potrzeby telewizji, który umożliwia użytkownikowi tworzenie karuzeli banerów z automatycznym przewijaniem.
  • Dodanie komponentu listy panoramicznej na potrzeby telewizorów, który umożliwia użytkownikowi tworzenie panoramicznych wierszy, kolumn lub siatek, które zmieniają tło w zależności od elementu listy znajdującego się w centrum uwagi.

Znane problemy

  • Gdy kontener przewijania staje się aktywny, pierwszy element nie staje się domyślnie aktywny.
  • Skupienie się na elemencie TextField nie zawsze powoduje otwarcie klawiatury lub może uniemożliwić przeniesienie punktu skupienia na inne pola.
  • Przewijanie w pionie w elementach LazyColumn zawierających elementy LazyRows jest mało efektywne.