tv

  
Menyediakan fungsi Compose dan Desain material kepada developer agar dapat menulis aplikasi untuk TV
Update Terbaru Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
15 Januari 2025 1.0.0 - - 1.1.0-alpha01

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada tv-foundation dan tv-material, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.

Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:

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")
}

Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.

Masukan

Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.

Laporkan masalah baru

Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.

Tidak ada catatan rilis untuk artefak ini.

Tv-Material Versi 1.1

Versi 1.1.0-alpha01

15 Januari 2025

androidx.tv:tv-material:1.1.0-alpha01 dirilis. Versi 1.1.0-alpha01 berisi commit ini.

Perubahan API

  • Mengubah FocusEnterExitScope.cancelFocus() menjadi cancelFocusChange()(I89959)
  • FocusProperties.enter dan FocusProperties.exit telah diganti dengan onEnter dan onExit, masing-masing menggunakan cakupan penerima,bukan parameter FocusDirection. (I6e667)

Perbaikan Bug

  • Memindahkan CompositingStrategy.OffScreen dari Platform ke Teks untuk memperbaiki teks yang bergetar saat penskalaan. (I92b15f17)
  • Memperbaiki pengelolaan fokus yang rusak di Carousel (Ie508b721375)
  • Platform (non-interaktif) memiliki implementasi yang disederhanakan dibandingkan dengan platform interaktif. (I7ea545150)

Tv-Material Versi 1.0

Versi 1.0.0

21 Agustus 2024

androidx.tv:tv-material:1.0.0 dirilis. Versi 1.0.0 adalah rilis stabil pertama androidx.tv:tv-material.

Versi 1.0.0-rc02

7 Agustus 2024

androidx.tv:tv-material:1.0.0-rc02 dirilis. Versi 1.0.0-rc02 berisi commit ini.

Perbaikan Bug

  • Memperbaiki animasi teks yang bergetar di composable Surface. (3163319)

Versi 1.0.0-rc01

10 Juli 2024

androidx.tv:tv-material:1.0.0-rc01 dirilis. Versi 1.0.0-rc01 berisi commit ini.

Versi 1.0.0-beta01

1 Mei 2024

androidx.tv:tv-material:1.0.0-beta01 dirilis. Versi 1.0.0-beta01 berisi commit ini.

