tv

  
Zapewnia programistom funkcje Compose i Material Design, które umożliwiają pisanie aplikacji na telewizory.
Najnowsza aktualizacja Wersja stabilna Wersja kandydująca do publikacji Wersja beta Wersja alfa
8 kwietnia 2026 r. 1.0.1 - 1.1.0-beta01 -

Deklarowanie zależności

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

Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:

Odlotowe

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

Kotlin

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

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

Opinia

Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz oddać głos na istniejący problem, klikając przycisk gwiazdki.

Tworzenie nowego problemu

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

Brak informacji o wersji tego artefaktu.

Tv-Material Version 1.1

Wersja 1.1.0-rc01

8 kwietnia 2026 r.

Publikacja androidx.tv:tv-material:1.1.0-rc01 Wersja 1.1.0-rc01 zawiera te zmiany.

Wersja 1.1.0-beta01

11 marca 2026 r.

Publikacja androidx.tv:tv-material:1.1.0-beta01 Wersja 1.1.0-beta01 zawiera te zmiany.

Zmiany w interfejsie API

  • Projekty wydane w Kotlinie 2.0 wymagają użycia KGP 2.0.0 lub nowszego (Idb6b5, b/344563182).

Wkład zewnętrzny

  • androidx.compose.ui.graphics.NativePaint typealias został wycofany. Zamiast niego używaj bezpośrednio android.graphics.Paint (I6303c, b/477394763)
  • Zastąp rozszerzenie Paint.asFrameworkPaint() na Paint.nativePaint, aby uniknąć ujawniania typu platformy w commonMain sourceset za pomocą typealias (I6303c, b/477394763)

Wersja 1.1.0-alpha01

15 stycznia 2025 r.

Publikacja androidx.tv:tv-material:1.1.0-alpha01 Wersja 1.1.0-alpha01 zawiera te zmiany.

Zmiany w interfejsie API

  • Zmień słowo FocusEnterExitScope.cancelFocus() na cancelFocusChange()(I89959)
  • FocusProperties.enterFocusProperties.exit zostały zastąpione odpowiednio przez onEnteronExit, które używają zakresu odbiorcy zamiast parametru FocusDirection. (I6e667)

Poprawki błędów

  • Przeniesiono CompositingStrategy.OffScreen z powierzchni do tekstu, aby naprawić drgania tekstu podczas skalowania. (I92b15f17)
  • Naprawiono nieprawidłowe zarządzanie skupieniem uwagi w karuzeli (Ie508b721375)
  • W porównaniu z interaktywnymi powierzchniami implementacja powierzchni (nieinteraktywnej) jest prostsza. (I7ea545150)

Tv-Material Version 1.0

Wersja 1.0.1

16 lipca 2025 r.

Publikacja androidx.tv:tv-material:1.0.1 Wersja 1.0.1 zawiera te zmiany.

Poprawki błędów

  • Zaktualizowano wysokość NavigationDrawerItem, aby była zgodna ze specyfikacją. (cf9a3ce)
  • Przeniesiono konfigurację strategii kompozycji z funkcji kompozycyjnej Surface do funkcji kompozycyjnej Text. Rozwiązuje to problem, w którym odtwarzacz ExoPlayer nie renderował się w komponentach Surface w starszych wersjach interfejsu API Androida. (9858ffb)

Wersja 1.0.0

21 sierpnia 2024 r.

Publikacja androidx.tv:tv-material:1.0.0 Wersja 1.0.0 to pierwsza stabilna wersja androidx.tv:tv-material.

Wersja 1.0.0-rc02

7 sierpnia 2024 r.

Publikacja androidx.tv:tv-material:1.0.0-rc02 Wersja 1.0.0-rc02 zawiera te zmiany.

Poprawki błędów

  • Naprawiliśmy drgania animacji tekstu w kompozycji Surface. (3163319)

Wersja 1.0.0-rc01

10 lipca 2024 r.

Publikacja androidx.tv:tv-material:1.0.0-rc01 Wersja 1.0.0-rc01 zawiera te zmiany.

Wersja 1.0.0-beta01

1 maja 2024 r.

Publikacja androidx.tv:tv-material:1.0.0-beta01 Wersja 1.0.0-beta01 zawiera te zmiany.

