Android 12 (API-Level 31) überarbeitet die vorhandene Widgets API, um die Plattform und Launcher für Nutzer und Entwickler zu verbessern. In dieser Anleitung erfährst du, wie du dafür sorgst, dass dein Widget mit Android 12 kompatibel ist, sowie als Referenz für APIs zum Aktualisieren vorhandener Widgets.
Prüfen, ob das Widget mit Android 12 kompatibel ist
Widgets in Android 12 haben abgerundete Ecken. Wenn ein App-Widget auf einem Gerät mit Android 12 oder höher verwendet wird, erkennt der Launcher automatisch den Hintergrund des Widgets und schneidet es zu, sodass es abgerundete Ecken hat.
In diesem Szenario wird Ihr Widget möglicherweise unter einer der folgenden Bedingungen nicht korrekt angezeigt:
Das Widget enthält in den Ecken Inhalte: Dies kann dazu führen, dass einige Inhalte im Eckbereich abgeschnitten werden.
Das Widget verwendet einen Hintergrund, der nicht zugeschnitten werden kann. Dazu gehören ein transparenter Hintergrund, leere Ansichten oder Layouts sowie sonstige spezielle Hintergründe, die nicht zugeschnitten werden können. Das System kann den zu verwendenden Hintergrund möglicherweise nicht korrekt identifizieren.
Wenn Ihr Widget von dieser Änderung betroffen ist, empfehlen wir, es mit abgerundeten Ecken zu aktualisieren (wie im folgenden Abschnitt beschrieben), damit es richtig angezeigt wird.
Beispiel verwenden
Wenn Sie alle APIs in Aktion sehen möchten, können Sie sich unser Beispiellisten-Widget ansehen.
Abgerundete Ecken verwenden
In Android 12 werden die Systemparameter system_app_widget_background_radius
und system_app_widget_inner_radius
eingeführt, um die Radien der abgerundeten Ecken deines Widgets festzulegen.
1 Ecke des Widgets.
2 Ecke einer Ansicht innerhalb des Widgets.
Weitere Informationen finden Sie unter Abgerundete Ecken verwenden.
Gerätedesign hinzufügen
Ab Android 12 kann ein Widget die Farben des Gerätedesigns für Schaltflächen, Hintergründe und andere Komponenten verwenden, einschließlich des hellen und dunklen Designs. Dies ermöglicht reibungslosere Übergänge und Konsistenz über verschiedene Widgets hinweg.
Widgets einfacher personalisieren
Wenn Sie eine Konfigurationsaktivität mit dem Attribut configure
von appwidget-provider
angeben, startet der Host des App-Widgets diese Aktivität, sobald ein Nutzer das Widget seinem Startbildschirm hinzugefügt hat.
Android 12 bietet neue Optionen, mit denen sich die Konfiguration für die Nutzer optimieren lässt. Weitere Informationen finden Sie unter Nutzern erlauben, Widgets zu konfigurieren.
Neue zusammengesetzte Schaltflächen hinzufügen
In Android 12 wird mithilfe der folgenden vorhandenen Komponenten eine neue Unterstützung für zustandsorientiertes Verhalten hinzugefügt:
Das Widget ist immer noch zustandslos. Ihre App muss den Status speichern und sich für Statusänderungsereignisse registrieren.
Weitere Informationen finden Sie unter Unterstützung für zustandsorientiertes Verhalten.
Verbesserte APIs für Widget-Größen und -Layouts verwenden
Ab Android 12 kannst du verfeinerte Größenattribute und flexiblere Layouts nutzen. Dazu kannst du zusätzliche Widget-Größenbeschränkungen festlegen und responsive Layouts sowie genaue Layouts angeben.
Weitere Informationen finden Sie unter Flexible Widget-Layouts bereitstellen.
Widget-Auswahl in Ihrer App verbessern
Mit Android 12 kannst du die Widget-Auswahl für deine App verbessern, indem du dynamische Widget-Vorschauen und Widget-Beschreibungen hinzufügst. Weitere Informationen finden Sie unter Skalierbare Widget-Vorschauen zur Widget-Auswahl hinzufügen und Beschreibung für das Widget hinzufügen.
Reibungslose Übergänge ermöglichen
Ab Android 12 sorgen Launcher für einen reibungslosen Übergang, wenn ein Nutzer deine App über ein Widget startet. Weitere Informationen findest du unter Reibungslose Übergänge ermöglichen.
Vereinfachte RemoteViews
-Sammlungen verwenden
Unter Android 12 wird die Methode setRemoteAdapter(int viewId, RemoteViews.RemoteCollectionItems items)
hinzugefügt, mit der deine App eine Sammlung direkt übergeben kann, wenn ein ListView
ausgefüllt wird. Bisher war es bei Verwendung eines ListView
erforderlich, einen RemoteViewsService
zu implementieren und zu deklarieren, um RemoteViewsFactory
zurückzugeben.
Weitere Informationen finden Sie unter RemoteViews
-Sammlungen verwenden.
Laufzeitänderung von RemoteViews
verwenden
Unter Android 12 werden mehrere RemoteViews
-Methoden hinzugefügt, mit denen die Laufzeit von RemoteViews
-Attributen geändert werden kann. Eine vollständige Liste der hinzugefügten Methoden finden Sie in der API-Referenz RemoteViews
.
Weitere Informationen finden Sie unter Laufzeitänderung von RemoteViews
verwenden.