Perubahan API

  • ColorScheme dan fungsi utilitasnya kini stabil. (If34fa)
  • LocalContentColor kini stabil (I60ee2)
  • Typography API kini stabil (I088d6)
  • Shapes API kini stabil (I0f5f4)
  • Border API kini stabil (I69281)
  • Glow API kini stabil (Iea5f1)
  • Komponen ikon kini stabil (I62c2d)
  • LocalTextStyles API sekarang stabil (Iaded8)
  • MaterialTheme API sekarang stabil (I2f541)
  • Komponen Teks kini stabil (Ib9e31)
  • Komponen RadioButton kini stabil (Ia03c8)
  • Komponen tombol sekarang stabil (I6cea3)
  • Komponen Checkbox kini stabil (I7eafc)
  • Komponen platform kini stabil (I58758, I04aca)
  • Mengganti nama NonInteractiveSurfaceDefaults menjadi SurfaceDefaults dan NonInteractiveSurfaceColors menjadi SurfaceColors (I0812e)
  • Platform yang Dapat Dipilih kini menggunakan terminologi “pilih” dan bukan “periksa” karena keduanya memiliki makna semantik yang berbeda (I5a206)
  • NavigationDrawer dan NavigationDrawerScope kini stabil (I249c1)
  • Komponen NavigationDrawerItem kini stabil (Id6986)
  • Komponen tab dan TabRow kini stabil (I92d92)
  • Komponen Button, OutlinedButton, IconButton, OutlinedIconButton, dan WideButton kini stabil (Ib4de8)
  • Komponen Card, ClassicCard, CompactCard, WideClassicCard, StandardCardContainer, dan WideCardContainer kini stabil (I34390)
  • Mengganti nama StandardCardLayout menjadi StandardCardContainer dan WideCardLayout menjadi WideCardContainer (I08883)
  • Menghapus CardContainerDefaults.ImageCard dan mengganti nama CardDefaults.ContainerGradient menjadi CardDefaults.ScrimBrush (I6adfe). Anda dapat menggunakan Card sebagai pengganti CardContainerDefaults.ImageCard di penampung kartu.
  • ListItem dan DenseListItem kini stabil (Idebd9)
  • ListItemDefaults.ListItemShape, ListItemDefaults.FocusedDisabledBorder & ListItemDefaults.SelectedContainerColorOpacity kini bersifat pribadi (I5d533)
  • Mengatur ulang parameter ListItem & mengganti nama ListItemDefaults.ListItemElevation menjadi ListItemDefaults.TonalElevation (Id6841). Parameter headlineContent telah dipindahkan ke bagian atas composable. Sebelumnya, Anda dapat menggunakan sintaksis lambda akhir Kotlin untuk meneruskan headlineContent. Sekarang, Anda harus menggunakan sintaksis parameter bernama untuk memberikan headlineContent.
  • LocalAbsoluteTonalElevation kini bersifat internal (Ibfc65)
  • Komponen ImmersiveList telah dihapus. Lihat contoh ini untuk mempelajari cara mem-buildnya sendiri. (Id48da)
  • Komponen tv-material yang mengekspos MutableInteractionSource di API-nya telah diupdate sehingga kini mengekspos MutableInteractionSource nullable yang ditetapkan secara default ke null. Tidak ada perubahan semantik di sini: meneruskan null berarti Anda tidak ingin mengangkat MutableInteractionSource, dan MutableInteractionSource akan dibuat di dalam komponen jika diperlukan. Mengubah ke null memungkinkan beberapa komponen tidak pernah mengalokasikan MutableInteractionSource, dan memungkinkan komponen lain hanya membuat instance secara lambat saat diperlukan, yang meningkatkan performa di seluruh komponen ini. Jika Anda tidak menggunakan MutableInteractionSource yang diteruskan ke komponen ini, sebaiknya teruskan null. Sebaiknya Anda juga membuat perubahan serupa di komponen Anda sendiri. (I309b4, b/298048146)
  • Parameter TextAlign komponen Teks TV kini non-null (Ib73b1, b/299490814)
  • Memperkenalkan nilai Tidak ditentukan khusus untuk kolom TextAlign, TextDirection, Hyphens, dan LineBreak dari ParagraphTextStyle yang akan diganti (I4197e, b/299490814)

Perubahan Perilaku

  • Nilai default parameter shape untuk Surface non-interaktif telah diubah menjadi RectangleShape (I1b859cb)
  • Beberapa fitur carousel telah dihapus untuk peluncuran versi beta karena API yang diperlukan bersifat eksperimental (I0e755d4)
  • Mengubah contentColor di Surface tidak lagi menganimasikan di antara status (I436e794f)

Versi 1.0.0

Versi 1.0.0-alpha12

15 Januari 2025

androidx.tv:tv-foundation:1.0.0-alpha12 dirilis. Versi 1.0.0-alpha12 berisi commit ini.

Perubahan API

  • Membersihkan tata letak lambat dari tv-foundation. Lihat catatan rilis 1.0.0-alpha11 untuk bermigrasi dari tata letak lambat tv-foundation. (I2fdd3, b/358913893)

Versi 1.0.0-alpha11

10 Juli 2024

androidx.tv:tv-foundation:1.0.0-alpha11 dirilis. Versi 1.0.0-alpha11 berisi commit ini.

Perubahan API

  • Tata Letak Lambat TV tidak digunakan lagi dari library tv-foundation. Lihat tiket ini untuk mempelajari cara bermigrasi dari tata letak lambat TV. (I0855f, b/332674072)
  • PlatformImeOptions kini merupakan class konkret, bukan antarmuka. (If40a4)

Versi 1.0.0-alpha10

4 Oktober 2023