Zmiany w interfejsie API

  • Interfejs ColorScheme i jego funkcje narzędziowe są już stabilne. (If34fa)
  • LocalContentColor jest teraz stabilny (I60ee2)
  • Typography Interfejs API jest już stabilny (I088d6)
  • Interfejsy API kształtów są teraz stabilne (I0f5f4)
  • Interfejs Border API jest już stabilny (I69281)
  • Interfejs Glow API jest już stabilny (Iea5f1)
  • Komponent ikony jest już stabilny (I62c2d)
  • LocalTextStyles Interfejs API jest już stabilny (Iaded8)
  • MaterialTheme Interfejs API jest już stabilny (I2f541)
  • Komponent tekstowy jest teraz stabilny (Ib9e31)
  • Komponent RadioButton jest teraz stabilny (Ia03c8)
  • Komponent przełącznika jest już stabilny (I6cea3)
  • Komponenty Checkbox są teraz stabilne (I7eafc)
  • Komponenty interfejsu są teraz stabilne (I58758, I04aca)
  • Zmiana nazwy NonInteractiveSurfaceDefaults na SurfaceDefaultsNonInteractiveSurfaceColors na SurfaceColors (I0812e)
  • W przypadku platform, które można wybrać, używamy teraz terminu „wybierz” zamiast „zaznacz”, ponieważ mają one inne znaczenie semantyczne (I5a206).
  • Wersje NavigationDrawer i NavigationDrawerScope są już stabilne (I249c1)
  • Komponent NavigationDrawerItem jest teraz stabilny (Id6986)
  • Komponenty Tab i TabRow są teraz stabilne (I92d92)
  • Komponenty Button, OutlinedButton, IconButton, OutlinedIconButtonWideButton są już stabilne (Ib4de8)
  • Komponenty Card, ClassicCard, CompactCard, WideClassicCard, StandardCardContainerWideCardContainer są już stabilne (I34390)
  • Zmieniono nazwę StandardCardLayout na StandardCardContainerWideCardLayout na WideCardContainer (I08883)
  • Usunięto interfejs CardContainerDefaults.ImageCard i zmieniono nazwę interfejsu CardDefaults.ContainerGradient na CardDefaults.ScrimBrush (I6adfe). W kontenerach kart możesz używać Card zamiast CardContainerDefaults.ImageCard.
  • ListItemDenseListItem są teraz stabilne (Idebd9)
  • ListItemDefaults.ListItemShape, ListItemDefaults.FocusedDisabledBorderListItemDefaults.SelectedContainerColorOpacity są teraz prywatne (I5d533)
  • Zmieniliśmy kolejność parametrów ListItem i zmieniliśmy nazwę parametru ListItemDefaults.ListItemElevation na ListItemDefaults.TonalElevation (Id6841). Parametr headlineContent został przeniesiony na górę funkcji kompozycyjnej. Wcześniej można było używać składni lambdy końcowej w Kotlinie, aby przekazywać headlineContent. Teraz musisz użyć składni nazwanego parametru, aby podać headlineContent.
  • LocalAbsoluteTonalElevation jest teraz wewnętrzny (Ibfc65)
  • Komponent ImmersiveList został usunięty. Aby dowiedzieć się, jak to zrobić, zapoznaj się z tym przykładem. (Id48da)
  • Komponenty tv-material, które w swoim interfejsie API udostępniały MutableInteractionSource, zostały zaktualizowane, aby udostępniać MutableInteractionSource z możliwością wartości null, która domyślnie ma wartość null. Nie ma tu żadnych zmian semantycznych: przekazanie wartości null oznacza, że nie chcesz przenosić elementu MutableInteractionSource, a w razie potrzeby zostanie on utworzony w komponencie. Zmiana na wartość null umożliwia niektórym komponentom nigdy nieprzydzielanie MutableInteractionSource, a innym komponentom tworzenie instancji tylko wtedy, gdy jest to potrzebne, co zwiększa wydajność tych komponentów. Jeśli nie używasz elementu MutableInteractionSource przekazywanego do tych komponentów, zalecamy przekazywanie zamiast niego wartości null. Zalecamy też wprowadzenie podobnych zmian we własnych komponentach. (I309b4, b/298048146)
  • Parametr TextAlign komponentu TV Text nie może już mieć wartości null (Ib73b1, b/299490814)
  • Wprowadziliśmy specjalną wartość „Nieokreślono” w polach TextAlign, TextDirection, HyphensLineBreakParagraphTextStyle, aby zastąpić (I4197e, b/299490814)

Zmiany w działaniu

  • Wartość domyślna parametru shape dla nieinteraktywnych Surface została zmieniona na RectangleShape (I1b859cb)
  • Niektóre funkcje karuzeli zostały wycofane w wersji beta, ponieważ niezbędne interfejsy API są eksperymentalne (I0e755d4).
  • Zmiana wartości contentColorSurface nie powoduje już animacji między stanami (I436e794f)

