Android 12 (poziom API 31) wprowadza zmiany w dotychczasowym interfejsie API widżetów, aby poprawić komfort użytkowania platformy i launcherów zarówno dla użytkowników, jak i deweloperów. Z tego przewodnika dowiesz się, jak zadbać o zgodność widżetu z Androidem 12. Znajdziesz w nim też informacje o interfejsach API do odświeżania istniejącego widżetu.
Sprawdź, czy widżet jest zgodny z Androidem 12.
Widżety w Androidzie 12 mają zaokrąglone rogi. Gdy widżet aplikacji jest używany na urządzeniu z Androidem 12 lub nowszym, program uruchamiający automatycznie rozpoznaje tło widżetu i przycina je, aby miało zaokrąglone rogi.
W takim przypadku widżet może nie wyświetlać się prawidłowo w żadnej z tych sytuacji:
Widżet zawiera treści w rogach: może to spowodować przycięcie niektórych treści w obszarze rogu.
Widżet używa tła, które nie jest podatne na przycinanie. Dotyczy to przezroczystego tła, pustych widoków lub układów oraz innych rodzajów specjalnego tła, które nie są podatne na przycinanie. System może nie być w stanie prawidłowo określić tła do użycia.
Jeśli ta zmiana wpłynie na Twój widżet, zalecamy odświeżenie go za pomocą zaokrąglonych rogów (zgodnie z opisem w następnej sekcji), aby zapewnić jego prawidłowe wyświetlanie.
Korzystanie z próbki
Aby zobaczyć, jak działają te interfejsy API, zapoznaj się z naszym przykładowym widżetem listy.
Implementowanie zaokrąglonych narożników
W Androidzie 12 wprowadziliśmy parametry systemowe system_app_widget_background_radius
i system_app_widget_inner_radius
, które umożliwiają ustawianie promieni zaokrąglonych rogów widżetu.

1 Róg widżetu.
2 Róg widoku w widżecie.
Więcej informacji znajdziesz w artykule Implementowanie zaokrąglonych rogów.
Dodawanie motywów urządzeń
Od Androida 12 widżet może używać kolorów motywu urządzenia w przypadku przycisków, tła i innych komponentów, w tym motywów jasnych i ciemnych. Umożliwia to płynniejsze przejścia i spójność w różnych widżetach.
Więcej informacji znajdziesz w artykule Dodawanie motywów urządzenia.


Łatwiejsze personalizowanie widżetów
Jeśli określisz działanie konfiguracyjne z atrybutem configure
o wartości appwidget-provider
, host widżetu aplikacji uruchomi to działanie natychmiast po dodaniu widżetu przez użytkownika do ekranu głównego.
Android 12 wprowadza nowe opcje, które pozwalają zapewnić użytkownikom lepsze wrażenia podczas konfigurowania. Więcej informacji znajdziesz w artykule Umożliwianie użytkownikom konfigurowania widżetów.
Dodawanie nowych przycisków złożonych
Android 12 wprowadza nową obsługę zachowań stanowych za pomocą tych komponentów:
Widżet nadal nie ma stanu. Aplikacja musi przechowywać stan i rejestrować zdarzenia zmiany stanu.

Więcej informacji znajdziesz w sekcji Obsługa zachowań stanowych.
Korzystanie z ulepszonych interfejsów API do określania rozmiarów i układów widżetów
Od Androida 12 możesz korzystać z bardziej precyzyjnych atrybutów rozmiaru i bardziej elastycznych układów, określając dodatkowe ograniczenia rozmiaru widżetu oraz udostępniając układy elastyczne i dokładne.
Więcej informacji znajdziesz w artykule Zapewnianie elastycznych układów widżetów.
Ulepszanie selektora widżetów aplikacji
Android 12 umożliwia ulepszenie selektora widżetów w aplikacji przez dodanie dynamicznych podglądów i opisów widżetów. Więcej informacji znajdziesz w artykułach Dodawanie skalowalnych podglądów widżetów do selektora widżetów i Dodawanie opisu widżetu.
Włącz płynniejsze przejścia
Od Androida 12 programy uruchamiające zapewniają płynniejsze przejście, gdy użytkownik uruchamia aplikację z widżetu. Szczegółowe informacje znajdziesz w artykule Włączanie płynniejszych przejść.
Używanie uproszczonych RemoteViews
kolekcji
W Androidzie 12 dodaliśmy metodę
setRemoteAdapter(int viewId, RemoteViews.RemoteCollectionItems items)
, która umożliwia aplikacji przekazywanie kolekcji bezpośrednio podczas wypełniania
ListView
. Wcześniej podczas korzystania z ListView
konieczne było wdrożenie i zadeklarowanie RemoteViewsService
, aby zwrócić RemoteViewsFactory
.
Więcej informacji znajdziesz w artykule Korzystanie z kolekcji RemoteViews
.
Używanie modyfikacji w czasie działania RemoteViews
Android 12 dodaje kilka metod RemoteViews
, które umożliwiają modyfikowanie atrybutów RemoteViews
w czasie działania. Pełną listę dodanych metod znajdziesz w RemoteViews
dokumentacji API.
Więcej informacji znajdziesz w sekcji Używanie modyfikacji w czasie działaniaRemoteViews
.