androidx.tv:tv-foundation:1.0.0-alpha10 dan androidx.tv:tv-material:1.0.0-alpha10 dirilis. Versi 1.0.0-alpha10 berisi commit ini.

Fitur Baru

  • Memperkenalkan NavigationDrawerItem untuk digunakan dalam NavigationDrawer dan ModalNavigationDrawer. (I4b491)
  • Menambahkan profil dasar pengukuran ke library tv-foundation. (2b57fd7)
  • Menambahkan profil dasar pengukuran ke library tv-material. (1711ff5)

Perubahan API

  • Mengganti nama NavigationDrawerScope.doesTabRowHaveFocus menjadi NavigationDrawerScope.hasFocus. (I8286b)
  • Mengganti nama TabRowScope.isActivated menjadi TabRowScope.hasFocus. (Ic4273)

Perbaikan Bug

  • Memperbaiki kompatibilitas Carousel dengan item yang berdekatan yang menggunakan API pengembalian fokus. (7b2a7a4)
  • Menonaktifkan indikasi cahaya untuk API_LEVEL di bawah 28 karena tidak didukung oleh OS. (6d3616f)
  • Memperbaiki error ANR yang disebabkan oleh penempatan item yang tidak tepat dalam penampung lambat saat men-scroll cepat ke arah sebaliknya. (642d65c)
  • Menghapus padding latar belakang di Panel Navigasi Modal. (69965b2)
  • Memperbaiki Scrim di Panel Navigasi agar digambar di atas konten latar belakang, bukan di belakangnya. (d4bbefb)

Versi 1.0.0-alpha09

6 September 2023

androidx.tv:tv-foundation:1.0.0-alpha09 dan androidx.tv:tv-material:1.0.0-alpha09 dirilis. Versi 1.0.0-alpha09 berisi commit berikut ini.

Perubahan API

  • Menambahkan antarmuka ReusableComposition untuk mengelola siklus proses dan penggunaan kembali subkomposisi. (I812d1, b/252846775)
  • Menyinkronkan fork tv-foundation dengan compose-foundation. (I737c3, b/287011882)
  • Overload LazyLayout ditambahkan, yang menerima lambda LazyLayoutItemProvider, bukan objek biasa seperti sebelumnya. Overload sebelumnya tidak digunakan lagi. (I42a5a)
  • Menambahkan TvKeyboardAlignment untuk memungkinkan developer mengonfigurasi posisi keyboard virtual melalui AndroidImeOptions. (Idb772)
  • Tambahkan rememberCarouselState untuk mengingat CarouselState dengan Saver ke TV Compose Material. (Id7275)
  • Mengubah parameter scrimColor: Color menjadi parameter scrimBrush:Brush untuk memungkinkan pengguna menambahkan gradien ke scrim. (I254d4)

Versi 1.0.0-alpha08

26 Juli 2023

androidx.tv:tv-foundation:1.0.0-alpha08 dan androidx.tv:tv-material:1.0.0-alpha08 dirilis. Versi 1.0.0-alpha08 berisi commit berikut ini.

Fitur Baru

  • Memperkenalkan komponen Chip untuk materi Compose untuk TV. (I86da4)
  • Menambahkan komponen ListItem ke TV Compose Material. (I3f0b3)
  • Menambahkan komponen DenseListItem ke TV Compose Material. (I536bf)

Perubahan API

  • Menandai API materi TV publik sebagai Eksperimental. (I632e7)
  • Memperkenalkan TabRowScope untuk membagikan status dari composable TabRow dengan composable Tab dan mengganti nama properti TabColors. (Ief587)

Versi 1.0.0-alpha07

7 Juni 2023

androidx.tv:tv-foundation:1.0.0-alpha07 dan androidx.tv:tv-material:1.0.0-alpha07 dirilis. Versi 1.0.0-alpha07 berisi commit berikut ini.

