TV

  
개발자가 TV용 애플리케이션을 작성할 수 있도록 Compose 및 Material 디자인 기능을 제공합니다.
최근 업데이트 안정화 버전 출시 후보 버전 베타 버전 알파 버전
2024년 5월 1일 - - 1.0.0-beta01 -

종속 항목 선언

tv-foundation 및 tv-material의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.

다음과 같이 앱 또는 모듈의 build.gradle 파일에 필요한 아티팩트의 종속 항목을 추가합니다.

Groovy

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

Kotlin

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

종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.

의견

제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.

새로운 문제 제출하기

자세한 내용은 Issue Tracker 문서를 참고하세요.

이 아티팩트의 출시 노트는 없습니다.

Tv-Material 버전 1.0

버전 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)
  • 이제 Text 구성요소가 안정화되었습니다. (Ib9e31)
  • 이제 RadioButton 구성요소가 안정화되었습니다. (Ia03c8)
  • 이제 스위치 구성요소가 안정화되었습니다. (I6cea3)
  • 이제 Checkbox 구성요소가 안정적입니다. (I7eafc)
  • 이제 노출 영역 구성요소가 안정적입니다. (I58758, I04aca)
  • NonInteractiveSurfaceDefaults의 이름이 SurfaceDefaults로, NonInteractiveSurfaceColors의 이름이 SurfaceColors로 변경되었습니다. (I0812e)
  • 이제 Selectable Surface는 'check' 대신 'select' 용어를 사용합니다. 둘 다 시맨틱 의미가 다르기 때문입니다. (I5a206)
  • 이제 NavigationDrawerNavigationDrawerScope가 안정화되었습니다. (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)
  • 이제 ListItemDenseListItem가 안정화되었습니다. (Idebd9)
  • 이제 ListItemDefaults.ListItemShape, ListItemDefaults.FocusedDisabledBorder, ListItemDefaults.SelectedContainerColorOpacity가 비공개입니다. (I5d533)
  • ListItem의 매개변수를 재정렬하고 ListItemDefaults.ListItemElevation의 이름을 ListItemDefaults.TonalElevation로 바꿨습니다. (Id6841)
  • 이제 LocalAbsoluteTonalElevation가 내부용입니다. (Ibfc65)
  • ImmersiveList 구성요소가 삭제되었습니다. 이 샘플을 확인하여 직접 빌드하는 방법을 알아보세요. 추가했습니다. (Id48da)
  • API에서 MutableInteractionSource를 노출하는 tv-material 구성요소가 업데이트되어 이제 null이 되는 null을 허용하는 null 허용 MutableInteractionSource를 노출합니다. 여기서는 시맨틱 변경사항이 없습니다. null을 전달하면 MutableInteractionSource를 호이스팅하지 않고 필요한 경우 구성요소 내부에서 생성됩니다. null로 변경하면 일부 구성요소가 MutableInteractionSource를 할당하지 않고 다른 구성요소가 필요할 때만 인스턴스를 느리게 만들 수 있으므로 이러한 구성요소 전반에서 성능이 향상됩니다. 이러한 구성요소에 전달하는 MutableInteractionSource를 사용하지 않는 경우 대신 null을 전달하는 것이 좋습니다. 자체 구성요소도 이와 비슷하게 변경하는 것이 좋습니다. 추가했습니다. (I309b4, b/298048146)
  • 이제 TV 텍스트 구성요소의 TextAlign 매개변수가 null이 아닙니다. (Ib73b1, b/299490814)
  • 대체하기 위해 ParagraphTextStyleTextAlign, TextDirection, Hyphens, LineBreak 필드에 특수 지정되지 않은 값을 도입했습니다. (I4197e, b/299490814)

버전 1.0.0

버전 1.0.0-alpha10

2023년 10월 4일

androidx.tv:tv-foundation:1.0.0-alpha10androidx.tv:tv-material:1.0.0-alpha10가 출시되었습니다. 버전 1.0.0-alpha10에 포함된 커밋을 확인하세요.

