tv
Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja Beta | Wersja alfa |
---|---|---|---|---|
16 lipca 2025 r. | 1.0.1 | - | - | 1.1.0-alpha01 |
Deklarowanie zależności
Aby dodać zależności od bibliotek tv-foundation i tv-material, musisz dodać repozytorium Google Maven do projektu. Więcej informacji znajdziesz w 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-alpha12" implementation "androidx.tv:tv-material:1.1.0-alpha01" }
Kotlin
dependencies { implementation("androidx.tv:tv-foundation:1.0.0-alpha12") implementation("androidx.tv:tv-material:1.1.0-alpha01") }
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 nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.
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-alpha01
15 stycznia 2025 r.
Zostanie wycofaneandroidx.tv:tv-material:1.1.0-alpha01
Wersja 1.1.0-alpha01 zawiera te zmiany.
Zmiany w interfejsie API
- Zmień
FocusEnterExitScope.cancelFocus()
nacancelFocusChange()
(I89959) FocusProperties.enter
iFocusProperties.exit
zostały zastąpione odpowiednio przezonEnter
ionExit
, które używają zakresu odbiorcy zamiast parametruFocusDirection
. (I6e667)
Poprawki błędów
- Przeniesiono
CompositingStrategy.OffScreen
z powierzchni do tekstu, aby naprawić drgania tekstu podczas skalowania. (I92b15f17) - Naprawiono nieprawidłowe zarządzanie ostrością w karuzeli (Ie508b721375)
- W porównaniu z interaktywnymi powierzchniami powierzchnia (nieinteraktywna) ma uproszczoną implementację. (I7ea545150)
Tv-Material Version 1.0
Wersja 1.0.1
16 lipca 2025 r.
Zostanie wycofaneandroidx.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 komponentu Surface do komponentu 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.
Zostanie wycofaneandroidx.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.
Zostanie wycofaneandroidx.tv:tv-material:1.0.0-rc02
Wersja 1.0.0-rc02 zawiera te zmiany.
Poprawki błędów
- Naprawiliśmy drganie animacji tekstu w komponowalnym komponencie Surface. (3163319)
Wersja 1.0.0-rc01
10 lipca 2024 r.
Zostanie wycofaneandroidx.tv:tv-material:1.0.0-rc01
Wersja 1.0.0-rc01 zawiera te commity.
Wersja 1.0.0-beta01
1 maja 2024 r.
Zostanie wycofaneandroidx.tv:tv-material:1.0.0-beta01
Wersja 1.0.0-beta01 zawiera te zmiany.
Zmiany w interfejsie API
- Interfejs
ColorScheme
i jego funkcje pomocnicze 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)
- Zmieniono nazwę
NonInteractiveSurfaceDefaults
naSurfaceDefaults
iNonInteractiveSurfaceColors
naSurfaceColors
(I0812e) - W przypadku powierzchni, które można wybrać, używamy teraz terminu „wybierz” zamiast „zaznacz”, ponieważ mają one różne znaczenia semantyczne (I5a206).
NavigationDrawer
iNavigationDrawerScope
są teraz stabilne (I249c1)- Komponent
NavigationDrawerItem
jest teraz stabilny (Id6986) - Komponenty Tab i
TabRow
są teraz stabilne (I92d92) - Komponenty
Button
,OutlinedButton
,IconButton
,OutlinedIconButton
iWideButton
są teraz stabilne (Ib4de8) - Komponenty
Card
,ClassicCard
,CompactCard
,WideClassicCard
,StandardCardContainer
iWideCardContainer
są już stabilne (I34390) - Zmieniono nazwę
StandardCardLayout
naStandardCardContainer
iWideCardLayout
naWideCardContainer
(I08883) - Usunięto element
CardContainerDefaults.ImageCard
, a elementCardDefaults.ContainerGradient
zmieniono naCardDefaults.ScrimBrush
(I6adfe). W kontenerach kart możesz używać elementuCard
zamiastCardContainerDefaults.ImageCard
. ListItem
iDenseListItem
są teraz stabilne (Idebd9)ListItemDefaults.ListItemShape
,ListItemDefaults.FocusedDisabledBorder
iListItemDefaults.SelectedContainerColorOpacity
są teraz prywatne (I5d533)- Zmieniliśmy kolejność parametrów
ListItem
i zmieniliśmy nazwę parametruListItemDefaults.ListItemElevation
naListItemDefaults.TonalElevation
(Id6841). ParametrheadlineContent
został przeniesiony na górę funkcji kompozycyjnej. Wcześniej można było użyć składni lambdy końcowej w Kotlinie, aby przekazać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 wartość
MutableInteractionSource
, zostały zaktualizowane, aby udostępniać wartośćMutableInteractionSource
z możliwością przypisania wartości null, która domyślnie ma wartość null. Nie ma tu żadnych zmian semantycznych: przekazanie wartości null oznacza, że nie chcesz podnosićMutableInteractionSource
, a w razie potrzeby zostanie on utworzony w komponencie. Ustawienie wartości null powoduje, że niektóre komponenty nigdy nie przydzielająMutableInteractionSource
, a inne tworzą instancję tylko wtedy, gdy jest to potrzebne, co zwiększa wydajność tych komponentów. Jeśli nie używasz elementuMutableInteractionSource
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
,Hyphens
iLineBreak
wParagraphTextStyle
, aby zastąpić (I4197e, b/299490814)
Zmiany w działaniu
- Wartość domyślna parametru
shape
dla nieinteraktywnychSurface
została zmieniona naRectangleShape
(I1b859cb) - Niektóre funkcje karuzeli zostały wycofane w wersji beta, ponieważ niezbędne interfejsy API są eksperymentalne (I0e755d4).
- Zmiana wartości
contentColor
w przypadku elementuSurface
nie powoduje już animacji między stanami (I436e794f).
Wersja 1.0.0
Wersja 1.0.0-alpha12
15 stycznia 2025 r.
Zostanie wycofaneandroidx.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.
Zostanie wycofaneandroidx.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 leniwej wersji układu na telewizorze, 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
androidx.tv:tv-foundation:1.0.0-alpha10
i androidx.tv:tv-material:1.0.0-alpha10
zostały opublikowane. Wersja 1.0.0-alpha10 zawiera te zmiany.
Nowe funkcje
- Wprowadzono
NavigationDrawerItem
do użytku wNavigationDrawer
iModalNavigationDrawer
. (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
naNavigationDrawerScope.hasFocus
. (I8286b) - Zmieniono nazwę
TabRowScope.isActivated
naTabRowScope.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 wyświetlanie półprzezroczystej nakładki 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.
androidx.tv:tv-foundation:1.0.0-alpha09
i androidx.tv:tv-material:1.0.0-alpha09
zostały opublikowane. Wersja 1.0.0-alpha09 zawiera te zmiany.
Zmiany w interfejsie API
- Dodanie interfejsu
ReusableComposition
do zarządzania cyklem życia i ponownym wykorzystywaniem podkompozycji. (I812d1, b/252846775) - Zsynchronizuj rozwidlenie tv-foundation z compose-foundation. (I737c3, b/287011882)
- Przeciążenie
LazyLayout
zostało dodane i akceptuje funkcję lambdaLazyLayoutItemProvider
, a nie zwykły obiekt, jak to było 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
nascrimBrush:Brush
, aby umożliwić użytkownikom dodawanie gradientów do warstwy. (I254d4)
Wersja 1.0.0-alpha08
26 lipca 2023 r.
androidx.tv:tv-foundation:1.0.0-alpha08
i androidx.tv:tv-material:1.0.0-alpha08
zostały opublikowane. Wersja 1.0.0-alpha08 zawiera te zmiany.
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 dotyczące materiałów telewizyjnych jako eksperymentalne. (I632e7)
- Wprowadzono
TabRowScope
, aby udostępniać stan z funkcji kompozycyjnejTabRow
funkcji kompozycyjnej Tab, i zmieniono nazwy właściwościTabColors
. (Ief587)
Wersja 1.0.0-alpha07
7 czerwca 2023 r.
androidx.tv:tv-foundation:1.0.0-alpha07
i androidx.tv:tv-material:1.0.0-alpha07
zostały opublikowane. Wersja 1.0.0-alpha07 zawiera te zmiany.
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, kart i przycisków Material Design na telewizorach. (Id2b89)
- Usunięto elementy
CarouselItem
iCarouselScope
. Animację treści na pierwszym planie można uzyskać na slajdzie, używającModifier.animateEnterExit
zAnimatedContentScope
. (Ic038e) - Połączono parametry
color
icontentColor
w parametrcolors
na potrzeby powierzchni reklamowej w treściach telewizyjnych. (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.
androidx.tv:tv-foundation:1.0.0-alpha06
i androidx.tv:tv-material:1.0.0-alpha06
zostały opublikowane. Wersja 1.0.0-alpha06 zawiera te zmiany.
Nowe funkcje
- Dodanie implementacji kart Material 3 zoptymalizowanych pod kątem telewizorów.
- Dodaj implementacje przycisków Material 3 zoptymalizowane pod kątem telewizorów.
Zmiany w interfejsie API
- Zmieniono nazwy
CarouselSlide
islideCount
wCarousel
naCarouselItem
iitemCount
. (Ie554c) - Zmieniono nazwy
forward
ibackward
ContentTransforms
naStartToEnd
iEndToStart
. (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.
androidx.tv:tv-foundation:1.0.0-alpha05
i androidx.tv:tv-material:1.0.0-alpha05
zostały opublikowane. Wersja 1.0.0-alpha05 zawiera te zmiany.
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 composable w
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 element, na którym skupia się uwaga na ekranie telewizora. (I4a6d8), (Iceea1), (Iee4d4), (I79edf), (Icb376) - Zaktualizuj
CarouselItem
naCarouselSlide
, aby dopasować nazwę parametruslideCount
w interfejsie API „Karuzela” (Ic4299)
Wersja 1.0.0-alpha04
8 lutego 2023 r.
androidx.tv:tv-foundation:1.0.0-alpha04
i androidx.tv:tv-material:1.0.0-alpha04
zostały opublikowane. Wersja 1.0.0-alpha04 zawiera te zmiany.
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 ręcznego w przód i w tył. (431494a)
Zmiany w interfejsie API
- Zmiana nazwy
androidx.tv.material
naandroidx.tv.material3
i spłaszczenie struktury pakietu wandroidx.tv.material3
. (I6ca52) - Wskaźnik w wierszu wskaźnika karuzeli jest teraz miejscem, które deweloper może dostosować. (268af2a)
- Zmieniono nazwę
focusableItem
naimmersiveListItem
. Użytkownicy będą musieli ręcznie dodać modyfikatorfocusable()
lubclickable()
wraz zimmersiveListItem
(5dd5078)(b/263061052) - Zmieniono nazwę
timeToDisplayMillis
naautoScrollDurationMillis
w komponencie Karuzela. (431494a) - Usługa
CarouselItem
jest teraz ograniczona do użytku w ramachCarousel
. (431494a) - Karuzela akceptuje teraz
ContentTransforms
jako definicję animacji zamiastEnterTransition
iExitTransitions
. (431494a) - Wprowadzono interfejs API
PinnableContainer
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 usługTvLazyListLayoutInfo
iTvLazyGridLayoutInfo
(I37765)
Poprawki błędów
- Zaktualizuj wiersz kart, aby prawidłowo obsługiwał liczbę kart równą 0 lub 1. (I44009), (1c01525), (b/264018028)
- Rozwiązanie problemu z awarią wyszukiwania po zaznaczeniu, gdy
TvLazyColumn
zawiera pusty elementTvLazyRow
. (e11b4fe), (b/260299091) - Modyfikator
clickable
działa teraz zImmersiveList
. (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.
androidx.tv:tv-foundation:1.0.0-alpha03
i androidx.tv:tv-material:1.0.0-alpha03
zostały opublikowane. Wersja 1.0.0-alpha03 zawiera te zmiany.
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.
androidx.tv:tv-foundation:1.0.0-alpha02
i androidx.tv:tv-material:1.0.0-alpha02
zostały opublikowane. Wersja 1.0.0-alpha02 zawiera te zmiany.
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.
androidx.tv:tv-foundation:1.0.0-alpha01
i androidx.tv:tv-material:1.0.0-alpha01
zostały opublikowane. Wersja 1.0.0-alpha01 zawiera te zmiany.
Nowe funkcje
Pierwsza wersja alfa zawiera wczesne implementacje komponentów do zastosowań telewizyjnych, w tym:
- Dodanie modyfikatora
scrollableWithPivot
, aby umożliwić kontenerom przewijania bez leniwego ładowania, 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 (Karuzela z wyróżnionymi treściami) na telewizor, który umożliwia użytkownikowi utworzenie 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, które zmieniają tło w zależności od elementu listy, na którym jest fokus.
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 elementLazyRows
działa słabo.