Oluşturulan widget önizlemeleri, widget'larınız için dinamik ve kişiselleştirilmiş önizlemeler oluşturmanıza olanak tanır. Bu önizlemeler, widget'larınızın kullanıcının ana ekranında nasıl görüneceğini doğru şekilde yansıtır. Bu önizlemeler, bir push API aracılığıyla sağlanır. Yani uygulamanız, widget ana makinesinden açık bir istek almadan yaşam döngüsü boyunca herhangi bir noktada önizleme sağlar.
Bu kılavuzda, Glance tabanlı widget'lar için önizlemelerin nasıl sağlanacağı açıklanmaktadır. Widget'ınız RemoteViews ile uygulanıyorsa Widget seçicinize önizleme ekleme başlıklı makaleyi inceleyin.
Uygulamanızın Glance widget'ları için widget seçici deneyimini iyileştirmek amacıyla Android 15 ve sonraki sürümlerde GlanceAppWidget.providePreview kullanarak oluşturulmuş bir widget önizlemesi sağlayın. Daha eski sürümlerde ve oluşturulmuş önizleme kullanılamıyorsa Android 15 ve sonraki sürümlerde yedek olarak previewImage belirtin.
Daha fazla bilgi için YouTube'daki Uygulamanızı canlı güncellemeler ve widget'larla zenginleştirme başlıklı makaleyi inceleyin.
Uygulamanızı oluşturulan widget önizlemeleri için ayarlama
Oluşturulan widget önizlemelerini Android 15 veya sonraki sürümlerdeki cihazlarda göstermek için öncelikle
compileSdk değerini 35 veya daha yüksek bir değere ayarlayınbuild.gradle. Bu sayede, widget seçicide
oluşturulan önizlemeler etkinleştirilir.
Uygulamalar daha sonra setWidgetPreview özelliğini GlanceAppWidgetManager içinde kullanabilir. Kötüye kullanımı önlemek ve sistem sağlığıyla ilgili endişeleri azaltmak için setWidgetPreview, sıklık sınırlaması olan bir API'dir. Varsayılan sınır saatte yaklaşık iki görüşmedir.
Jetpack Glance ile güncellenmiş önizleme oluşturma
Jetpack Glance ile oluşturulan widget'lar için aşağıdakileri yapın:
Önizleme için composable içerik sağlamak üzere
GlanceAppWidget.providePreviewişlevini geçersiz kılın.provideGlance'da yaptığınız gibi, uygulamanızın verilerini yükleyin ve önizlemenin doğru verileri göstermesi için bu verileri widget'ın içerik composable'ına iletin.provideGlance'dan farklı olarak bu, yeniden oluşturma veya efekt içermeyen tek bir kompozisyondur.Önizlemeyi oluşturup yayınlamak için
GlanceAppWidgetManager.setWidgetPreviewsişlevini çağırın.
Sistemden önizleme sağlamak için geri arama yapılmaz. Bu nedenle, uygulamanızın setWidgetPreviews ne zaman arama yapacağına karar vermesi gerekir. Güncelleme stratejisi, widget'ınızın kullanım alanına bağlıdır:
- Widget'ta statik bilgiler varsa veya hızlı işlem widget'ıysa uygulama ilk kez başlatıldığında önizlemeyi ayarlayın.
- Uygulamanızda veri bulunduktan sonra (ör. kullanıcı oturum açtıktan veya ilk kurulum yapıldıktan sonra) önizlemeyi ayarlayabilirsiniz.
- Önizlemeleri belirli bir sıklıkta güncelleyecek şekilde periyodik bir görev ayarlayabilirsiniz.
Oluşturulan önizlemelerle ilgili sorunları giderme
Sık karşılaşılan bir sorun, önizleme oluşturduktan sonra widget'ın bırakma boyutuna göre önizleme resminde resimlerin, simgelerin veya diğer composable'ların eksik olmasıdır. Bu bırakma boyutu, belirtilmişse targetCellWidth ve targetCellHeight, belirtilmemişse uygulama widget'ı sağlayıcı bilgi dosyasındaki minWidth ve minHeight tarafından tanımlanır.
Bunun nedeni, Android'in varsayılan olarak yalnızca widget'ın minimum boyutunda görünen composable'ları oluşturmasıdır. Yani Android, previewSizeMode değerini varsayılan olarak SizeMode.Single olarak ayarlar. Hangi composable'ların çizileceğini belirlemek için uygulama widget'ı sağlayıcı bilgisi XML'sinde android:minHeight ve android:minWidth kullanılır.
Bu sorunu düzeltmek için GlanceAppWidget içinde previewSizeMode değerini geçersiz kılın ve SizeMode.Responsive olarak ayarlayın. Böylece bir dizi DpSize değeri sağlamış olursunuz. Bu, Android'e önizleme için oluşturması gereken tüm düzen boyutlarını bildirir. Böylece tüm öğeler doğru şekilde gösterilir.
Belirli form faktörleri için optimizasyon yapın. Minimum boyuttan başlayarak ve widget'ınızın ayrılma noktalarını takip ederek bir veya iki boyut sağlayın. previewImage En az bir tane belirtin. Farklı ızgara boyutları için uygun minimum DP değerlerini widget tasarım kılavuzunda bulabilirsiniz.
Daha eski Android sürümlerini destekleme
Android 14 ve önceki sürümlerin yüklü olduğu cihazlarda widget önizlemelerini göstermek için veya Android 15 ve sonraki sürümlerde oluşturulan önizleme kullanılamadığında previewImage özelliğini belirtin.
Widget'ın görünümünü değiştirirseniz önizleme resmini güncelleyin.