O Android 12 (nível 31 da API) reformula a API Widgets para melhorar a experiência do usuário e do desenvolvedor na plataforma e nas telas de início. Neste guia, você aprenderá como garantir que o widget seja compatível com o Android 12. Ele também serve como referência de APIs para atualizar seu widget existente.
Garantir que o widget seja compatível com o Android 12
Os widgets do Android 12 têm cantos arredondados. Quando um widget de app é usado em um dispositivo com o Android 12 ou mais recente, a tela de início identifica o plano de fundo do widget e o corta para ter cantos arredondados.
Nesse cenário, o widget pode não ser exibido corretamente em uma destas condições:
O widget tem conteúdo nos cantos: isso pode fazer com que algum conteúdo no área do canto seja cortado.
O widget usa um fundo que não é suscetível a cortes. Isso inclui um plano de fundo transparente, visualizações ou layouts vazios, ou qualquer outro tipo de plano de fundo especial não propenso a cortes. O sistema pode não conseguir identificar corretamente o fundo a ser usado.
Se o widget for afetado por essa mudança, recomendamos que você o atualize para ter cantos arredondados, conforme descrito na seção a seguir, para garantir que ele seja exibido corretamente.
Usar o exemplo
Para ver todas essas novas APIs em ação, confira nossa lista de widgets de exemplo (link em inglês).
Implementar cantos arredondados
O Android 12 introduz os parâmetros de sistema system_app_widget_background_radius
e system_app_widget_inner_radius
para definir o raio dos cantos arredondados do widget.
![Widget do clima de Tóquio](https://developer.android.google.cn/static/images/appwidgets/widget-weather.png?authuser=19&hl=pt)
1 Canto do widget.
2 Canto de uma visualização dentro do widget.
Veja mais detalhes em Implementar cantos arredondados.
Adicionar temas de dispositivo
A partir do Android 12, um widget pode usar as cores de tema do dispositivo para botões, planos de fundo e outros componentes, incluindo temas claros e escuros. Isso possibilita transições mais suaves e consistência em diferentes widgets.
Consulte Adicionar temas de dispositivos para saber mais.
![Widget no tema do modo claro](https://developer.android.google.cn/static/images/appwidgets/example-lightmode.png?authuser=19&hl=pt)
![Widgets no tema do modo escuro](https://developer.android.google.cn/static/images/appwidgets/example-darkmode.png?authuser=19&hl=pt)
Facilitar a personalização de widgets
Se você especificar uma atividade de configuração usando o atributo configure
do
appwidget-provider
, o host do widget
do app iniciará essa atividade imediatamente após um usuário adicionar o widget à
tela inicial.
O Android 12 adiciona novas opções para fornecer uma experiência de configuração melhorada aos usuários. Consulte Permitir que os usuários configurem widgets para mais detalhes.
Adicionar novos botões compostos
O Android 12 adicionou novo suporte a comportamentos com estado usando os componentes existentes abaixo:
O widget ainda não tem estado. O app precisa armazenar o estado e se registrar para eventos de mudança de estado.
![](https://developer.android.google.cn/static/images/appwidgets/home.png?authuser=19&hl=pt)
Para detalhes, consulte Suporte a comportamento com estado.
Usar APIs melhoradas para tamanhos e layouts de widgets
A partir do Android 12, é possível aproveitar atributos de tamanho mais refinados e layouts mais flexíveis ao especificar outras restrições de dimensionamento de widget e fornecer layouts responsivos ou exatos.
Consulte Oferecer layouts de widget flexíveis para saber mais detalhes.
Melhorar a experiência com o seletor de widgets do app
O Android 12 possibilita que você melhore a experiência do seletor de widgets para o app adicionando visualizações e descrições dinâmicas de widgets. Para detalhes, consulte Adicionar visualizações de widgets escalonáveis ao seletor de widgets e Adicionar uma descrição ao widget.
Ativar transições mais suaves
No Android 12, as telas de início oferecem uma transição mais suave quando um usuário inicia o app de um widget. Consulte Ativar transições mais suaves para mais detalhes.
Usar coleções RemoteViews
simplificadas
O Android 12 adiciona o método
setRemoteAdapter(int viewId, RemoteViews.RemoteCollectionItems items)
,
que possibilita ao app transmitir uma coleção diretamente ao preencher uma
ListView
. Anteriormente, ao usar uma
ListView
, era necessário implementar e declarar um
RemoteViewsService
para retornar a
RemoteViewsFactory
.
Para ver mais detalhes, consulte Usar coleções RemoteViews
.
Usar a modificação de RemoteViews
durante a execução
O Android 12 adiciona vários métodos de RemoteViews
que possibilitam a modificação dos
atributos RemoteViews
durante a execução. Consulte a referência da API RemoteViews
para ver a lista completa de métodos adicionados.
Para detalhes, consulte Usar a modificação de
RemoteViews
durante a execução.