Ulepszenia widżetów Androida 12

Android 12 (poziom interfejsu API 31) odświeża istniejące interfejsy API widgetów, aby poprawić wrażenia użytkowników i deweloperów na platformie oraz w wyrzutniach. Z tego przewodnika dowiesz się, jak zapewnić zgodność widżetu z Androidem 12. Możesz też skorzystać z tego przewodnika jako odniesienia do interfejsów API służących do odświeżania dotychczasowego widżetu.

Tekst alternatywny

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 rogu: może to spowodować przycięcie części treści w tym obszarze.

  • Widżet używa tła, które nie jest podatne na przycinanie. 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 zidentyfikować tła do użycia.

Jeśli ta zmiana wpłynie na Twój widget, zalecamy jego odświeżenie z zaokrąglonymi rogami (jak opisano w następnej sekcji), aby mieć pewność, że będzie on wyświetlany prawidłowo.

Korzystanie z próbki

Aby zobaczyć wszystkie te interfejsy API w działaniu, skorzystaj z przykładowego widżetu listy.

Zastosowanie zaokrąglonych narożników

Android 12 wprowadza parametry systemowe system_app_widget_background_radiussystem_app_widget_inner_radius, które umożliwiają ustawienie promienia zaokrąglonych rogów widgeta.

Widżet pogody w Tokio
Ilustracja 1. Zaokrąglone rogi widżetu i widok wewnątrz widżetu

1 Róg widżetu.

2 Róg widoku w widżecie.

Więcej informacji znajdziesz w artykule Stosowanie zaokrąglonych narożników.

Dodawanie motywów urządzeń

Od Androida 12 widżet może używać kolorów motywu urządzenia do przycisków, tła i innych komponentów, w tym do motywów jasnych i ciemnych. Dzięki temu możesz płynnie przechodzić między różnymi widżetami i utrzymywać spójność.

Więcej informacji znajdziesz w artykule Dodawanie motywów urządzeń.

Widżet w trybie jasnym
Rysunek 2. Widżet w jasnym motywie
Widgety w ciemnym motywie
Rysunek 3. Widżet w ciemnym motywie

Łatwiejsza personalizacja 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 zawiera nowe opcje, które umożliwiają lepsze konfigurowanie aplikacji przez użytkowników. Szczegółowe informacje znajdziesz w artykule Włączanie przez użytkowników konfigurowania widżetów.

Dodawanie nowych złożonych przycisków

Android 12 dodaje nową obsługę zachowania zależnego od stanu za pomocą tych istniejących komponentów:

Widżet nadal nie ma stanu. Aplikacja musi przechowywać stan i rejestrować zdarzenia zmiany stanu.

Rys. 4. Przykładowy widżet z polami wyboru

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

Od Androida 12 możesz korzystać z bardziej dopracowanych atrybutów rozmiaru i bardziej elastycznych układów, określając dodatkowe ograniczenia rozmiaru widżetów oraz udostępniając układy responsywne i dokładne.

Szczegółowe informacje znajdziesz w artykule Tworzenie elastycznych układów widgetów.

Ulepszanie funkcji selektora widżetów w aplikacji

Android 12 umożliwia ulepszenie funkcji wyboru widżetów w aplikacji przez dodanie dynamicznych podglądów i opisów 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

Od Androida 12 uruchamianie aplikacji z widżetu zapewnia płynniejsze przejście. Szczegółowe informacje znajdziesz w artykule Włączanie płynniejszych przejść.

Używanie 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 ListView. Wcześniej, podczas korzystania z funkcji ListView, konieczne było zaimplementowanie i ogłoszenie funkcji RemoteViewsService, aby zwrócić wartość RemoteViewsFactory.

Więcej informacji znajdziesz w artykule Używanie kolekcji RemoteViews.

Używanie modyfikacji RemoteViews w czasie wykonywania

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 RemoteViews interfejsu API.

Więcej informacji znajdziesz w artykule na temat modyfikowania środowiska wykonawczego RemoteViews.