W Androidzie 12 (poziom API 31) wprowadziliśmy zmiany w interfejsie API widżetów, aby poprawić wrażenia 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. Znajdziesz w nim też informacje o interfejsach API, które pozwolą Ci odświeżyć dotychczasowy widżet.
Zapewnij zgodność 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 identyfikuje 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, jeśli:
Widżet zawiera treści w rogach: może to spowodować przycięcie niektórych treści w rogach.
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ła, które nie są podatne na przycinanie. System może nie być w stanie prawidłowo zidentyfikować tła, którego ma użyć.
Jeśli ta zmiana wpłynie na Twój widżet, zalecamy odświeżenie go z zaokrąglonymi rogami (zgodnie z opisem w następnej sekcji), aby zapewnić jego prawidłowe wyświetlanie.
Używanie przykładowego kodu
Aby zobaczyć wszystkie te interfejsy API w działaniu, zapoznaj się z naszym przykładowym widżetem listy.
Zaimplementuj zaokrąglone rogi
W Androidzie 12 wprowadzono parametry systemowe system_app_widget_background_radius i system_app_widget_inner_radius, które pozwalają ustawić promień 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 na urządzeniu
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 jasnych i ciemnych motywów. Zapewnia 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.
Łatwiejsze personalizowanie widżetów
Jeśli określisz aktywność konfiguracji za pomocą atrybutu configure elementu appwidget-provider, host widżetu aplikacji uruchomi tę aktywność natychmiast po dodaniu widżetu przez użytkownika do ekranu głównego.
Android 12 zawiera nowe opcje, które ułatwiają użytkownikom konfigurowanie. Więcej informacji znajdziesz w artykule Umożliwianie użytkownikom konfigurowania widżetów.
Dodawanie nowych przycisków złożonych
Android 12 dodaje nową obsługę zachowania stanowego za pomocą tych istniejących komponentów:
Widżet nadal nie ma stanu. Aplikacja musi przechowywać stan i rejestrować zdarzenia zmiany stanu.
Szczegółowe informacje znajdziesz w sekcji Obsługa zachowania stanowego.
Używaj ulepszonych interfejsów API do określania rozmiarów i układów widżetów.
Począwszy 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żetów oraz udostępniając układy elastyczne i dokładne.
Szczegółowe informacje znajdziesz w sekcji Zapewnianie elastycznych układów widżetów.
Ulepszanie selektora widżetów 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. Szczegółowe informacje znajdziesz w sekcjach Dodawanie skalowalnych podglądów widżetów do selektora widżetów i Dodawanie opisu widżetu.
Zwiększ płynność przejść
Od Androida 12 programy uruchamiające zapewniają płynniejsze przejście, gdy użytkownik uruchamia aplikację z widżetu. Szczegółowe informacje znajdziesz w sekcji Włączanie płynniejszych przejść.
Korzystanie z uproszczonych kolekcji RemoteViews
W Androidzie 12 dodano 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 zaimplementowanie i zadeklarowanie RemoteViewsService, aby zwracać RemoteViewsFactory.
Więcej informacji znajdziesz w artykule Korzystanie z kolekcji RemoteViews.
Użyj modyfikacji środowiska wykonawczego 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 dokumentacji interfejsu API RemoteViews.
Więcej informacji znajdziesz w artykule Modyfikowanie RemoteViews w czasie działania.