Wersja 1.0.0

Wersja 1.0.0-rc01

8 kwietnia 2026 r.

Publikacja androidx.tv:tv-foundation:1.0.0-rc01 Wersja 1.0.0-rc01 zawiera te zmiany.

Wersja 1.0.0-beta01

11 marca 2026 r.

Publikacja androidx.tv:tv-foundation:1.0.0-beta01 Wersja 1.0.0-beta01 zawiera te zmiany.

Zmiany w interfejsie API

  • Projekty wydane w Kotlinie 2.0 wymagają użycia KGP 2.0.0 lub nowszego (Idb6b5, b/344563182).

Wersja 1.0.0-alpha12

15 stycznia 2025 r.

Publikacja androidx.tv:tv-foundation:1.0.0-alpha12 Wersja 1.0.0-alpha12 zawiera te zmiany.

Zmiany w interfejsie API

  • Usuwanie leniwych układów z tv-foundation. Aby przeprowadzić migrację z leniwych układów tv-foundation, zapoznaj się z informacjami o wersji 1.0.0-alpha11. (I2fdd3, b/358913893)

Wersja 1.0.0-alpha11

10 lipca 2024 r.

Publikacja androidx.tv:tv-foundation:1.0.0-alpha11 Wersja 1.0.0-alpha11 zawiera te zmiany.

Zmiany w interfejsie API

  • Funkcja Tv Lazy Layouts została wycofana z biblioteki tv-foundation. Aby dowiedzieć się, jak zrezygnować z leniwych układów na telewizorach, zapoznaj się z tym zgłoszeniem. (I0855f, b/332674072)
  • PlatformImeOptions jest teraz klasą konkretną, a nie interfejsem. (If40a4)

Wersja 1.0.0-alpha10

4 października 2023 roku

Publikacje androidx.tv:tv-foundation:1.0.0-alpha10androidx.tv:tv-material:1.0.0-alpha10 Wersja 1.0.0-alpha10 zawiera te zatwierdzenia.

Nowe funkcje

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

Zmiany w interfejsie API

  • Zmieniono nazwę NavigationDrawerScope.doesTabRowHaveFocus na NavigationDrawerScope.hasFocus. (I8286b)
  • Zmieniono nazwę TabRowScope.isActivated na TabRowScope.hasFocus. (Ic4273)

Poprawki błędów

  • Poprawia zgodność karuzeli z sąsiednimi elementami, które korzystają z interfejsów API przywracania fokusu. (7b2a7a4)
  • Wyłącz wskaźnik świecenia dla API_LEVEL poniżej 28, ponieważ nie jest on obsługiwany przez system operacyjny. (6d3616f)
  • Naprawiono błąd ANR spowodowany nieprawidłowym umieszczeniem elementu w kontenerach ładowanych na żądanie podczas szybkiego przewijania w kierunku przeciwnym. (642d65c)
  • Usunięto dopełnienie tła w panelu nawigacyjnym okna modalnego. (69965b2)
  • Poprawiono rysowanie warstwy przyciemniającej w panelu nawigacji, aby była rysowana nad treścią w tle, a nie za nią. (d4bbefb)

Wersja 1.0.0-alpha09

6 września 2023 r.

Publikacje androidx.tv:tv-foundation:1.0.0-alpha09androidx.tv:tv-material:1.0.0-alpha09 Wersja 1.0.0-alpha09 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodaj interfejs ReusableComposition do zarządzania cyklem życia i ponownym wykorzystywaniem podkompozycji. (I812d1, b/252846775)
  • Zsynchronizuj fork tv-foundation z compose-foundation. (I737c3, b/287011882)
  • Przeciążenie LazyLayout akceptuje teraz lambdę LazyLayoutItemProvider, a nie zwykły obiekt, jak wcześniej. Poprzednie przeciążenie zostało wycofane. (I42a5a)
  • Dodaj TvKeyboardAlignment, aby umożliwić deweloperowi skonfigurowanie pozycji klawiatury ekranowej za pomocą AndroidImeOptions. (Idb772)
  • Dodaj rememberCarouselState, aby zapamiętać CarouselState za pomocą Saver w komponencie TV Compose Material. (Id7275)
  • Zmiana parametru scrimColor: Color na scrimBrush:Brush, aby umożliwić użytkownikom dodawanie gradientów do warstwy. (I254d4)

Wersja 1.0.0-alpha08

26 lipca 2023 r.

Publikacje androidx.tv:tv-foundation:1.0.0-alpha08androidx.tv:tv-material:1.0.0-alpha08 Wersja 1.0.0-alpha08 zawiera te zatwierdzenia.