Perubahan API

  • Indikasi skala komponen kini menyertakan Tidak ada untuk menonaktifkan penskalaan. (I50df5)
  • Menambahkan dukungan klik lama untuk Platform, Kartu, dan Tombol Material TV. (Id2b89)
  • CarouselItem dan CarouselScope telah dihapus. Animasi konten latar depan dapat dicapai di slide menggunakan Modifier.animateEnterExit dari AnimatedContentScope. (Ic038e)
  • Menggabungkan parameter color dan contentColor sebagai colors untuk Platform Material TV. (Ie69eb)
  • Memperkenalkan composable RadioButton di TV Material. (I08690)
  • Memperkenalkan composable Switch di TV Material. (I45e29)
  • Memperkenalkan composable Checkbox di TV Material. (I6a45a)
  • Memperkenalkan Platform yang tidak dapat berinteraksi di TV Material. (Ic5f85)
  • Membuat indikasi secara internal. (Ibff82)

Versi 1.0.0-alpha06

19 April 2023

androidx.tv:tv-foundation:1.0.0-alpha06 dan androidx.tv:tv-material:1.0.0-alpha06 dirilis. Versi 1.0.0-alpha06 berisi commit berikut ini.

Fitur Baru

  • Menambahkan implementasi Kartu Material 3 yang dioptimalkan untuk TV.
    • Kartu Dasar (I5b701)
    • ClassicCard, CompactCard, dan WideClassicCard (I70471)
    • StandardCardLayout dan WideCardLayout (I33fae)
  • Menambahkan penerapan Tombol Material 3 yang dioptimalkan untuk TV.

Perubahan API

  • Mengganti nama CarouselSlide dan slideCount di Carousel menjadi CarouselItem dan itemCount. (Ie554c)
  • Mengganti nama forward dan backward ContentTransforms menjadi StartToEnd dan EndToStart. (Ie554c)

Perbaikan Bug

  • Tangani tombol DPAD kembali saat difokuskan pada NavigationDrawer. (d654f4)

Versi 1.0.0-alpha05

22 Maret 2023

androidx.tv:tv-foundation:1.0.0-alpha05 dan androidx.tv:tv-material:1.0.0-alpha05 dirilis. Versi 1.0.0-alpha05 berisi commit ini.

Perubahan API

  • Memperkenalkan composable Panel Navigasi Samping ke tv-material. Untuk mempelajari cara menggunakan composable ini, lihat contoh. (I12c08)
  • Memperkenalkan composable Ikon di TV Material 3 (I72db9)
  • Memperkenalkan composable Permukaan ke tv-material dengan indikasi seperti Batas, Glow, dan Skala, yang dapat digunakan untuk membuat komponen yang dengan jelas menandai elemen yang difokuskan di layar TV. (I4a6d8), (Iceea1), (Iee4d4), (I79edf), (Icb376)
  • Mengupdate CarouselItem ke CarouselSlide agar cocok dengan nama parameter slideCount di 'Carousel' API (Ic4299)

Versi 1.0.0-alpha04

8 Februari 2023

androidx.tv:tv-foundation:1.0.0-alpha04 dan androidx.tv:tv-material:1.0.0-alpha04 dirilis. Versi 1.0.0-alpha04 berisi commit berikut ini.

Fitur Baru

  • Di baris, kolom, dan petak lambat, pivot akan diganti, jika perlu, untuk memastikan seluruh item ditampilkan. (11d7e40)
  • Menambahkan penyesuaian warna tab dalam berbagai status. (21b2925)
  • Carousel kini menerima animasi kustom untuk scroll manual maju dan mundur. (431494a)

Perubahan API

  • Mengganti nama androidx.tv.material menjadi androidx.tv.material3 dan meratakan struktur paket pada androidx.tv.material3. (I6ca52)
  • Indikator dalam baris Indikator Carousel sekarang menjadi slot yang dapat disesuaikan oleh developer. (268af2a)
  • Mengganti nama focusableItem menjadi immersiveListItem. Pengguna harus menambahkan pengubah focusable() atau clickable() secara manual bersama dengan immersiveListItem (5dd5078)(b/263061052)
  • Mengganti nama timeToDisplayMillis menjadi autoScrollDurationMillis di komponen Carousel. (431494a)
  • CarouselItem kini dibatasi untuk digunakan dalam Carousel. (431494a)
  • Carousel kini menerima ContentTransforms sebagai definisi animasi, bukan EnterTransition dan ExitTransitions. (431494a)
  • Memperkenalkan PinnableContainer API yang disebarkan oleh daftar lambat melalui komposisi lokal yang memungkinkan penyematan item saat ini. (Ib8881, b/259274257, b/195049010)
  • Menambahkan properti mainAxisItemSpacing ke TvLazyListLayoutInfo dan TvLazyGridLayoutInfo (I37765)

