Com as visualizações geradas de widgets, você cria visualizações dinâmicas e personalizadas que refletem com precisão como eles vão aparecer na tela inicial de um usuário. Elas são fornecidas por uma API push, o que significa que seu app fornece a prévia a qualquer momento durante o ciclo de vida sem receber uma solicitação explícita do host do widget.
Este guia explica como fornecer prévias para widgets baseados no Glance. Se o widget for implementado com RemoteViews, consulte Adicionar prévias ao seletor de widgets.
Para melhorar a experiência do seletor de widgets do app para widgets do Glance, forneça uma
prévia gerada usando GlanceAppWidget.providePreview em
dispositivos Android 15 e mais recentes e especifique um previewImage
para versões anteriores e como um substituto no Android 15 ou mais recente se
uma prévia gerada não estiver disponível.
Para mais informações, assista Enriqueça seu app com atualizações em tempo real e widgets no YouTube.
Configurar o app para visualizações de widgets gerados
Para mostrar as visualizações de widgets gerados em um dispositivo Android 15 ou mais recente, primeiro defina o valor de
compileSdk como 35 ou mais recente no arquivo build.gradle do módulo para ter a
capacidade de fornecer RemoteViews ao seletor de widgets.
Em seguida, os apps podem usar setWidgetPreview em GlanceAppWidgetManager. Para evitar
abusos e reduzir problemas de integridade do sistema, a setWidgetPreview é uma API
com limitação de taxa. O limite padrão é de aproximadamente duas chamadas por hora.
Gerar uma prévia atualizada com o Jetpack Glance
Para widgets criados com o Jetpack Glance, faça o seguinte:
Substitua a função
GlanceAppWidget.providePreviewpara fornecer o conteúdo combinável para a prévia. Como você faria emprovideGlance, carregue os dados do app e transmita-os para o elemento combinável de conteúdo do widget para que a prévia mostre dados precisos. Ao contrário deprovideGlance, essa é uma única composição sem recomposição ou efeitos.Chame
GlanceAppWidgetManager.setWidgetPreviewspara gerar e publicar a prévia.
Não há um callback do sistema para fornecer prévias. Portanto, o app precisa
decidir quando chamar setWidgetPreviews. A estratégia de atualização depende do caso de uso do widget:
- Se o widget tiver informações estáticas ou for uma ação rápida, defina a prévia quando o app for iniciado pela primeira vez.
- Você pode definir a prévia depois que o app tiver dados, por exemplo, após um início de sessão do usuário ou uma configuração inicial.
- É possível configurar uma tarefa periódica para atualizar as prévias na cadência escolhida.
Solução de problemas com visualizações geradas
Um problema comum é que, depois de gerar uma prévia, imagens, ícones ou outros
combináveis podem estar faltando na imagem de prévia, em relação ao tamanho de
soltar do widget. Esse tamanho de redução é definido por targetCellWidth e targetCellHeight, se especificado, ou por minWidth e minHeight no arquivo de informações do provedor de widget de app.
Isso ocorre porque o Android, por padrão, renderiza apenas elementos combináveis visíveis no
tamanho mínimo do widget. Em outras palavras, o Android define previewSizeMode como
SizeMode.Single por padrão. Ele usa android:minHeight e android:minWidth
no XML de informações do provedor de widgets de app para determinar quais elementos combináveis precisam ser desenhados.
Para corrigir isso, substitua previewSizeMode no GlanceAppWidget e defina como SizeMode.Responsive, fornecendo um conjunto de valores DpSize. Isso informa ao Android
todos os tamanhos de layout necessários para renderizar a prévia, garantindo que todos os
elementos sejam exibidos corretamente.
Otimize para formatos específicos. Forneça um ou dois tamanhos começando pelo mínimo e seguindo os pontos de interrupção do widget. Especifique pelo menos um previewImage para compatibilidade com versões anteriores. Você pode encontrar os valores mínimos de DP adequados para diferentes tamanhos de grade no guia de design de widgets.
Compatibilidade com versões anteriores usando visualizações de widgets
Para permitir que os seletores de widgets em dispositivos com versões anteriores ao
Android 15 mostrem prévias do widget ou como um substituto para
prévias geradas no Android 15 ou mais recente, especifique o
atributo previewImage.
Se você mudar a aparência do widget, atualize a imagem de visualização.