Ulepszone widżety w Androidzie 12

Android 12 (poziom interfejsu API 31) aktualizuje obecny interfejs API widżetów, aby zwiększyć wygodę użytkowników i programistów korzystających z platformy i programów uruchamiających. Z tego przewodnika dowiesz się, jak sprawdzić, czy Twój widżet jest zgodny z Androidem 12. Znajdziesz w nim też informacje na temat interfejsów API służących 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 jego rogi były zaokrąglone.

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

  • Widżet zawiera treści w narożnikach: może to spowodować przycięcie niektórych treści w narożniku.

  • Widżet używa tła, które nie jest podatne na przycięcie. Dotyczy to przezroczystego tła, pustych widoków i układów oraz innych rodzajów specjalnych tła, które nie są podatne na przycięcie. System może nie być w stanie poprawnie określić tła do użycia.

Jeśli ta zmiana będzie miała wpływ na widżet, zalecamy odświeżenie go z zaokrąglonymi rogami (zgodnie z opisem w kolejnej sekcji), aby mieć pewność, że będzie wyświetlał się prawidłowo.

Skorzystaj z przykładu

Aby zobaczyć, jak działają te interfejsy API, wypróbuj nasz przykładowy widżet z listą.

Stosowanie zaokrąglonych rogów

Android 12 wprowadza parametry systemowe system_app_widget_background_radius i system_app_widget_inner_radius, aby ustawić promienie zaokrąglonych rogów widżetu.

Widżet pogodowy Tokio
Rysunek 1. Zaokrąglone narożniki w widżecie i widok w jego wnętrzu

1 Króg widżetu.

2 Króg widoku w widżecie.

Szczegółowe informacje znajdziesz w artykule Stosowanie zaokrąglonych rogów.

Dodaj motywy urządzenia

Począwszy 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.

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

Łatwiejsze personalizację widżetów

Jeśli określisz działanie konfiguracji za pomocą atrybutu configure o wartości appwidget-provider, host widżetu aplikacji uruchamia tę aktywność natychmiast po dodaniu widżetu do ekranu głównego przez użytkownika.

Android 12 dodaje nowe opcje, aby zapewnić użytkownikom lepsze wrażenia podczas konfiguracji. Więcej informacji znajdziesz w artykule Zezwalanie użytkownikom na konfigurowanie widżetów.

Dodaj nowe przyciski złożone

Android 12 dodaje obsługę zachowania stanowego przy użyciu tych istniejących komponentów:

Widżet nadal jest bezstanowy. Aplikacja musi przechowywać stan i rejestrować zdarzenia zmiany stanu.

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

Więcej informacji znajdziesz w artykule na temat obsługi zachowania stanowego.

Używanie ulepszonych interfejsów API do 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 elastyczne układy i dokładne układy.

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

Usprawnij selektor widżetów aplikacji

Android 12 umożliwia ulepszenie selektora widżetów aplikacji przez dodanie dynamicznych podglądów widżetó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 oraz Dodawanie opisu widżetu.

Włącz płynniejsze przejścia

Począwszy od Androida 12 program uruchamiający zapewnia płynniejsze przejście, gdy użytkownik uruchamia aplikację z widżetu. Więcej informacji znajdziesz w sekcji Włączanie płynniejszego przejścia.

Użyj uproszczonych kolekcji w usłudze RemoteViews

Android 12 dodaje metodę setRemoteAdapter(int viewId, RemoteViews.RemoteCollectionItems items), która umożliwia aplikacji przekazywanie kolekcji bezpośrednio podczas wypełniania właściwości ListView. Wcześniej podczas korzystania z funkcji ListView trzeba było zaimplementować i zadeklarować właściwość RemoteViewsService, która zwraca RemoteViewsFactory.

Więcej informacji znajdziesz w artykule o używaniu 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 na temat modyfikowania środowiska wykonawczego RemoteViews.