Android 12 (poziom interfejsu API 31) ulepsza obecny interfejs Widgets API, aby zwiększyć wygodę użytkowników i programistów podczas korzystania z platformy i programów uruchamiających. Z tego przewodnika dowiesz się, jak zadbać o to, by widżet był zgodny z Androidem 12. Znajdziesz w nim też informacje o interfejsach API służących do odświeżania istniejącego widżetu.
Upewnij się, że 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, Menu z aplikacjami automatycznie identyfikuje tło widżetu i przycina je tak, by miały zaokrąglone rogi.
W takim przypadku widżet może wyświetlać się nieprawidłowo w następujących sytuacjach:
Widżet zawiera treści w rogach: niektóre elementy w rogu mogą zostać przycięte.
Widżet używa tła, które nie podlega przycinaniu. Obejmuje to przezroczyste tło, puste widoki lub układy oraz wszelkie inne specjalne tło, które nie są podatne na przycięcie. System może nie być w stanie poprawnie określić źródła, którego ma użyć.
Jeśli ta zmiana ma wpływ na Twój widżet, zalecamy odświeżenie go z zaokrąglonymi rogami (jak opisano w następnej sekcji), aby mieć pewność, że wyświetla się prawidłowo.
Skorzystaj z próbki
Aby zobaczyć, jak działają wszystkie te interfejsy API, zapoznaj się z przykładowym widżetem listy.
Stosuj zaokrąglone rogi.
Android 12 wprowadza parametry systemowe system_app_widget_background_radius
i system_app_widget_inner_radius
służące do ustawiania promieni zaokrąglonych rogów widżetu.
![Widżet pogody Tokio](https://developer.android.com/static/images/appwidgets/widget-weather.png?authuser=7&hl=pl)
1 Róg widżetu.
2 Róg widoku w widżecie.
Więcej informacji znajdziesz w sekcji Stosowanie zaokrąglonych rogów.
Dodaj motywy urządzenia
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 jasnego i ciemnego. Zapewnia to płynniejsze przejścia i spójność różnych widżetów.
Więcej informacji znajdziesz w artykule Dodawanie motywów urządzeń.
![Widżet w trybie jasnym](https://developer.android.com/static/images/appwidgets/example-lightmode.png?authuser=7&hl=pl)
![Widżety w trybie ciemnym](https://developer.android.com/static/images/appwidgets/example-darkmode.png?authuser=7&hl=pl)
Łatwiejsze personalizowanie widżetów
Jeśli określisz aktywność związaną z konfiguracją z atrybutem configure
o wartości appwidget-provider
, host widżetu aplikacji uruchomi tę aktywność natychmiast po tym, jak użytkownik doda widżet do swojego ekranu głównego.
Android 12 dodaje nowe opcje, które zapewniają użytkownikom lepsze wrażenia z konfiguracji. Szczegółowe informacje znajdziesz w artykule Włączanie przez użytkowników konfigurowania widżetów.
Dodawanie nowych przycisków złożonych
Android 12 dodaje nową obsługę zachowań stanowych z wykorzystaniem tych istniejących komponentów:
Widżet pozostaje bezstanowy. Aplikacja musi przechowywać stan i rejestrować zdarzenia zmiany stanu.
![](https://developer.android.com/static/images/appwidgets/home.png?authuser=7&hl=pl)
Więcej informacji znajdziesz w artykule Obsługa zachowania stanowego.
Używanie ulepszonych interfejsów API do obsługi rozmiarów i układów widżetów
Począwszy od Androida 12 można korzystać z bardziej dopracowanych atrybutów rozmiaru i bardziej elastycznych układów – wystarczy określić dodatkowe ograniczenia rozmiaru widżetów oraz udostępnić układy elastyczne i precyzyjne układy.
Szczegółowe informacje znajdziesz w artykule Konfigurowanie elastycznych układów widżetów.
Usprawnij selektor widżetów aplikacji
Android 12 umożliwia ulepszenie selektora widżetów w aplikacji, dodając dynamiczne podglądy widżetów i opisy widżetów. Szczegółowe informacje znajdziesz w artykułach Dodawanie skalowalnych podglądów widżetów do selektora widżetów oraz Dodawanie opisu widżetu.
Włącz płynniejsze przejścia
Począwszy od Androida 12 programy uruchamiające zapewniają płynniejsze przejście, gdy użytkownik uruchamia aplikację z poziomu widżetu. Szczegółowe informacje znajdziesz w sekcji Włączanie płynniejszych przejść.
Używaj uproszczonych kolekcji RemoteViews
Android 12 dodaje metodę setRemoteAdapter(int viewId, RemoteViews.RemoteCollectionItems items)
, która umożliwia aplikacji przekazywanie kolekcji bezpośrednio podczas wypełniania pola ListView
. Wcześniej, aby użyć polecenia ListView
, trzeba było zaimplementować i zadeklarować parametr RemoteViewsService
, aby zwracać wartość RemoteViewsFactory
.
Więcej informacji znajdziesz w artykule Korzystanie z kolekcji RemoteViews
.
Użyj modyfikacji czasu działania aplikacji RemoteViews
Android 12 dodaje kilka metod RemoteViews
, które umożliwiają modyfikowanie atrybutów RemoteViews
w czasie działania aplikacji. Pełną listę dodanych metod znajdziesz w dokumentacji interfejsu API RemoteViews
.
Więcej informacji znajdziesz w artykule na temat modyfikowania środowiska wykonawczego RemoteViews
.