tv

  
テレビ用のアプリを作成するための Compose とマテリアル デザインの機能をデベロッパーに提供します。
最新の更新 安定版リリース リリース候補版 ベータ版リリース アルファ版リリース
2025 年 1 月 15 日 1.0.0 - - 1.1.0-alpha01

依存関係の宣言

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 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、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 には、これらの commit が含まれています。

API の変更

  • FocusEnterExitScope.cancelFocus()cancelFocusChange() に変更しました。(I89959
  • FocusProperties.enterFocusProperties.exit は、FocusDirection パラメータの代わりにレシーバ スコープを使用して、それぞれ onEnteronExit に置き換えられました。(I6e667

バグの修正

  • スケーリング中のテキストのジッターを修正するため、CompositingStrategy.OffScreen をサーフェスからテキストに移動しました。(I92b15f17
  • カルーセルのフォーカス管理の不具合を修正しました。(Ie508b721375
  • サーフェス(インタラクティブではない)は、インタラクティブなサーフェスと比較して実装が簡素化されています。(I7ea545150

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 には、これらの commit が含まれています。

バグの修正

  • サーフェス コンポーザブルでのジッターのあるテキスト アニメーションを修正しました。(3163319

バージョン 1.0.0-rc01

2024 年 7 月 10 日

androidx.tv:tv-material:1.0.0-rc01 がリリースされました。バージョン 1.0.0-rc01 に含まれる commit はこちらをご覧ください。

バージョン 1.0.0-beta01

2024 年 5 月 1 日

androidx.tv:tv-material:1.0.0-beta01 がリリースされました。バージョン 1.0.0-beta01 には、これらの commit が含まれています。

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
  • サーフェス コンポーネントが安定しました。(I58758I04aca
  • NonInteractiveSurfaceDefaults の名前を SurfaceDefaults に、NonInteractiveSurfaceColors の名前を SurfaceColors に変更しました(I0812e
  • 選択可能なサーフェスで「チェック」ではなく「選択」という用語が使用されるようになりました。これは、両方のセマンティクスの意味が異なるためです(I5a206
  • NavigationDrawerNavigationDrawerScope が安定版になりました。(I249c1
  • NavigationDrawerItem コンポーネントが安定しました。(Id6986
  • Tab コンポーネントと TabRow コンポーネントが安定版になりました。(I92d92
  • ButtonOutlinedButtonIconButtonOutlinedIconButtonWideButton コンポーネントが安定しました。(Ib4de8
  • CardClassicCardCompactCardWideClassicCardStandardCardContainerWideCardContainer コンポーネントが安定しました。(I34390
  • StandardCardLayout の名前を StandardCardContainer に、WideCardLayout の名前を WideCardContainer に変更しました。(I08883
  • CardContainerDefaults.ImageCard を削除し、CardDefaults.ContainerGradient の名前を CardDefaults.ScrimBrush に変更しました。(I6adfe)カード コンテナでは、CardContainerDefaults.ImageCard の代わりに Card を使用できます。
  • ListItemDenseListItem が安定版になりました。(Idebd9
  • ListItemDefaults.ListItemShapeListItemDefaults.FocusedDisabledBorderListItemDefaults.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 を渡すことをおすすめします。独自のコンポーネントでも同様の変更を行うことをおすすめします。(I309b4b/298048146
  • TV Text コンポーネントの TextAlign パラメータが null でなくなった(Ib73b1b/299490814
  • ParagraphTextStyleTextAlignTextDirectionHyphensLineBreak フィールドに、置換用の特別な未指定の値を導入しました。(I4197eb/299490814

動作の変更

  • インタラクティブでない Surfaceshape パラメータのデフォルト値を RectangleShape に変更しました。(I1b859cb
  • 必要な API が試験運用版であるため、ベータ版のリリースではカルーセル機能の一部を削除しました。(I0e755d4
  • SurfacecontentColor を変更しても、状態間のアニメーションが再生されなくなりました(I436e794f

バージョン 1.0.0

バージョン 1.0.0-alpha12

2025 年 1 月 15 日

androidx.tv:tv-foundation:1.0.0-alpha12 がリリースされました。バージョン 1.0.0-alpha12 に含まれる commit はこちらをご覧ください。

API の変更

  • tv-foundation の遅延レイアウトをクリーンアップ。tv-foundation 遅延レイアウトから移行するには、1.0.0-alpha11 リリースノートをご覧ください。(I2fdd3b/358913893

バージョン 1.0.0-alpha11

2024 年 7 月 10 日

androidx.tv:tv-foundation:1.0.0-alpha11 がリリースされました。バージョン 1.0.0-alpha11 に含まれる commit はこちらをご覧ください。

API の変更

  • Tv 遅延レイアウトは tv-foundation ライブラリで非推奨になりました。テレビの遅延読み込みレイアウトから移行する方法については、こちらのチケットを参照してください。(I0855fb/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 に含まれる commit については、こちらをご覧ください。

新機能

  • 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 に含まれる commit については、こちらをご覧ください。

API の変更

  • サブコンポジションのライフサイクルと再利用を管理する ReusableComposition インターフェースを追加しました(I812d1b/252846775)。
  • tv-foundation フォークを compose-foundation と同期しました(I737c3b/287011882)。
  • LazyLayout のオーバーロードを追加しました。これはこれまでのプレーンなオブジェクではなく、LazyLayoutItemProvider のラムダに対応しています。これまでのオーバーロードは非推奨になっています(I42a5a)。
  • TvKeyboardAlignment を追加して、デベロッパーが AndroidImeOptions から画面キーボードの位置を設定できるようにしました(Idb772)。
  • rememberCarouselState を追加して、SaverCarouselState を TV Compose マテリアルに残せるようにしました(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 に含まれる commit については、こちらをご覧ください。

新機能

  • Compose for TV マテリアルに Chip コンポーネントを導入しました(I86da4)。
  • ListItem コンポーネントを TV Compose マテリアルに追加しました(I3f0b3)。
  • DenseListItem コンポーネントを TV Compose マテリアルに追加しました(I536bf)。

API の変更

  • 公開 tv-material API を試験運用版としてマークしました(I632e7)。
  • TabRow コンポーザブルの状態をタブ コンポーザブルと共有する 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 に含まれる commit については、こちらをご覧ください

API の変更

  • コンポーネントのスケールの表示にスケーリングを無効にする None を追加しました(I50df5)。
  • TV マテリアル サーフェス、カード、ボタンでの長押しクリックに対応しました(Id2b89)。
  • CarouselItemCarouselScope を削除しました。フォアグラウンド コンテンツのアニメーションは、AnimatedContentScope から Modifier.animateEnterExit を使ってスライドで実現できます(Ic038e)。
  • TV マテリアル サーフェスの color パラメータと contentColor パラメータを colors に統合しました(Ie69eb)。
  • TV マテリアルに RadioButton コンポーザブルを導入しました(I08690)。
  • TV マテリアルに Switch コンポーザブルを導入しました(I45e29)。
  • TV マテリアルに Checkbox コンポーザブルを導入しました(I6a45a)。
  • TV マテリアルに non-interactable サーフェスを導入しました(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 に含まれる commit については、こちらをご覧ください

新機能

  • テレビ用に最適化したマテリアル 3 のカードを追加しました。
    • 基本的なカード(I5b701
    • ClassicCardCompactCardWideClassicCardI70471
    • StandardCardLayoutWideCardLayoutI33fae
  • テレビ用に最適化したマテリアル 3 のボタンを追加しました。
    • 基本的なボタン(I69c11
    • IconButtonOutlinedIconButtonIb504c
    • WideButtonI4cecf

API の変更

  • CarouselCarouselSlideslideCount の名前を CarouselItemitemCount に変更しました(Ie554c)。
  • ContentTransformsforwardbackward の名前を StartToEndEndToStart に変更しました(Ie554c)。

バグの修正

  • NavigationDrawer にフォーカスしているときに D-pad の戻るボタンを処理できるようにしました(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 に含まれる commit については、こちらをご覧ください

API の変更

  • サイド ナビゲーション ドロワー コンポーザブルを tv-material に導入しました。このコンポーザブルの使用方法について詳しくは、サンプルをご覧ください(I12c08)。
  • アイコン コンポーザブルを TV マテリアル 3 に導入しました(I72db9)。
  • 枠線、グロー、スケールなどの表示のあるサーフェス コンポーザブルを tv-material に導入しました。これを使用してテレビ画面のフォーカスされている要素を明確にハイライトするコンポーネントを構築できます(I4a6d8Iceea1Iee4d4I79edfIcb376
  • カルーセル API の CarouselItemCarouselSlide に更新し、slideCount パラメータ名と一致させました(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 に含まれる commit については、こちらをご覧ください

新機能

  • 遅延行、列、グリッドでは、必要に応じて、アイテム全体がビューに入るようにピボットがオーバーライドされます。(11d7e40
  • さまざまな状態でタブの色をカスタマイズできるようにしました。(21b2925
  • カルーセルで、前後の手動スクロールにカスタム アニメーションを使用できるようになりました。(431494a

API の変更

  • androidx.tv.material の名前を androidx.tv.material3 に変更し、パッケージ構造を androidx.tv.material3 の下にフラット化しました。(I6ca52
  • Carousel Indicator 行内のインジケーターが、デベロッパーがカスタマイズできるスロットになりました。(268af2a
  • focusableItem の名前を immersiveListItem に変更しましたユーザーは手動で focusable() または clickable() 修飾子を immersiveListItem に追加することが必要になります(5dd5078)(b/263061052
  • Carousel コンポーネントの timeToDisplayMillis の名前を autoScrollDurationMillis に変更しました。(431494a
  • CarouselItem の使用が Carousel 内だけに制限されました。(431494a
  • カルーセルがアニメーション定義として EnterTransitionExitTransitions ではなく ContentTransforms を受け入れるようになりました。(431494a
  • コンポジション ローカルを介して遅延リストで伝播される PinnableContainer API を導入し、現在のアイテムを固定できるようになりました。(Ib8881b/259274257b/195049010
  • mainAxisItemSpacing プロパティを TvLazyListLayoutInfoTvLazyGridLayoutInfo に追加しました(I37765

バグの修正

  • タブ行を更新して、0 または 1 のタブ数を正しく処理するようにしました。(I44009)、(1c01525)、(b/264018028
  • TvLazyColumn に空の TvLazyRow が含まれている場合のフォーカス検索のクラッシュを修正しました。(e11b4fe)、(b/260299091
  • clickable 修飾子が ImmersiveList で動作するようになりました。(5dd5078)、(b/263061052
  • 戻るキーが処理され、フィーチャー カルーセルから離れるために使用されるようになりました。(84c138c
  • カルーセルが、キーをすばやく複数回押してもフォーカスを失わなくなりました。(799489f
  • カルーセルが、キーを長押ししてもフォーカスを失わなくなりました。(b2cf37e
  • カルーセルのスライド数が変更されたときにクラッシュする問題を修正しました。(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-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 に含まれる commit については、こちらをご覧ください

バグの修正

  • フォーカスの検索スペースを縮小することにより、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 に含まれる commit については、こちらをご覧ください

新機能

最初のアルファ版には、テレビのユースケース向けに、次のようなコンポーネントの初期プレビュー実装が含まれています。

  • scrollableWithPivot 修飾子を追加して、Row、Column、Grid などの非遅延スクロール コンテナで、スクロール コンテナがコンテンツをスクロールさせ、フォーカスされているアイテムがテレビ画面上の同じ位置に表示されたままになるようにしました。
  • コンポーザブル TvLazyRowTvLazyColumnTvLazyHorizontalGridTvLazyVerticalGrid を追加して、スクロール コンテナがコンテンツをスクロールさせ、フォーカスされているアイテムをテレビ画面上の同じ位置に表示されたままになるようにしました。
  • テレビ用の推奨カルーセル コンポーザブルを追加して、ユーザーが自動スクロールのバナー カルーセルを作成できるようにしました。
  • テレビ用の没入型リスト コンポーザブルを追加して、フォーカスされているリストアイテムに基づいて背景を変更する没入型の Row、Column、Grid を作成できるようにしました。

既知の問題

  • スクロール コンテナがフォーカスを取得する際に、最初の要素はデフォルトでフォーカスを取得しません。
  • TextField にフォーカスしてもキーボードが開かないことがあり、他のフィールドにフォーカスを移動できなくなることもあります。
  • LazyRows を含む LazyColumn で垂直方向にスクロールすると、操作性が悪くなります。