Nowe funkcje

  • Wprowadzenie komponentów Chip dla materiałów Compose na telewizory. (I86da4)
  • Dodaj komponent ListItem do materiału TV Compose. (I3f0b3)
  • Dodaj komponent DenseListItem do materiału TV Compose. (I536bf)

Zmiany w interfejsie API

  • Oznaczyliśmy publiczne interfejsy API materiałów telewizyjnych jako eksperymentalne. (I632e7)
  • Wprowadzono TabRowScope, aby udostępniać stan z funkcji kompozycyjnej TabRow funkcji kompozycyjnej Tab, i zmieniono nazwy właściwości TabColors. (Ief587)

Wersja 1.0.0-alpha07

7 czerwca 2023 r.

Publikacje androidx.tv:tv-foundation:1.0.0-alpha07androidx.tv:tv-material:1.0.0-alpha07 Wersja 1.0.0-alpha07 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Wskazania skali komponentów obejmują teraz opcję Brak, która umożliwia wyłączenie skalowania. (I50df5)
  • Dodano obsługę długiego kliknięcia w przypadku powierzchni Material Surface, kart i przycisków na telewizorze. (Id2b89)
  • Usunięto elementy CarouselItemCarouselScope. Animację treści na pierwszym planie można uzyskać na slajdzie, używając Modifier.animateEnterExit z AnimatedContentScope. (Ic038e)
  • Połączone parametry colorcontentColor jako colors na potrzeby powierzchni reklamowej TV Material Surface. (Ie69eb)
  • Wprowadzono funkcję RadioButton w Material Design na telewizory. (I08690)
  • Wprowadzono funkcję Switch w Material Design na telewizory. (I45e29)
  • Wprowadzono funkcję Checkbox w Material Design na telewizory. (I6a45a)
  • Wprowadzono nieinteraktywną powierzchnię w materiale TV. (Ic5f85)
  • Ustawić wskazania jako wewnętrzne. (Ibff82)

Wersja 1.0.0-alpha06

19 kwietnia 2023 r.

Publikacje androidx.tv:tv-foundation:1.0.0-alpha06androidx.tv:tv-material:1.0.0-alpha06 Wersja 1.0.0-alpha06 zawiera te zatwierdzenia.

Nowe funkcje

  • Dodano implementacje kart Material 3 zoptymalizowane pod kątem telewizorów.
    • Karta podstawowa (I5b701)
    • ClassicCard, CompactCardWideClassicCard (I70471)
    • StandardCardLayoutWideCardLayout (I33fae)
  • Dodaj implementacje przycisków 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 padzie kierunkowym, gdy jest zaznaczony element NavigationDrawer. (d654f4)

Wersja 1.0.0-alpha05

22 marca 2023 r.

Publikacje androidx.tv:tv-foundation:1.0.0-alpha05androidx.tv:tv-material:1.0.0-alpha05 Wersja 1.0.0-alpha05 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Wprowadzamy komponent Side Navigation Drawer, który można umieścić w tv-material. Aby dowiedzieć się, jak korzystać z tego komponentu, zapoznaj się z przykładami. (I12c08)
  • Wprowadzenie komponentu Icon w bibliotece TV Material 3 (I72db9)
  • Wprowadzamy komponent Surface kompozycyjny do tv-material ze wskaźnikami takimi jak Border, Glow i Scale, których można używać do tworzenia komponentów wyraźnie wyróżniających zaznaczony element na ekranie telewizora. (I4a6d8), (Iceea1), (Iee4d4), (I79edf), (Icb376)
  • Zaktualizuj CarouselItem na CarouselSlide, aby dopasować nazwę parametru slideCount w interfejsie API „Karuzela” (Ic4299)

Wersja 1.0.0-alpha04

8 lutego 2023 r.

Publikacje androidx.tv:tv-foundation:1.0.0-alpha04androidx.tv:tv-material:1.0.0-alpha04 Wersja 1.0.0-alpha04 zawiera te zatwierdzenia.

Nowe funkcje

  • W przypadku leniwych wierszy, kolumn i siatek punkt obrotu jest w razie potrzeby zastępowany, aby cały element był widoczny. (11d7e40)
  • Dodaj możliwość dostosowywania kolorów kart w różnych stanach. (21b2925)
  • Karuzela obsługuje teraz niestandardowe animacje przewijania do przodu i do tyłu. (431494a)

