TV

  
개발자가 TV용 애플리케이션을 작성할 수 있도록 Compose 및 Material 디자인 기능을 제공합니다.
최근 업데이트 안정화 버전 출시 후보 버전 베타 버전 알파 버전
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)
  • 이제 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.ContainerGradientCardDefaults.ScrimBrush로 이름을 바꿨습니다. (I6adfe) 카드 컨테이너에서 CardContainerDefaults.ImageCard 대신 Card를 사용할 수 있습니다.
  • 이제 ListItemDenseListItem가 안정화되었습니다. (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)
  • 대체할 ParagraphTextStyleTextAlign, TextDirection, Hyphens, LineBreak 필드에 지정되지 않은 특수 값을 도입했습니다. (I4197e, b/299490814)

동작 변경사항

  • 비대화형 Surfaceshape 매개변수 기본값이 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-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)
  • OS에서 지원되지 않으므로 API_LEVEL이 28 미만인 경우 발광 효과 표시를 사용 중지합니다. 추가했습니다. (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)
  • TV Compose Material에 SaverCarouselState를 기억하도록 rememberCarouselState를 추가합니다. (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 자료용 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 변경사항

  • 이제 구성요소의 배율 표시에 크기 조정을 사용 중지하기 위한 없음이 포함됩니다. 추가했습니다. (I50df5)
  • TV 머티리얼 노출 영역, 카드, 버튼에 관한 긴 클릭 지원을 추가했습니다. 추가했습니다. (Id2b89)
  • CarouselItemCarouselScope가 삭제되었습니다. 포그라운드 콘텐츠 애니메이션은 AnimatedContentScopeModifier.animateEnterExit를 사용하여 슬라이드에서 실행할 수 있습니다. 추가했습니다. (Ic038e)
  • TV Material Surface의 colorcontentColor 매개변수를 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-alpha06androidx.tv:tv-material:1.0.0-alpha06이 출시되었습니다. 버전 1.0.0-alpha06에 포함된 커밋을 확인하세요.

새로운 기능

  • TV에 최적화된 Material 3 카드 구현을 추가합니다.
    • Basic Card (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에 Icon 컴포저블을 도입했습니다. (I72db9)
  • 테두리, 발광 효과, 배율과 같은 표시를 사용하여 tv-material에 Surface 컴포저블을 도입합니다. 이는 TV 화면에서 포커스가 맞춰진 요소를 명확하게 강조하는 구성요소를 빌드하는 데 사용할 수 있습니다. 추가합니다. (I4a6d8) (Iceea1), (Iee4d4) (I79edf) 추가했습니다. (Icb376)
  • '캐러셀'의 slideCount 매개변수 이름과 일치하도록 CarouselItemCarouselSlide로 업데이트합니다. API (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에서 세로로 스크롤하면 성능이 저하됩니다.