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, launcher automatycznie identyfikuje tło widżetu i przycina je, aby uzyskać zaokrąglone rogi.

W takim przypadku widżet może nie wyświetlać się prawidłowo w jednym z tych przypadków:

  • 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. Dotyczy to przezroczystego tła, pustych widoków lub układów oraz innych rodzajów specjalnych teł, które nie są podatne na przycinanie. 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 Rzut oka na widok wewnątrz widżetu.

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 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 jasnym trybie
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ść konfiguracji za pomocą atrybutu configureappwidget-provider, gospodarz 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 umożliwiają lepsze konfigurowanie aplikacji przez użytkowników. Więcej informacji znajdziesz w artykule Umożliwienie użytkownikom 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.

Rysunek 4. Przykładowy widżet z poleczami wyboru

Więcej informacji znajdziesz w artykule Obsługa zachowania zależnego od stanu.

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żetu oraz podają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. Więcej informacji znajdziesz w artykułach Dodawanie dostępnych do skalowania podglądów widżetów do selektora widżetówDodawanie opisu widżetu.

Włącz płynniejsze przejścia

Od Androida 12 uruchamianie aplikacji z widżetu jest płynniejsze. 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, gdy używano funkcji ListView, konieczne było zaimplementowanie i ogłoszenie funkcji RemoteViewsService, aby zwracała 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 wykonywania. Pełną listę dodanych metod znajdziesz w dokumentacji RemoteViews interfejsu API.

Więcej informacji znajdziesz w artykule Używanie modyfikacji w czasie wykonywania koduRemoteViews.