Zmiany w interfejsie API

  • Zmiana nazwy androidx.tv.material na androidx.tv.material3 i spłaszczenie struktury pakietu w androidx.tv.material3. (I6ca52)
  • Wskaźnik w wierszu wskaźnika karuzeli jest teraz miejscem, które deweloper może dostosować. (268af2a)
  • Zmieniono nazwę focusableItem 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)
  • Usługa CarouselItem jest teraz ograniczona do użytku w Carousel. (431494a)
  • Karuzela akceptuje teraz ContentTransforms jako definicję animacji zamiast EnterTransitionExitTransitions. (431494a)
  • Wprowadzono interfejs PinnableContainer API propagowany przez leniwe listy za pomocą lokalnego komponentu, który umożliwia przypinanie bieżącego elementu. (Ib8881, b/259274257, b/195049010)
  • Dodano właściwość mainAxisItemSpacing do TvLazyListLayoutInfoTvLazyGridLayoutInfo (I37765)

Poprawki błędów

  • Zaktualizuj wiersz kart, aby prawidłowo obsługiwał liczbę kart równą 0 lub 1. (I44009), (1c01525), (b/264018028)
  • Naprawiono awarię wyszukiwania po zaznaczeniu, gdy TvLazyColumn zawiera pusty element TvLazyRow. (e11b4fe), (b/260299091)
  • Modyfikator clickable działa teraz z ImmersiveList. (5dd5078), (b/263061052)
  • Przycisk Wstecz jest teraz obsługiwany i używany do zamykania karuzeli z wyróżnionymi treściami. (84c138c)
  • Karuzela nie traci fokusu przy wielokrotnym szybkim naciśnięciu klawisza. (799489f)
  • Karuzela nie traci zaznaczenia przy długim naciśnięciu klawisza. (b2cf37e)
  • Rozwiązano problemy z awariami, które występowały, gdy zmieniała się liczba slajdów w karuzeli. (b261247)

Wersja 1.0.0-alpha03

7 grudnia 2022 r.

Publikacje androidx.tv:tv-foundation:1.0.0-alpha03androidx.tv:tv-material:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zatwierdzenia.

Nowe funkcje

  • TabRow jest teraz dostępny jako eksperymentalny interfejs API, który umożliwia dodawanie do aplikacji górnych pasków nawigacyjnych. Zazwyczaj urządzenia TV oczekują, że karty będą się wczytywać, gdy tytuł karty jest zaznaczony w wierszu kart.
  • Wskaźniki specyficzne dla telewizora, takie jak wskaźnik podkreślenia i wskaźnik w formie pigułki, są dostępne od razu. Przykłady użycia znajdziesz w tv-samples.

Wersja 1.0.0-alpha02

9 listopada 2022 r.

Publikacje androidx.tv:tv-foundation:1.0.0-alpha02androidx.tv:tv-material:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.

Poprawki błędów

  • Poprawiono wydajność przewijania kolekcji TvLazyRows/TvLazyColumns przez zmniejszenie przestrzeni wyszukiwania fokusu.(I723a3)

Wersja 1.0.0-alpha01

5 października 2022 r.

Publikacje androidx.tv:tv-foundation:1.0.0-alpha01androidx.tv:tv-material:1.0.0-alpha01 Wersja 1.0.0-alpha01 zawiera te zatwierdzenia.

Nowe funkcje

Pierwsza wersja alfa zawiera wczesne implementacje komponentów do zastosowań na telewizorach, w tym:

  • Dodanie modyfikatora scrollableWithPivot, aby umożliwić kontenerom przewijania bez leniwego przewijania, takim jak Row, Column i Grid, przewijanie treści w taki sposób, aby element w fokusie pozostawał w tym samym miejscu na ekranie telewizora.
  • Dodanie funkcji kompozycyjnych TvLazyRow, TvLazyColumn, TvLazyHorizontalGrid, TvLazyVerticalGrid, aby kontener przewijania przewijał treści tak, aby element w centrum uwagi pozostawał w tym samym miejscu na ekranie telewizora.
  • Dodanie komponentu Featured Carousel, który umożliwia tworzenie automatycznie przewijanej karuzeli banerów.
  • Dodanie komponentu Immersive List na telewizory, który umożliwia użytkownikowi utworzenie wciągającego wiersza, kolumny lub siatki, w których tło zmienia się w zależności od elementu listy, na którym skupia się uwaga.

Znane problemy

  • Gdy kontener przewijania zostanie zaznaczony, pierwszy element nie jest domyślnie zaznaczany.
  • Skupienie się na TextField nie zawsze powoduje otwarcie klawiatury lub może uniemożliwić przeniesienie fokusu na inne pola.
  • Przewijanie w pionie w elemencie LazyColumn zawierającym element LazyRows działa słabo.