Android 12 (poziom API 31) wprowadza zmiany w dotychczasowym interfejsie API widżetów, aby poprawić komfort użytkowników i deweloperów na platformie i w programach uruchamiających. Z tego przewodnika dowiesz się, jak zapewnić zgodność widżetu z Androidem 12, a także jak korzystać z interfejsów API do odświeżania istniejącego widżetu.
Zapewnienie zgodności widżetu 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 się nie wyświetlać prawidłowo w żadnym z tych warunków:
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. Obejmuje to przezroczyste tło, puste widoki lub układy albo inne specjalne tło, które nie jest podatne na przycinanie. System może nie być w stanie prawidłowo zidentyfikować tła do użycia.
Jeśli ta zmiana wpłynie na Twój widżet, zalecamy odświeżenie go z zaokrąglonymi rogami (jak opisano w następnej sekcji), aby zapewnić jego prawidłowe wyświetlanie.
Korzystanie z przykładu
Aby zobaczyć, jak działają te interfejsy API, zapoznaj się z naszym przykładowym widżetem listy.
Implementowanie zaokrąglonych rogów
Android 12 wprowadza parametry systemowe system_app_widget_background_radius
i system_app_widget_inner_radius
, które umożliwiają ustawienie 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ą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 jasnych i ciemnych. Umożliwia to płynniejsze przejścia i spójność między różnymi widżetami.
Więcej informacji znajdziesz w artykule Dodawanie motywów urządzenia.
Ułatwianie personalizacji widżetów
Jeśli określisz aktywność konfiguracyjną za pomocą atrybutu configure elementu
appwidget-provider,
host widżetu aplikacji uruchomi tę aktywność natychmiast po dodaniu
widżetu do ekranu głównego przez użytkownika.
Android 12 dodaje nowe opcje, które pozwalają zapewnić użytkownikom lepsze wrażenia podczas konfiguracji. Więcej informacji znajdziesz w artykule Umożliwianie użytkownikom konfigurowania widżetów.
Dodawanie nowych przycisków złożonych
Android 12 dodaje nowe wsparcie dla zachowania stanowego za pomocą tych komponentów:
Widżet nadal nie ma stanu. Twoja aplikacja musi przechowywać stan i rejestrować się w celu otrzymywania zdarzeń zmiany stanu.
Więcej informacji znajdziesz w artykule Obsługa zachowania stanowego.
Korzystanie z ulepszonych interfejsów API 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 responsywne i dokładne.
Więcej informacji znajdziesz w artykule Udostępnianie elastycznych układów widżetów.
Ulepszanie działania selektora widżetów w aplikacji
Android 12 umożliwia ulepszenie działania 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łączanie płynniejszych przejść
Od Androida 12 programy uruchamiające zapewniają płynniejsze przejście, gdy użytkownik uruchamia aplikację z widżetu. Więcej informacji znajdziesz w artykule Włączanie płynniejszych przejść.
Korzystanie z 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 elementu
ListView. Wcześniej, gdy używano elementu
ListView, konieczne było zaimplementowanie i zadeklarowanie elementu
RemoteViewsService, aby zwracał element
RemoteViewsFactory.
Więcej informacji znajdziesz w artykule Korzystanie z kolekcji RemoteViews.
Korzystanie z modyfikacji RemoteViews w czasie działania
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 dokumentacji interfejsu API RemoteViews.
Więcej informacji znajdziesz w artykule Korzystanie z modyfikacji
RemoteViews w czasie działania.