Ulepszenia widżetów Androida 12

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.

Tekst alternatywny

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.

Widżet pogody w Tokio
Rysunek 1. Zaokrąglone rogi widżetu i widoku w widżecie

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.

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

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.

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

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.