새로운 기능

  • NavigationDrawerModalNavigationDrawer 내에서 사용할 NavigationDrawerItem를 도입했습니다. 추가했습니다. (I4b491)
  • tv-foundation 라이브러리에 기준 프로필을 추가합니다. 추가합니다. (2b57fd7)
  • tv-material 라이브러리에 기준 프로필을 추가합니다. 추가했습니다. (1711ff5)

API 변경사항

  • NavigationDrawerScope.doesTabRowHaveFocus에서 NavigationDrawerScope.hasFocus으로 이름이 변경되었습니다. 추가했습니다. (I8286b)
  • TabRowScope.isActivated에서 TabRowScope.hasFocus으로 이름이 변경되었습니다. 추가했습니다. (Ic4273)

버그 수정

  • 포커스 복원 API를 사용하는 인접 항목과 캐러셀의 호환성을 수정합니다. 추가합니다. (7b2a7a4)
  • 28 미만 API_LEVEL의 발광 표시는 OS에서 지원되지 않으므로 사용 중지합니다. 추가합니다. (6d3616f)
  • 역 방향으로 빠르게 스크롤할 때 지연 컨테이너에서 부적절한 항목 배치로 인해 발생하는 ANR 비정상 종료 문제를 해결했습니다. 추가합니다. (642d65c)
  • 모달 탐색 창에서 배경 패딩을 삭제했습니다. 추가했습니다. (69965b2)
  • 탐색 창의 스크림이 배경 콘텐츠 뒤가 아닌 위에 그려지도록 수정했습니다. 추가했습니다. (d4bbefb)

버전 1.0.0-alpha09

2023년 9월 6일

androidx.tv:tv-foundation:1.0.0-alpha09androidx.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와 함께 CarouselState를 기억하도록 rememberCarouselState를 TV Compose Material에 추가합니다. 추가했습니다. (Id7275)
  • 사용자가 스크림에 그라데이션을 추가할 수 있도록 scrimColor: Color 매개변수를 scrimBrush:Brush 매개변수로 변경합니다. 추가했습니다. (I254d4)

버전 1.0.0-alpha08

2023년 7월 26일

androidx.tv:tv-foundation:1.0.0-alpha08androidx.tv:tv-material:1.0.0-alpha08가 출시되었습니다. 버전 1.0.0-alpha08에 포함된 커밋을 확인하세요.

새로운 기능

  • TV Material용 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-alpha07androidx.tv:tv-material:1.0.0-alpha07가 출시되었습니다. 버전 1.0.0-alpha07에 포함된 커밋을 확인하세요.

API 변경사항

  • 이제 구성요소의 배율 표시에 크기 조정을 사용 중지하는 None이 포함됩니다. 추가했습니다. (I50df5)
  • TV Material Surface, 카드, 버튼의 긴 클릭 지원을 추가했습니다. 추가했습니다. (Id2b89)
  • CarouselItemCarouselScope가 삭제되었습니다. AnimatedContentScopeModifier.animateEnterExit를 사용하여 슬라이드에서 포그라운드 콘텐츠 애니메이션을 실행할 수 있습니다. 추가했습니다. (Ic038e)
  • colorcontentColor 매개변수를 TV Material Surface의 colors로 병합했습니다. 추가했습니다. (Ie69eb)
  • TV Material에 RadioButton 컴포저블을 도입했습니다. 추가했습니다. (I08690)
  • TV Material에 Switch 컴포저블을 도입했습니다. 추가했습니다. (I45e29)
  • TV Material에 Checkbox 컴포저블을 도입했습니다. 추가했습니다. (I6a45a)
  • TV 머티리얼에 상호작용 불가능한 노출 영역을 도입했습니다. 추가했습니다. (Ic5f85)
  • 내부에 표시를 합니다. 추가했습니다. (Ibff82)

버전 1.0.0-alpha06

2023년 4월 19일

androidx.tv:tv-foundation:1.0.0-alpha06androidx.tv:tv-material:1.0.0-alpha06가 출시되었습니다. 버전 1.0.0-alpha06에 포함된 커밋을 확인하세요.

새로운 기능

  • TV에 최적화된 Material 3 Card 구현을 추가합니다.
    • Basic 카드 (I5b701)
    • ClassicCard, CompactCard, WideClassicCard (I70471)
    • StandardCardLayoutWideCardLayout (I33fae)
  • TV에 최적화된 Material 3 Button 구현을 추가합니다.

