Pratinjau widget yang dihasilkan memungkinkan Anda membuat pratinjau yang dinamis dan dipersonalisasi untuk widget yang secara akurat mencerminkan tampilannya di layar utama pengguna. Pratinjau ini disediakan melalui push API, yang berarti aplikasi Anda menyediakan pratinjau kapan saja selama siklus prosesnya tanpa menerima permintaan eksplisit dari host widget.
Panduan ini membahas cara menyediakan pratinjau untuk widget berbasis Glance. Jika widget
Anda diimplementasikan dengan RemoteViews, lihat Menambahkan pratinjau ke pemilih
widget.
Untuk meningkatkan pengalaman pemilih widget aplikasi Anda untuk widget Glance, berikan
pratinjau widget yang dihasilkan menggunakan GlanceAppWidget.providePreview di
perangkat Android 15 dan yang lebih tinggi, dan tentukan previewImage
untuk versi yang lebih rendah, dan sebagai penggantian di Android 15+ jika
pratinjau yang dihasilkan tidak tersedia.
Untuk mengetahui informasi selengkapnya, lihat Memperkaya aplikasi Anda dengan widget dan live update di YouTube.
Menyiapkan aplikasi untuk pratinjau widget yang dihasilkan
Untuk menampilkan pratinjau widget yang dihasilkan di perangkat Android 15 atau yang lebih tinggi, tetapkan nilai
compileSdk ke 35 atau yang lebih tinggi terlebih dahulu di file build.gradle modul untuk mengaktifkan
pratinjau yang dihasilkan di pemilih widget.
Kemudian, aplikasi dapat menggunakan setWidgetPreview di GlanceAppWidgetManager. Untuk mencegah
penyalahgunaan dan mengurangi masalah kesehatan sistem, setWidgetPreview adalah API dengan
pembatasan kapasitas. Batas defaultnya adalah sekitar dua panggilan per jam.
Membuat pratinjau yang diperbarui dengan Jetpack Glance
Untuk widget yang dibuat dengan Jetpack Glance, lakukan hal berikut:
Ganti fungsi
GlanceAppWidget.providePreviewuntuk menyediakan konten composable untuk pratinjau. Seperti yang Anda lakukan diprovideGlance, muat data aplikasi dan teruskan ke composable konten widget, agar pratinjau menampilkan data yang akurat. Tidak sepertiprovideGlance, ini adalah komposisi tunggal tanpa rekomposisi atau efek.Panggil
GlanceAppWidgetManager.setWidgetPreviewsuntuk membuat dan memublikasikan pratinjau.
Tidak ada callback dari sistem untuk memberikan pratinjau, sehingga aplikasi Anda harus
memutuskan kapan harus memanggil setWidgetPreviews. Strategi update bergantung pada
kasus penggunaan widget Anda:
- Jika widget memiliki informasi statis atau merupakan tindakan cepat, tetapkan pratinjau saat aplikasi pertama kali diluncurkan.
- Anda dapat menyetel pratinjau setelah aplikasi memiliki data; misalnya, setelah login pengguna atau penyiapan awal.
- Anda dapat menyiapkan tugas berkala untuk memperbarui pratinjau pada ritme yang dipilih.
Memecahkan masalah pratinjau yang dihasilkan
Masalah umum adalah setelah Anda membuat pratinjau, gambar, ikon, atau composable
lainnya mungkin tidak ada dalam gambar pratinjau, relatif terhadap ukuran
penempatan widget. Ukuran penempatan ini ditentukan oleh targetCellWidth dan
targetCellHeight jika ditentukan, atau oleh minWidth dan minHeight dalam
file info penyedia widget aplikasi.
Hal ini terjadi karena Android, secara default, hanya merender composable yang terlihat pada
ukuran minimum widget. Dengan kata lain, Android menetapkan previewSizeMode ke
SizeMode.Single secara default. Fungsi ini menggunakan android:minHeight dan android:minWidth
dalam XML info penyedia widget aplikasi untuk menentukan composable yang akan digambar.
Untuk memperbaikinya, ganti previewSizeMode di GlanceAppWidget dan tetapkan ke
SizeMode.Responsive, yang memberikan kumpulan nilai DpSize. Hal ini memberi tahu Android
semua ukuran tata letak yang perlu dirender untuk pratinjau, yang memastikan semua
elemen ditampilkan dengan benar.
Mengoptimalkan untuk faktor bentuk tertentu. Berikan satu atau dua ukuran mulai dari
minimum dan mengikuti titik henti sementara widget Anda. Tentukan setidaknya satu
previewImage untuk mendukung versi Android yang lebih rendah. Anda dapat menemukan
nilai DP minimum yang sesuai untuk berbagai ukuran petak di
panduan desain widget.
Mendukung versi Android yang lebih rendah
Untuk menampilkan pratinjau widget di perangkat yang menjalankan Android 14 dan yang lebih rendah,
atau saat pratinjau yang dihasilkan tidak tersedia di Android 15 dan yang lebih tinggi,
tentukan atribut previewImage.
Jika Anda mengubah tampilan widget, perbarui gambar pratinjau.