TV
<ph type="x-smartling-placeholder"></ph> androidx.tv.foundation
<ph type="x-smartling-placeholder"></ph> androidx.tv.foundation.latency.grid
androidx.tv.foundation.latency.list
androidx.tv.material3
최근 업데이트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
---|---|---|---|---|
2024년 8월 21일 | 1.0.0 | - | - | - |
종속 항목 선언
tv-foundation 및 tv-material의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.
다음과 같이 앱 또는 모듈의 build.gradle
파일에 필요한 아티팩트의 종속 항목을 추가합니다.
Groovy
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") }
종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.
의견
제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.
자세한 내용은 Issue Tracker 문서를 참고하세요.
이 아티팩트의 출시 노트는 없습니다.
TV-Material 버전 1.0
버전 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) - 이제
Typography
API가 안정화되었습니다. (I088d6) - 이제 Shapes API가 안정화되었습니다. (I0f5f4)
- 이제 Border API가 안정화되었습니다. (I69281)
- 이제 Glow API가 안정화되었습니다. (Iea5f1)
- 이제 아이콘 구성요소가 안정화되었습니다. (I62c2d)
- 이제
LocalTextStyles
API가 안정화되었습니다. (Iaded8) - 이제
MaterialTheme
API가 안정화되었습니다. (I2f541) - 이제 텍스트 구성요소가 안정화되었습니다. (Ib9e31)
- 이제
RadioButton
구성요소가 안정화되었습니다. (Ia03c8) - 이제 스위치 구성요소가 안정화되었습니다. (I6cea3)
- 이제
Checkbox
구성요소가 안정화되었습니다. (I7eafc) - 이제 노출 영역 구성요소가 안정화되었습니다. (I58758, I04aca)
NonInteractiveSurfaceDefaults
의 이름이SurfaceDefaults
로,NonInteractiveSurfaceColors
의 이름이SurfaceColors
로 변경되었습니다. (I0812e)- 선택 가능한 노출 영역에서는 이제 'check' 대신 'select' 용어를 사용합니다. 둘 다 의미 체계의 의미가 다르기 때문입니다. (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) 카드 컨테이너에서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
필드에 지정되지 않은 특수 값을 도입했습니다. (I4197e, b/299490814)
동작 변경사항
- 비대화형
Surface
의shape
매개변수 기본값이RectangleShape
로 변경되었습니다. (I1b859cb) - 필수 API가 실험용이므로 베타 출시에서 일부 캐러셀 기능이 삭제되었습니다. (I0e755d4)
Surface
에서contentColor
를 변경해도 더 이상 상태 간에 애니메이션이 실행되지 않습니다. (I436e794f)
버전 1.0.0
버전 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) - TV Compose Material에
Saver
로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의 칩 구성요소를 도입합니다. 추가했습니다. (I86da4)
- TV Compose Material에
ListItem
구성요소를 추가합니다. 추가했습니다. (I3f0b3) - TV Compose Material에
DenseListItem
구성요소를 추가합니다. 추가했습니다. (I536bf)
API 변경사항
- 공개 tv-material API를 실험용으로 표시했습니다. 추가했습니다. (I632e7)
TabRow
컴포저블의 상태를 Tab 컴포저블과 공유하는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 머티리얼 노출 영역, 카드, 버튼에 관한 긴 클릭 지원을 추가했습니다. 추가했습니다. (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 Button 구현을 추가합니다.
API 변경사항
Carousel
의CarouselSlide
및slideCount
이름이CarouselItem
및itemCount
로 변경되었습니다. 추가했습니다. (Ie554c)forward
및backward
ContentTransforms
의 이름이StartToEnd
및EndToStart
로 변경되었습니다. 추가했습니다. (Ie554c)
버그 수정
NavigationDrawer
에 포커스가 있을 때 뒤로 방향 패드 버튼을 처리합니다. 추가했습니다. (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에 Icon 컴포저블을 도입했습니다. (I72db9)
- 테두리, 발광 효과, 배율과 같은 표시를 사용하여
tv-material
에 Surface 컴포저블을 도입합니다. 이는 TV 화면에서 포커스가 맞춰진 요소를 명확하게 강조하는 구성요소를 빌드하는 데 사용할 수 있습니다. 추가합니다. (I4a6d8) (Iceea1), (Iee4d4) (I79edf) 추가했습니다. (Icb376) - '캐러셀'의
slideCount
매개변수 이름과 일치하도록CarouselItem
를CarouselSlide
로 업데이트합니다. API (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) - 현재 항목을 고정할 수 있는 컴포지션 로컬을 통해 지연 목록에 의해 전파되는
PinnableContainer
API를 도입했습니다. (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
에서 세로로 스크롤하면 성능이 저하됩니다.