Perbaikan Bug

  • Perbarui tab-baris untuk memastikannya menangani jumlah tab ke 0 atau 1 dengan benar. (I44009), (1c01525), (b/264018028)
  • Memperbaiki error penelusuran fokus saat TvLazyColumn berisi TvLazyRow kosong. (e11b4fe), (b/260299091)
  • Pengubah clickable kini berfungsi dengan ImmersiveList. (5dd5078), (b/263061052)
  • Tombol Kembali kini ditangani dan digunakan untuk keluar dari Carousel Unggulan. (84c138c)
  • Carousel tidak kehilangan fokus pada beberapa penekanan tombol cepat. (799489f)
  • Carousel tidak kehilangan fokus pada penekanan tombol yang lama. (b2cf37e)
  • Mengatasi error saat jumlah slide carousel berubah. (b261247)

Versi 1.0.0-alpha03

7 Desember 2022

androidx.tv:tv-foundation:1.0.0-alpha03 dan androidx.tv:tv-material:1.0.0-alpha03 dirilis. Versi 1.0.0-alpha03 berisi commit ini.

Fitur Baru

  • TabRow kini tersedia sebagai API eksperimental yang memungkinkan pengguna menambahkan menu navigasi atas ke aplikasi mereka. Secara umum, perangkat TV berharap tab dimuat saat judul tab difokuskan di baris tab.
  • Indikator khusus TV seperti indikator garis bawah dan indikator pil ditawarkan untuk dapat langsung dipakai. Contoh penggunaan dapat ditemukan di tv-samples

Versi 1.0.0-alpha02

9 November 2022

androidx.tv:tv-foundation:1.0.0-alpha02 dan androidx.tv:tv-material:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit ini.

Perbaikan Bug

  • Meningkatkan performa scroll saat men-scroll koleksi TvLazyRows/TvLazyColumns dengan mengurangi ruang penelusuran fokus.(I723a3)

Versi 1.0.0-alpha01

5 Oktober 2022

androidx.tv:tv-foundation:1.0.0-alpha01 dan androidx.tv:tv-material:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit ini.

Fitur Baru

Versi alfa pertama berisi implementasi pratinjau awal dari komponen untuk kasus penggunaan TV, termasuk:

  • Menambahkan pengubah scrollableWithPivot untuk mengizinkan penampung scroll non-lazy seperti Baris, Kolom, Petak agar penampung scroll men-scroll konten sehingga item dalam fokus tetap berada di posisi yang sama pada layar TV.
  • Menambahkan composable TvLazyRow, TvLazyColumn, TvLazyHorizontalGrid, TvLazyVerticalGrid agar penampung scroll men-scroll konten sehingga item dalam fokus tetap berada di posisi yang sama pada layar TV.
  • Menambahkan composable Carousel Unggulan untuk TV yang memungkinkan pengguna membuat carousel banner scroll otomatis.
  • Menambahkan composable Daftar Imersif untuk TV yang memungkinkan pengguna membuat Baris/Kolom/Petak Imersif yang mengubah latar belakang berdasarkan item daftar yang sedang difokuskan.

Masalah umum

  • Saat penampung scroll mendapatkan fokus, elemen pertama tidak mendapatkan fokus secara default.
  • Memfokuskan ke TextField tidak selalu membuka keyboard atau dapat menghambat fokus untuk berpindah ke kolom lain.
  • Scroll secara vertikal di LazyColumn yang berisi LazyRows memiliki performa buruk.