Ulepszenia widżetów Androida 12

Android 12 (poziom API 31) wprowadza zmiany w dotychczasowym interfejsie API widżetów, aby poprawić komfort użytkowania platformy i launcherów zarówno dla użytkowników, jak i deweloperów. Z tego przewodnika dowiesz się, jak zadbać o zgodność widżetu z Androidem 12. Znajdziesz w nim też informacje o interfejsach API do odświeżania istniejącego widżetu.

Tekst alternatywny

Sprawdź, czy 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, 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 nie wyświetlać się prawidłowo w żadnej z tych sytuacji:

  • 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. Dotyczy to przezroczystego tła, pustych widoków lub układów oraz innych rodzajów specjalnego tła, które nie są podatne na przycinanie. System może nie być w stanie prawidłowo określić tła do użycia.

Jeśli ta zmiana wpłynie na Twój widżet, zalecamy odświeżenie go za pomocą zaokrąglonych rogów (zgodnie z opisem w następnej sekcji), aby zapewnić jego prawidłowe wyświetlanie.

Korzystanie z próbki

Aby zobaczyć, jak działają te interfejsy API, zapoznaj się z naszym przykładowym widżetem listy.

Implementowanie zaokrąglonych narożników

W Androidzie 12 wprowadziliśmy parametry systemowe system_app_widget_background_radiussystem_app_widget_inner_radius, które umożliwiają ustawianie promieni zaokrąglonych rogów widżetu.

Widżet pogody w Tokio
Ilustracja 1. Zaokrąglone rogi widżetu i widoku wewnątrz 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ądzeń

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ść w różnych widżetach.

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

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

Łatwiejsze personalizowanie widżetów

Jeśli określisz działanie konfiguracyjne z atrybutem configure o wartości appwidget-provider, host widżetu aplikacji uruchomi to działanie natychmiast po dodaniu widżetu przez użytkownika do ekranu głównego.

Android 12 wprowadza nowe opcje, które pozwalają zapewnić użytkownikom lepsze wrażenia podczas konfigurowania. Więcej informacji znajdziesz w artykule Umożliwianie użytkownikom konfigurowania widżetów.

Dodawanie nowych przycisków złożonych

Android 12 wprowadza nową obsługę zachowań stanowych za pomocą tych komponentów:

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

Rysunek 4. Przykład widżetu z polami wyboru

Więcej informacji znajdziesz w sekcji Obsługa zachowań stanowych.

Korzystanie z ulepszonych interfejsów API do określania 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 elastyczne i dokładne.

Więcej informacji znajdziesz w artykule Zapewnianie elastycznych układów widżetów.

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

Włącz płynniejsze przejścia

Od Androida 12 programy uruchamiające zapewniają płynniejsze przejście, gdy użytkownik uruchamia aplikację z widżetu. Szczegółowe informacje znajdziesz w artykule Włączanie płynniejszych przejść.

Używanie uproszczonych RemoteViews kolekcji

W Androidzie 12 dodaliśmy 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 wdrożenie i zadeklarowanie RemoteViewsService, aby zwrócić RemoteViewsFactory.

Więcej informacji znajdziesz w artykule Korzystanie z kolekcji RemoteViews.

Używanie modyfikacji w czasie działania 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 RemoteViewsdokumentacji API.

Więcej informacji znajdziesz w sekcji Używanie modyfikacji w czasie działaniaRemoteViews.