Glance

Membuat tata letak untuk platform jarak jauh menggunakan API khas Jetpack Compose.
Update Terbaru Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
7 Mei 2025 1.1.1 - - 1.2.0-alpha01

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada Glance, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk informasi selengkapnya.

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

Groovy

dependencies {
    // For Glance support
    implementation "androidx.glance:glance:1.2.0-alpha01"
    // For AppWidgets support
    implementation "androidx.glance:glance-appwidget:1.2.0-alpha01"

    // For Wear-Tiles support
    implementation "androidx.glance:glance-wear-tiles:1.0.0-alpha05"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.1.0-beta03"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    // For Glance support
    implementation("androidx.glance:glance:1.2.0-alpha01")
    
    // For AppWidgets support
    implementation("androidx.glance:glance-appwidget:1.2.0-alpha01")

    // For Wear-Tiles support
    implementation("androidx.glance:glance-wear-tiles:1.0.0-alpha05")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.1.0-beta03"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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.

Versi 1.2

Versi 1.2.0-alpha01

7 Mei 2025

androidx.glance:glance-*:1.2.0-alpha01 dirilis. Versi 1.2.0-alpha01 berisi commit ini.

Perubahan API

  • currentCompositeKeyHash tidak digunakan lagi. Sebagai gantinya, gunakan currentCompositeKeyHashCode. API penggantian mengenkode hash yang sama dengan lebih banyak bit, yang secara eksponensial mengurangi kemungkinan dua grup acak yang tidak terkait dalam hierarki komposisi memiliki kunci hash yang sama.(I4cb6a, b/177562901)
  • Menambahkan API baru untuk menentukan alfa (0f hingga 1f) untuk composable Gambar sekilas dan pengubah gambar latar. Jika tidak ditentukan, mempertahankan alfa dari gambar sumber. (I8ad05)
  • Menambahkan Glance API untuk pratinjau yang dihasilkan. Ganti GlanceAppWidget.providePreview untuk memberikan tata letak pratinjau untuk widget Anda. Kemudian, panggil GlanceAppWidgetManager.setWidgetPreview untuk menetapkan pratinjau. (Iced16)
  • Menambahkan MultiProcessGlanceAppWidget untuk mendukung konfigurasi multiproses (Idbb90)
  • Menghapus tag eksperimental, kini kami mendukung lambda (I74d98, b/299361317)
  • Mengizinkan penentuan penerima lambda untuk GlanceAppWidget.runComposition (I84829)
  • Menambahkan parameter previewSize ke requestPinGlanceAppWidget (I9f8f0, b/303256067)

Perbaikan Bug

  • Menghapus garis besar manual akses ke API platform baru karena hal ini terjadi secara otomatis melalui pemodelan API saat menggunakan R8 dengan AGP 7.3 atau yang lebih baru (misalnya, R8 versi 3.3) dan untuk semua build saat menggunakan AGP 8.1 atau yang lebih baru (misalnya, D8 versi 8.1). Klien yang tidak menggunakan AGP disarankan untuk mengupdate ke D8 versi 8.1 atau yang lebih baru. Baca artikel ini untuk informasi selengkapnya. (If6b4c, b/345472586)
  • Mengupdate library glance-appwidget ke compileSdk 35 (I2e26b)

Versi 1.1

Versi 1.1.1

16 Oktober 2024

androidx.glance:glance-*:1.1.1 dirilis. Versi 1.1.1 berisi commit ini.

Perbaikan Keamanan

  • Mulai perubahan ini, androidx dikompilasi terhadap protobuf 4.28.2 untuk mengatasi CVE-2024-7254. Upgrade dependensi Anda pada androidx.glance:glance-appwidget-proto dan androidx.glance:glance-appwidget-external-protobuf versi 1.1.0 ke 1.1.1 untuk mengatasi risiko kerentanan.

Versi 1.1.0

12 Juni 2024

androidx.glance:glance-*:1.1.0 dirilis. Versi 1.1.0 berisi commit ini.

Perubahan penting sejak versi 1.0.0

  • Memindahkan Glance ke 1.1.0 stabil.

Versi 1.1.0-rc01

14 Mei 2024

androidx.glance:glance-*:1.1.0-rc01 dirilis. Versi 1.1.0-rc01 berisi commit ini.

Fitur Baru

  • Menambahkan parameter lebar dan tinggi ke anotasi Pratinjau untuk Glance. Memindahkan 1.1.0 ke Kandidat Rilis.

Perubahan API

  • Menambahkan parameter opsional ke Scaffold. (If753f)
  • Menambahkan parameter lebar dan tinggi ke Glance @Preview. (Ibabe8)
  • Menghapus dukungan untuk pratinjau kartu glance wear. (I3850a)
  • Menambahkan API untuk menetapkan nilai bobot kustom untuk FontStyle. (I7390a)
  • Mengganti nama Enums ImplementationMode Viewfinder untuk lebih mencerminkan implementasi yang mendasarinya, dan menambahkan konstanta tetap untuk TransformationInfo.sourceRotation (Ic6149)

Perbaikan Bug

  • Memperbaiki bug yang menyebabkan masalah rendering untuk ViewGroups dalam mode kompatibilitas mundur (I8de92)

Kontribusi Eksternal

Versi 1.1.0-beta02

17 April 2024

androidx.glance:glance-*:1.1.0-beta02 dirilis. Versi ini berisi jar sumber yang tidak ada dalam rilis sebelumnya.

Versi 1.1.0-beta01

3 April 2024

androidx.glance:glance-*:1.1.0-beta01 dirilis. Versi 1.1.0-beta01 berisi commit ini.

Versi 1.1.0-alpha01

7 Februari 2024

androidx.glance:glance-*:1.1.0-alpha01 dirilis. Versi 1.1.0-alpha01 berisi commit ini.

Fitur Baru

  • Library pengujian unit untuk Glance yang tidak memerlukan UI Automator. Kode Glance dapat diuji langsung tanpa harus meng-inflate tampilan.
  • Komponen tingkat yang lebih tinggi untuk tata letak yang lebih sederhana.
  • Pengubah dan opsi tema baru.
  • API baru untuk mendapatkan alur RemoteViews dari komposisi, runComposition

Perubahan API

  • Menambahkan peran warna widgetBackground baru ke tema Glance. (Ia2ab8)
  • Menambahkan GlanceAppWidget.runComposition (I6344c, b/298066147)
  • Menambahkan komponen TopBar baru (Ibd361)
  • Menambahkan penggantian ke pengubah clickable. (Iacecf)
  • Menambahkan API baru untuk tombol tinting. Ini akan bersifat eksperimental hingga versi 1.0 dirilis. (I92523)
  • Menambahkan runGlanceAppWidgetUnitTest yang menyediakan cakupan untuk memanggil metode di GlanceAppWidgetUnitTest seperti provideComposable untuk menyediakan composable kecil yang terisolasi untuk pengujian, onNode untuk menemukan elemen composable Glance dalam konten yang disediakan. Hal ini memungkinkan Anda menulis pengujian unit untuk setiap fungsi composable di appWidget untuk memverifikasi bahwa dengan input tertentu, fungsi akan menghasilkan kumpulan elemen composable glance yang diinginkan. (I2f682)
  • Menambahkan pengubah testTag dalam semantik untuk digunakan dalam pengujian unit. (I8f62f)
  • update TitleBar - teks dan ikon dapat diwarnai satu per satu. (Ia0a60)
  • Menambahkan komponen scaffold (I8a736)
  • Menambahkan filter hasActionRunCallbackClickAction dan pernyataan assertHasActionRunCallbackClickAction untuk menguji actionRunCallack. Selain itu, menambahkan fungsi varian singkat tambahan untuk filter pengujian terkait tindakan - hasStartActivityClickAction<activityClass>(..), hasStartServiceAction<receiverClass>(..), hasSendBroadcastAction<receiverClass>(..). Menambahkan varian serupa untuk pasangan assertHasXXX. (Ieca63)
  • Memindahkan API yang belum dirilis. Mengubah pengubah dari internal menjadi publik, tetapi library dibatasi (If2a08)
  • Menambahkan metode onCompositionError tempat developer dapat menjalankan kode saat terjadi error (I9b56f)
  • Menambahkan API tombol dan iconbutton ke glance (I0fd6f)
  • Menambahkan filter isLinearProgressIndicator, isIndeterminateLinearProgressIndicator, isIndeterminateCircularProgressIndicator agar cocok dengan indikator progres. Tambahan menyertakan filter hasAnyDescendants untuk menguji apakah node memiliki turunan dalam subhierarkinya yang cocok dengan matcher tertentu (Ifd426)
  • Menambahkan pernyataan dan filter untuk mengaktifkan pengujian tindakan klik yang memulai layanan / aktivitas atau siaran. Juga mencakup pengujian apakah elemen input diperiksa. (I3041c)

Versi 1.0.0

Versi 1.0.0-alpha06

7 Februari 2024

androidx.glance:glance-appwidget-preview:1.0.0-alpha06 dan androidx.glance:glance-preview:1.0.0-alpha06 dirilis. Versi 1.0.0-alpha06 berisi commit berikut ini.

Fitur Baru

  • Versi diperbarui untuk mengikuti modul Glance utama.

Versi 1.0.0

6 September 2023

androidx.glance:glance-*:1.0.0 dirilis. Versi 1.0.0 berisi commit ini.

Fitur utama 1.0.0

  • Memindahkan Glance ke versi stabil 1.0.0

Versi 1.0.0-rc01

26 Juli 2023

androidx.glance:glance-*:1.0.0-rc01 dirilis. Versi 1.0.0-rc01 berisi commit ini.

Memindahkan Glance ke rc01 dalam perjalanan menuju rilis stabil untuk 1.0.0.

Fitur Baru

  • Menambahkan parameter utama ke lambda tindakan untuk pemanggilan tindakan yang lebih stabil.
  • Menambahkan kemampuan untuk memberikan tindakan ActvityOptions ke startActivity.
  • Menambahkan dukungan untuk Android 14

Perubahan API

  • Menambahkan parameter kunci opsional untuk semua elemen yang menerima lambda. (Id96c1, b/282445798)
  • Menambahkan dukungan untuk menetapkan paket ActivityOptions untuk actionStartActivity (I6a08d)
  • Menggabungkan file API publik dan eksperimental untuk jalur d,e,f,g (I03646, b/278769092)
  • T/A, perubahan file API hanyalah metode pengurutan ulang (I5fa95)
  • Menambahkan API untuk menetapkan CoroutineContext untuk permintaan GlanceAppWidgetReceiver (I0a100)
  • Menambahkan API baru untuk menyediakan ActivityOptions untuk LazyColumn dan LazyVerticalGrid yang akan digunakan untuk semua tindakan dalam daftar.(Id8d71)

Perbaikan Bug

  • T/A, perubahan file API hanyalah metode pengurutan ulang (I5fa95)
  • Demo gaya komponen teks Glance (Ie78a4)

Versi 1.0.0-beta01

10 Mei 2023

androidx.glance:glance-*:1.0.0-beta01 dirilis. Versi 1.0.0-beta01 berisi commit ini.

Fitur Baru

  • Memindahkan library ke versi beta.
  • Dukungan untuk tema menggunakan GlanceTheme , menambahkan modul glance-material dan glance-material3 untuk mendukung tema gaya material 2 dan material 3 di Glance.
  • Dukungan untuk FontFamily ditambahkan ke API teks.
  • Memindahkan GlanceAppWidget ke mekanisme update berbasis sesi WorkManager. Pengguna Glance untuk AppWidgets kini harus mengganti GlanceAppWidget.provideGlance, bukan metode Content lama. Karena hal ini sekarang terjadi di pekerja, ini adalah tempat yang tepat untuk memuat resource, database, atau item jaringan tanpa harus memiliki pekerja terpisah.

Perubahan API

  • Menambahkan *Defaults API untuk Button, Checkbox, RadioButton, dan Switch. Hal ini membuat glance lebih selaras dengan pola Jetpack Compose. (I94828)
  • Modul template Glance baru (I94459)
  • Membuat ResourceColorProvider internal ke modul. Perubahan yang dapat menyebabkan gangguan. Diperlukan karena ResourceColorProvider hanya boleh digunakan untuk tema dinamis guna menghindari situasi saat beberapa warna adalah resource dinamis dan beberapa warna di-resolve sepenuhnya. (Ib0db7)
  • Menambahkan FontFamily sebagai opsi untuk TextStyle. (Ic19ba, b/274179837)
  • Nama parameter nilai untuk Enum.valueOf diubah (Ia9b89)
  • Lebih banyak pengecualian yang ditampilkan dari enum valueOf (I818fe)
  • Memperbarui GlanceAppWidget untuk menggunakan provideGlance sebagai titik entri utama. GlanceAppWidget.Content tidak digunakan lagi. (I202b5)
  • Menambahkan opsi untuk menyediakan warna tint untuk gambar (I26192, b/212418562)
  • Lebih banyak nullability jenis nilai yang ditampilkan dari fungsi tersembunyi yang tidak digunakan lagi. (Ibf7b0)
  • Menambahkan anotasi @JvmDefaultWithCompatibility (I8f206)
  • Menghapus SingleEntityTemplateData.displayHeader yang tidak digunakan. (I7f094)
  • Menambahkan dukungan untuk menggunakan lambda sebagai callback (Ia0bbd)
  • Memindahkan DayNightColorProvider ke modul glance (I1842c, b/256934779)
  • Menghapus LocalColorProvider dari Template. Template kini akan menggunakan GlanceTheme.colors (Ic15e2)
  • Menghapus nullability dari Text(style: TextStyle) (I7123b, b/237012816)
  • Warna teks default menjadi hitam. hapus nullability (I3072c, b/237012816)
  • Membuat tema dinamis ColorProviders menjadi objeknya sendiri. Membuat ResourceColorProvider internal ke modul. (Id0e2d, b/237012816)
  • Tambahkan kategori Undefined ke ImageSize. (I2fa39)
  • Menghapus fungsi GlanceAppWidget.Content yang tidak digunakan lagi (Ib05f6)
  • Menambahkan pengubah sebagai parameter ke AndroidRemoteViews. (I515d4)
  • Menambahkan GlanceAppWidget.compose untuk mempermudah pengujian unit (Ie9b28)

Perbaikan Bug

  • Menambahkan widget demo untuk font teks Glance (I5c3d7)
  • Membuat AndroidRemoteViews dapat diubah ukurannya dengan Pengubah.
  • Masalah terkait warna tema yang tidak konsisten telah diperbaiki
  • Semua resource kini diberi awalan untuk menghindari konflik

Versi 1.0.0-alpha05

5 Oktober 2022

androidx.glance:glance:1.0.0-alpha05, androidx.glance:glance-appwidget:1.0.0-alpha05, dan androidx.glance:glance-wear-tiles:1.0.0-alpha05 dirilis. Versi 1.0.0-alpha05 berisi commit ini.

Fitur Baru

  • Menambahkan requestPinGlanceAppWidget ke GlanceAppWidgetManager, yang memungkinkan aplikasi meminta pengguna untuk menambahkan widget berbasis Glance ke layar utama mereka. (Ic6e47)
  • Menambahkan ACTION_DEBUG_UPDATE ke GlanceAppWidgetReceiver untuk memungkinkan developer memaksa widget mereka diupdate dari adb pada emulator dan perangkat yang telah di-root. (I94ae1)

Perubahan API

  • Menghapus tombol tindakan header di template Glance untuk menyederhanakan kasus penggunaan. (Ie4387)
  • Memfaktorkan ulang Template Entity Tunggal untuk menggunakan kembali desain subsistem Blokir. (Iecd2c)
  • Memfaktorkan ulang Template Daftar Glance untuk menggunakan desain Blokir Text/Image/Action. (If0cc1)
  • Menambahkan rentang nomor prioritas untuk TextBlock dan ImageBlock. (I73100)

Perbaikan Bug

  • Menghapus dependensi Material3. (I28d1c)
  • Berpindah ke sistem yang lebih konsisten untuk menambahkan margin dan spasi dalam tata letak template Glance. (I29773)
  • Memperbaiki aturan Proguard yang salah format yang memblokir rilis yang diminifikasi dari pembuatan.

Versi 1.0.0-alpha04

10 Agustus 2022

androidx.glance:glance:1.0.0-alpha04, androidx.glance:glance-appwidget:1.0.0-alpha04, dan androidx.glance:glance-wear-tiles:1.0.0-alpha04 dirilis. Versi 1.0.0-alpha04 berisi commit berikut ini.

Fitur Baru

  • Menambahkan fitur pewarnaan Tombol.
  • Menambahkan anotasi GlanceComposable untuk pemeriksaan waktu kompilasi yang lebih baik.
  • Menambahkan fitur Glance khusus Wear.

Perubahan API

  • Mengupdate Glance Gallery Data API dan Condensed View. (Ibc7a8)
  • Menambahkan ButtonColors untuk mengonfigurasi tombol. (Iea88d, b/236305351)
  • Mengganti nama ColorProvider.resolve menjadi ColorProvider.getColor (Ic9dfe)
  • Menambahkan metode copy() ke TextStyle. (I9aef6)
  • Menambahkan class ColorProviders yang dapat digunakan sebagai bagian dari tema untuk Glance. (I848b9, b/237012816)
  • Menambahkan dukungan Template Daftar ke gaya daftar dan tampilan yang diciutkan. (I50cdc)
  • Menambahkan semantik ke GlanceModiier dan GlanceCurvedModifier. (Ifda7e)
  • Menambahkan anotasi GlanceComposable. (I5dbf0)
  • Memindahkan Template Glance ke project Glance utama. (I9db94)
  • Menambahkan ColorProvider.resolve() (Ife532, b/214733442)
  • Metode baru untuk mendapatkan GlanceId dari appWidgetId yang ada atau intent dari aktivitas konfigurasi (Icb70c, b/230391946)
  • Menambahkan anotasi GlanceComposable. (I2c21f)
  • Menambahkan GlanceRemoteViews untuk menjalankan komposisi di luar GlanceAppWidget. (I18f92)
  • Menghapus Warna di ProgressIndicatorDefaults. (I40299)
  • Mengganti nama metode onRun ActionCallback menjadi onAction, agar konsisten dengan API publik, seperti yang diperlukan oleh masukan ulasan API. (Icfa57)
  • Mengonversi tata letak template glance untuk menggunakan peta (I46bfd)
  • Menambahkan composable RadioButton (I4ecce)
  • Menambahkan GlanceWearTiles untuk menulis kartu Wear (Ia9f65)
  • Menambahkan clickable ke GlanceCurvedModifier (Iec2a0)
  • Menerapkan CurvedRow sebagai cakupan dan membuat DSL untuk menambahkan elemen composable dan/atau melengkung normal. Juga menambahkan curvedLine dan curvedSpacer yang diterjemahkan ke ArcLine dan ArcSpacer dalam kartu proto (Ib955b)
  • Mengubah nullability di core dan appcompat agar sesuai dengan Tiramisu DP2 (I0cbb7)
  • Menambahkan dukungan untuk RuncallbackAction di kartu glance-wear, hanya RunCallbackAction TANPA parameter yang didukung untuk saat ini (Ide64a)

Kontribusi Eksternal

  • Diupdate: compose:ui:ui-test api (updateApi) karena migrasi test-coroutines-lib (I3366d)

Versi 1.0.0-alpha03

23 Februari 2022

androidx.glance:glance-*:1.0.0-alpha03 dirilis. Versi 1.0.0-alpha03 berisi commit ini.

Fitur Baru

  • Definisi status disederhanakan menjadi default untuk Preferensi.

Perubahan API

  • Menyederhanakan handle status dengan menjadikan PreferencesGlanceStateDefinition sebagai handle status default. Menghapus GlanceAppWidget.updateAppWidgetState dan memperkenalkan updateAppWidgetState yang menggunakan Preferences secara default. (I58963)
  • Menambahkan class Glance TemplateText dan memperbarui desain Template (I4e146)
  • Menambahkan infrastruktur outline untuk template Freeform (If03d6)
  • Memperbarui ke tata letak SingleEntityTemplate (If925d)
  • Menambahkan LazyVerticalGrid (I5f442)
  • Menggunakan ColorProvider pada SingleEntityTemplate (I01ee0)
  • Memperbarui nama class template (I3720e)
  • Menambahkan composable LinearProgressIndicator dan CircularProgressIndicator. (Ie116b)

Perbaikan Bug

  • Penerapan template glance awal, menentukan data "single item template" dan tata letak template contoh (I35837)
  • Menyejajarkan isi kolom ke tengah secara default (I264be)
  • Perbaikan bug dengan fillMaxSize/Width/Height dalam glance-wear-tiles (I0a39f)

Versi 1.0.0-alpha02

26 Januari 2022

androidx.glance:glance-*:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit ini.

Fitur Baru

Rilis ini berisi kumpulan API untuk mem-build Kartu Wear menggunakan runtime Compose dengan composable yang dioptimalkan untuk "Glanceable"

  • Deklarasikan layanan kartu Wear Anda dengan memperluas GlanceTileService, sebuah layanan untuk membuat kartu di fungsi Content() composable.
  • Composable glance khusus kartu Wear: CurvedRow, CurvedText.
  • Tangani mode linimasa yang berbeda untuk kartu dengan menentukan TimelineMode.SingleEntry dan TimelineMode.TimeBoundEntries.
  • LocalTimeInterval, Komposisi lokal mengacu pada interval waktu tertentu.
  • BorderModifer adalah GlanceModifier yang menerapkan batas di sekeliling elemen.

Rilis ini juga menambahkan Indikator Progres ke AppWidget Glance.

Perubahan API

  • Menambahkan composable LinearProgressIndicator dan CircularProgressIndicator. (Ie116b)
  • Mengubah actionStartBroadcastReceiver menjadi actionSendBroadcast (I7d555)
  • Meneruskan Konteks ke callback onDelete GlanceAppWidget (I4c795)

Perbaikan Bug

  • Penanganan OPTIONS_APPWIDGET_SIZES yang benar jika ada tetapi kosong. (I01f82)

Versi 1.0.0-alpha01

15 Desember 2021

androidx.glance:glance:1.0.0-alpha01, androidx.glance:glance-appwidget:1.0.0-alpha01, dan androidx.glance:glance-appwidget-proto:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit berikut ini.

Fitur dalam rilis awal

  • Rilis pertama Glance mencakup kumpulan API pertama untuk membuat AppWidget menggunakan Compose Runtime dengan kumpulan Composable baru yang dioptimalkan untuk “Glanceable”.

Fitur