API 변경사항

  • CarouselCarouselSlideslideCount의 이름이 CarouselItemitemCount로 변경되었습니다. 추가했습니다. (Ie554c)
  • forwardbackward ContentTransforms의 이름이 StartToEndEndToStart로 변경되었습니다. 추가했습니다. (Ie554c)

버그 수정

  • NavigationDrawer에 포커스가 있을 때 뒤로 방향 패드 버튼을 처리합니다. 추가합니다. (d654f4)

버전 1.0.0-alpha05

2023년 3월 22일

androidx.tv:tv-foundation:1.0.0-alpha05androidx.tv:tv-material:1.0.0-alpha05가 출시되었습니다. 버전 1.0.0-alpha05에 포함된 커밋을 확인하세요.

API 변경사항

  • tv-material에 측면 탐색 창 컴포저블을 소개합니다. 이 컴포저블을 사용하는 방법을 알아보려면 샘플을 참고하세요. 추가했습니다. (I12c08)
  • TV Material 3에 아이콘 컴포저블을 도입했습니다. (I72db9)
  • 경계, 발광 효과, 배율과 같은 표시와 함께 tv-material에 노출 영역 컴포저블을 도입합니다. 이는 TV 화면에서 포커스가 맞춰진 요소를 명확하게 강조 표시하는 구성요소를 빌드하는 데 사용할 수 있습니다. (I4a6d8), (Iceea1), (Iee4d4), (I79edf), (Icb376)
  • 'carousel' API의 slideCount 매개변수 이름과 일치하도록 CarouselItemCarouselSlide로 업데이트합니다. (Ic4299)

버전 1.0.0-alpha04

2023년 2월 8일

androidx.tv:tv-foundation:1.0.0-alpha04androidx.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)
  • 이제 CarouselItemCarousel 내에서 사용하도록 제한됩니다. (431494a)
  • 이제 캐러셀이 EnterTransitionExitTransitions 대신 ContentTransforms를 애니메이션 정의로 받습니다. (431494a)
  • 현재 항목을 고정할 수 있는 컴포지션 로컬을 통해 지연 목록에 의해 전파되는 PinnableContainer API를 도입했습니다. (Ib8881, b/259274257, b/195049010)
  • TvLazyListLayoutInfoTvLazyGridLayoutInfomainAxisItemSpacing 속성을 추가했습니다. (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-alpha03androidx.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-alpha02androidx.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-alpha01androidx.tv:tv-material:1.0.0-alpha01이 출시되었습니다. 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.

새로운 기능

첫 번째 알파 버전에는 다음과 같은 TV 사용 사례를 위한 구성요소의 초기 미리보기 구현이 포함되어 있습니다.

  • 스크롤 컨테이너가 콘텐츠를 스크롤할 수 있도록 행, 열, 그리드와 같은 비지연 스크롤 컨테이너를 허용하는 수정자 scrollableWithPivot을 추가하여 포커스가 있는 항목이 TV 화면에서 동일한 위치에 유지됩니다.
  • 스크롤 컨테이너가 콘텐츠를 스크롤할 수 있도록 컴포저블 TvLazyRow, TvLazyColumn, TvLazyHorizontalGrid, TvLazyVerticalGrid를 추가하여 포커스가 있는 항목이 TV 화면에서 동일한 위치에 유지됩니다.
  • 사용자가 자동 스크롤 배너 캐러셀을 만들 수 있는 TV용 추천 캐러셀 컴포저블을 추가합니다.
  • 사용자가 포커스가 있는 목록 항목에 따라 배경을 변경하는 몰입형 행/열/그리드를 만들 수 있는 TV용 몰입형 목록 컴포저블을 추가합니다.

알려진 문제

  • 스크롤 컨테이너가 포커스를 얻으면 기본적으로 첫 번째 요소는 포커스를 얻지 못합니다.
  • TextField에 포커스를 맞추면 항상 키보드가 열리는 것은 아니며 포커스가 다른 필드로 이동하지 못하게 할 수 있습니다.
  • LazyRows가 포함된 LazyColumn에서 세로로 스크롤하면 성능이 저하됩니다.