TV
| 최근 업데이트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
|---|---|---|---|---|
| 2025년 7월 16일 | 1.0.1 | - | - | 1.1.0-alpha01 |
종속 항목 선언
tv-foundation 및 tv-material의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.
다음과 같이 앱 또는 모듈의 build.gradle 파일에 필요한 아티팩트의 종속 항목을 추가합니다.
Groovy
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") }
종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.
의견
제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.
자세한 내용은 Issue Tracker 문서를 참고하세요.
이 아티팩트의 출시 노트는 없습니다.
Tv-Material 버전 1.1
버전 1.1.0-alpha01
2025년 1월 15일
androidx.tv:tv-material:1.1.0-alpha01이 출시되었습니다. 버전 1.1.0-alpha01에는 이 커밋이 포함되어 있습니다.
API 변경사항
FocusEnterExitScope.cancelFocus()를cancelFocusChange()로 변경(I89959)FocusProperties.enter및FocusProperties.exit이FocusDirection매개변수 대신 수신기 범위를 사용하여 각각onEnter및onExit으로 대체되었습니다. (I6e667)
버그 수정
- 크기 조절 중에 텍스트가 지터링되는 문제를 수정하기 위해
CompositingStrategy.OffScreen를 Surface에서 Text로 이동했습니다. (I92b15f17) - 캐러셀의 깨진 포커스 관리 수정 (Ie508b721375)
- 표면 (비상호작용)은 상호작용 표면에 비해 구현이 간소화되어 있습니다. (I7ea545150)
Tv-Material 버전 1.0
버전 1.0.1
2025년 7월 16일
androidx.tv:tv-material:1.0.1이 출시되었습니다. 버전 1.0.1에는 이 커밋이 포함되어 있습니다.
버그 수정
- 사양과 일치하도록
NavigationDrawerItem의 높이가 업데이트되었습니다. (cf9a3ce) - 컴포지팅 전략 구성이 Surface 컴포저블에서 Text 컴포저블로 이동했습니다. 이 수정사항은 하위 Android API 버전에서 Exoplayer가 Surface 컴포저블에 렌더링되지 않는 버그를 수정합니다. (9858ffb)
버전 1.0.0
2024년 8월 21일
androidx.tv:tv-material:1.0.0이 출시되었습니다. 버전 1.0.0은 androidx.tv:tv-material의 첫 번째 안정화 버전입니다.
버전 1.0.0-rc02
2024년 8월 7일
androidx.tv:tv-material:1.0.0-rc02이 출시되었습니다. 버전 1.0.0-rc02에는 이 커밋이 포함되어 있습니다.
버그 수정
- Surface 컴포저블에서 텍스트 애니메이션이 지터링되는 문제 수정 (3163319)
버전 1.0.0-rc01
2024년 7월 10일
androidx.tv:tv-material:1.0.0-rc01이 출시되었습니다. 버전 1.0.0-rc01에는 이 커밋이 포함되어 있습니다.
버전 1.0.0-beta01
2024년 5월 1일
androidx.tv:tv-material:1.0.0-beta01이 출시되었습니다. 버전 1.0.0-beta01에는 이 커밋이 포함되어 있습니다.
API 변경사항
- 이제
ColorScheme및 유틸리티 함수가 안정화되었습니다. (If34fa) - 이제
LocalContentColor이 안정화되었습니다. (I60ee2) - 이제
TypographyAPI가 안정화되었습니다 (I088d6). - 이제 Shapes API가 안정화되었습니다 (I0f5f4).
- 이제 Border API가 안정화되었습니다 (I69281).
- 이제 Glow API가 안정화되었습니다 (Iea5f1).
- 이제 아이콘 구성요소가 안정화되었습니다 (I62c2d).
- 이제
LocalTextStylesAPI가 안정화되었습니다 (Iaded8). - 이제
MaterialThemeAPI가 안정화되었습니다. (I2f541) - 이제 텍스트 구성요소가 안정화되었습니다 (Ib9e31).
- 이제
RadioButton구성요소가 안정화되었습니다. (Ia03c8) - 스위치 구성요소가 이제 안정화되었습니다 (I6cea3).
- 이제
Checkbox구성요소가 안정화되었습니다 (I7eafc). - 이제 노출 영역 구성요소가 안정화되었습니다. (I58758, I04aca)
NonInteractiveSurfaceDefaults에서SurfaceDefaults로,NonInteractiveSurfaceColors에서SurfaceColors로 이름이 변경되었습니다. (I0812e)- 이제 선택 가능한 노출 영역은 의미가 다른 '선택'과 '확인' 용어 대신 '선택' 용어를 사용합니다. (I5a206)
- 이제
NavigationDrawer및NavigationDrawerScope가 안정화되었습니다. (I249c1) NavigationDrawerItem구성요소가 이제 안정화되었습니다 (Id6986).- 탭 및
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). 카드 컨테이너에서CardContainerDefaults.ImageCard대신Card를 사용할 수 있습니다.- 이제
ListItem및DenseListItem가 안정화되었습니다. (Idebd9) ListItemDefaults.ListItemShape,ListItemDefaults.FocusedDisabledBorder,ListItemDefaults.SelectedContainerColorOpacity가 비공개로 전환됨 (I5d533)ListItem의 매개변수를 재정렬하고ListItemDefaults.ListItemElevation의 이름을ListItemDefaults.TonalElevation로 바꿨습니다 (Id6841).headlineContent매개변수가 컴포저블의 상단으로 이동했습니다. 이전에는 Kotlin의 후행 람다 문법을 사용하여headlineContent를 전달할 수 있었습니다. 이제 명명된 매개변수 구문을 사용하여headlineContent를 제공해야 합니다.- 이제
LocalAbsoluteTonalElevation가 내부로 변경되었습니다 (Ibfc65). ImmersiveList구성요소가 삭제되었습니다. 이 샘플을 확인하여 직접 빌드하는 방법을 알아보세요. (Id48da)- API에서
MutableInteractionSource를 노출하는 tv-material 구성요소가 이제 null로 기본 설정되는 null 허용MutableInteractionSource를 노출하도록 업데이트되었습니다. 여기에는 시맨틱 변경사항이 없습니다. null을 전달하면MutableInteractionSource를 호이스팅하지 않겠다는 의미이며, 필요한 경우 구성요소 내에서 생성됩니다. null로 변경하면 일부 구성요소는MutableInteractionSource를 할당하지 않고 다른 구성요소는 필요할 때만 인스턴스를 지연 생성할 수 있으므로 이러한 구성요소 전반에서 성능이 향상됩니다. 이러한 구성요소에 전달하는MutableInteractionSource를 사용하지 않는 경우 null을 전달하는 것이 좋습니다. 자체 구성요소에서도 유사한 변경사항을 적용하는 것이 좋습니다. (I309b4, b/298048146) - TV 텍스트 구성요소의
TextAlign매개변수가 이제 null이 아닙니다. (Ib73b1, b/299490814) ParagraphTextStyle의TextAlign,TextDirection,Hyphens,LineBreak필드를 대체하기 위해 특별한 Unspecified 값을 도입했습니다. (I4197e, b/299490814)
동작 변경사항
- 비대화형
Surface의shape매개변수 기본값이RectangleShape로 변경되었습니다 (I1b859cb). - 필수 API가 실험용이므로 베타 출시에서 일부 캐러셀 기능이 삭제되었습니다 (I0e755d4).
Surface에서contentColor를 변경해도 더 이상 상태 간에 애니메이션이 적용되지 않음 (I436e794f)
버전 1.0.0
버전 1.0.0-alpha12
2025년 1월 15일
androidx.tv:tv-foundation:1.0.0-alpha12이 출시되었습니다. 버전 1.0.0-alpha12에는 이 커밋이 포함되어 있습니다.
API 변경사항
- tv-foundation에서 지연 로드 레이아웃 정리 tv-foundation 지연 레이아웃에서 벗어나려면 1.0.0-alpha11 출시 노트를 참고하세요. (I2fdd3, b/358913893)
버전 1.0.0-alpha11
2024년 7월 10일
androidx.tv:tv-foundation:1.0.0-alpha11이 출시되었습니다. 버전 1.0.0-alpha11에는 이러한 커밋이 포함되어 있습니다.
API 변경사항
- TV 지연 로드 레이아웃이 tv-foundation 라이브러리에서 지원 중단되었습니다. TV 지연 로드 레이아웃에서 이전하는 방법을 알아보려면 이 티켓을 참고하세요. (I0855f, b/332674072)
- 이제
PlatformImeOptions는 인터페이스가 아닌 구체적인 클래스입니다. (If40a4)
버전 1.0.0-alpha10
2023년 10월 4일
androidx.tv:tv-foundation:1.0.0-alpha10 및 androidx.tv:tv-material:1.0.0-alpha10이 출시되었습니다. 버전 1.0.0-alpha10에 포함된 커밋을 확인하세요.
새로운 기능
NavigationDrawer및ModalNavigationDrawer내에서 사용할NavigationDrawerItem를 도입했습니다. (I4b491)- tv-foundation 라이브러리에 기준 프로필 추가 (2b57fd7)
- tv-material 라이브러리에 기준 프로필 추가 (1711ff5)
API 변경사항
NavigationDrawerScope.doesTabRowHaveFocus에서NavigationDrawerScope.hasFocus로 이름이 변경되었습니다. (I8286b)TabRowScope.isActivated에서TabRowScope.hasFocus로 이름이 변경되었습니다. (Ic4273)
버그 수정
- 포커스 복원기 API를 사용하는 인접 항목과의 캐러셀 호환성 수정 (7b2a7a4)
- OS에서 지원하지 않으므로 API_LEVEL 28 미만의 경우 빛 표시를 사용 중지합니다. (6d3616f)
- 역방향으로 빠르게 스크롤할 때 지연 컨테이너의 잘못된 항목 배치로 인해 발생하는 ANR 비정상 종료 수정 (642d65c)
- 모달 탐색 창에서 배경 패딩이 삭제되었습니다. (69965b2)
- 탐색 창의 스크림이 배경 콘텐츠 뒤가 아닌 위에 그려지도록 수정 (d4bbefb)
버전 1.0.0-alpha09
2023년 9월 6일
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) - tv-foundation 포크를 compose-foundation과 동기화 (I737c3, b/287011882)
LazyLayout오버로드가 추가되었습니다. 이전과 같이 일반 객체가 아닌LazyLayoutItemProvider람다를 허용합니다. 이전 오버로드는 지원 중단되었습니다. (I42a5a)- 개발자가
AndroidImeOptions을 통해 터치 키보드 위치를 구성할 수 있도록TvKeyboardAlignment추가 (Idb772) Saver를 사용하여 TV Compose Material로CarouselState을 기억하도록rememberCarouselState추가 (Id7275)- 사용자가 스크림에 그라데이션을 추가할 수 있도록
scrimColor: Color매개변수를scrimBrush:Brush매개변수로 변경 (I254d4)
버전 1.0.0-alpha08
2023년 7월 26일
androidx.tv:tv-foundation:1.0.0-alpha08 및 androidx.tv:tv-material:1.0.0-alpha08이 출시되었습니다. 버전 1.0.0-alpha08에 포함된 커밋을 확인하세요.
새로운 기능
- TV용 Compose Material의 칩 구성요소 도입 (I86da4)
- TV Compose Material에
ListItem구성요소 추가 (I3f0b3) - TV Compose Material에
DenseListItem구성요소 추가 (I536bf)
API 변경사항
- 공개 tv-material API를 실험용으로 표시했습니다. (I632e7)
TabRow컴포저블의 상태를 탭 컴포저블과 공유하기 위해TabRowScope를 도입하고TabColors속성의 이름을 변경했습니다. (Ief587)
버전 1.0.0-alpha07
2023년 6월 7일
androidx.tv:tv-foundation:1.0.0-alpha07 및 androidx.tv:tv-material:1.0.0-alpha07이 출시되었습니다. 버전 1.0.0-alpha07에 포함된 커밋을 확인하세요.
API 변경사항
- 이제 구성요소의 크기 조절 표시기에 크기 조절을 사용 중지하는 '없음'이 포함됩니다. (I50df5)
- TV Material Surface, 카드, 버튼에 길게 클릭 지원이 추가되었습니다. (Id2b89)
CarouselItem및CarouselScope가 삭제되었습니다. 슬라이드에서 포그라운드 콘텐츠 애니메이션은AnimatedContentScope의Modifier.animateEnterExit를 사용하여 구현할 수 있습니다. (Ic038e)- TV Material Surface를 위해
color및contentColor매개변수를colors로 병합했습니다. (Ie69eb) - TV Material에
RadioButton컴포저블을 도입했습니다. (I08690) - TV Material에
Switch컴포저블을 도입했습니다. (I45e29) - TV Material에
Checkbox컴포저블을 도입했습니다. (I6a45a) - TV Material에 상호작용할 수 없는 Surface가 도입되었습니다. (Ic5f85)
- 표시를 내부로 설정 (Ibff82)
버전 1.0.0-alpha06
2023년 4월 19일
androidx.tv:tv-foundation:1.0.0-alpha06 및 androidx.tv:tv-material:1.0.0-alpha06이 출시되었습니다. 버전 1.0.0-alpha06에 포함된 커밋을 확인하세요.
새로운 기능
- TV에 최적화된 Material 3 카드 구현 추가
- TV에 최적화된 Material 3 버튼 구현 추가
API 변경사항
Carousel의CarouselSlide및slideCount의 이름이CarouselItem및itemCount로 변경되었습니다. (Ie554c)forward및backwardContentTransforms의 이름이StartToEnd및EndToStart로 변경되었습니다. (Ie554c)
버그 수정
NavigationDrawer에 포커스가 있을 때 뒤로 DPAD 버튼 처리 (d654f4)
버전 1.0.0-alpha05
2023년 3월 22일
androidx.tv:tv-foundation:1.0.0-alpha05 및 androidx.tv:tv-material:1.0.0-alpha05이 출시되었습니다. 버전 1.0.0-alpha05에 포함된 커밋을 확인하세요.
API 변경사항
tv-material에 측면 탐색 창 컴포저블 도입 이 컴포저블 사용 방법을 알아보려면 샘플을 참고하세요. (I12c08)- TV Material 3에 아이콘 컴포저블 도입 (I72db9)
- 테두리, 빛, 크기와 같은 표시를 사용하여
tv-material에 Surface 컴포저블을 도입합니다. 이를 통해 TV 화면에서 포커스가 맞춰진 요소를 명확하게 강조하는 구성요소를 빌드할 수 있습니다. (I4a6d8), (Iceea1), (Iee4d4), (I79edf), (Icb376) - 'Carousel' API의
slideCount매개변수 이름과 일치하도록CarouselItem을CarouselSlide로 업데이트 (Ic4299)
버전 1.0.0-alpha04
2023년 2월 8일
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) - 이제 캐러셀이
EnterTransition및ExitTransitions대신ContentTransforms를 애니메이션 정의로 받습니다. (431494a) - 현재 항목을 고정할 수 있는 컴포지션 로컬을 통해 지연 목록에 의해 전파되는
PinnableContainerAPI를 도입했습니다. (Ib8881, b/259274257, b/195049010) TvLazyListLayoutInfo및TvLazyGridLayoutInfo에mainAxisItemSpacing속성을 추가했습니다. (I37765)
버그 수정
- tab-count 0 또는 1을 올바르게 처리하도록 tab-row를 업데이트했습니다. (I44009), (1c01525), (b/264018028)
TvLazyColumn에 빈TvLazyRow가 포함되어 있을 때 포커스 검색 비정상 종료 문제를 해결했습니다. (e11b4fe), (b/260299091)- 이제
clickable수정자가ImmersiveList에서 작동합니다. (5dd5078), (b/263061052) - 이제 추천 캐러셀을 종료하는 데 뒤로 키가 처리되고 사용됩니다. (84c138c)
- 키를 여러 번 빠르게 눌러도 캐러셀에서 포커스가 이동되지 않습니다. (799489f)
- 키를 길게 눌러도 캐러셀에서 포커스가 이동되지 않습니다. (b2cf37e)
- 캐러셀 slide-count가 변경될 때 발생하는 비정상 종료 문제를 해결했습니다. (b261247)
버전 1.0.0-alpha03
2022년 12월 7일
androidx.tv:tv-foundation:1.0.0-alpha03 및 androidx.tv:tv-material:1.0.0-alpha03이 출시되었습니다. 버전 1.0.0-alpha03에 포함된 커밋을 확인하세요.
새로운 기능
- 이제
TabRow를 실험용 API로 사용하여 상단 탐색 메뉴를 앱에 추가할 수 있습니다. 일반적으로 TV 기기에서는 탭 행에서 탭 제목에 포커스가 올 경우 탭이 로드됩니다. - 밑줄 표시기, 알약 표시기 같은 TV 전용 표시기는 즉시 제공됩니다. 샘플 예는 tv-samples에서 확인할 수 있습니다.
버전 1.0.0-alpha02
2022년 11월 9일
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
2022년 10월 5일
androidx.tv:tv-foundation:1.0.0-alpha01 및 androidx.tv:tv-material:1.0.0-alpha01이 출시되었습니다. 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.
새로운 기능
첫 번째 알파 버전에는 다음과 같은 TV 사용 사례를 위한 구성요소의 초기 미리보기 구현이 포함되어 있습니다.
- 스크롤 컨테이너가 콘텐츠를 스크롤할 수 있도록 행, 열, 그리드와 같은 비지연 스크롤 컨테이너를 허용하는 수정자
scrollableWithPivot을 추가하여 포커스가 있는 항목이 TV 화면에서 동일한 위치에 유지됩니다. - 스크롤 컨테이너가 콘텐츠를 스크롤할 수 있도록 컴포저블
TvLazyRow,TvLazyColumn,TvLazyHorizontalGrid,TvLazyVerticalGrid를 추가하여 포커스가 있는 항목이 TV 화면에서 동일한 위치에 유지됩니다. - 사용자가 자동 스크롤 배너 캐러셀을 만들 수 있는 TV용 추천 캐러셀 컴포저블을 추가합니다.
- 사용자가 포커스가 있는 목록 항목에 따라 배경을 변경하는 몰입형 행/열/그리드를 만들 수 있는 TV용 몰입형 목록 컴포저블을 추가합니다.
알려진 문제
- 스크롤 컨테이너가 포커스를 얻으면 기본적으로 첫 번째 요소는 포커스를 얻지 못합니다.
TextField에 포커스를 맞추면 항상 키보드가 열리는 것은 아니며 포커스가 다른 필드로 이동하지 못하게 할 수 있습니다.LazyRows가 포함된LazyColumn에서 세로로 스크롤하면 성능이 저하됩니다.