In Android 12 (API-Level 31) wurde die Widgets API überarbeitet, um die Nutzer- und Entwicklerfreundlichkeit der Plattform und Launcher zu verbessern. In diesem Leitfaden erfahren Sie, wie Sie dafür sorgen, dass Ihr Widget mit Android 12 kompatibel ist. Außerdem finden Sie hier eine Referenz für APIs zum Aktualisieren Ihres vorhandenen Widgets.
Prüfen, ob Ihr 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 ihn so zu, dass er abgerundete Ecken hat.
In diesem Szenario wird Ihr Widget möglicherweise in keinem der folgenden Fälle richtig angezeigt:
Das Widget enthält Inhalte in den Ecken: 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 transparente Hintergründe, leere Ansichten oder Layouts oder andere Arten von speziellen Hintergründen, die nicht zugeschnitten werden können. Das System kann den zu verwendenden Hintergrund möglicherweise nicht richtig identifizieren.
Wenn Ihr Widget von dieser Änderung betroffen ist, empfehlen wir Ihnen, es mit abgerundeten Ecken zu aktualisieren (wie im folgenden Abschnitt beschrieben), damit es richtig angezeigt wird.
Beispiel verwenden
Alle diese APIs in Aktion sehen Sie in unserem Beispiellisten-Widget.
Abgerundete Ecken implementieren
In Android 12 wurden die Systemparameter system_app_widget_background_radius
und system_app_widget_inner_radius
eingeführt, mit denen Sie die Radien der abgerundeten Ecken Ihres Widgets festlegen können.
1 Ecke des Widgets.
2 Ecke einer Ansicht im Widget.
Weitere Informationen finden Sie unter Abgerundete Ecken implementieren.
Gerätethemen hinzufügen
Ab Android 12 können die Farben des Gerätedesigns für Schaltflächen, Hintergründe und andere Komponenten in einem Widget verwendet werden, einschließlich hellem und dunklem Design. So sind flüssigere Übergänge und Konsistenz zwischen verschiedenen Widgets möglich.
Weitere Informationen finden Sie unter Gerätethemen hinzufügen.
Einfachere Personalisierung von Widgets
Wenn Sie eine Konfigurationsaktivität mit dem Attribut configure
von appwidget-provider
angeben, startet der App-Widget-Host diese Aktivität sofort, nachdem ein Nutzer das Widget auf seinem Startbildschirm hinzugefügt hat.
Android 12 bietet neue Optionen, mit denen Sie die Konfiguration für Nutzer verbessern können. Weitere Informationen finden Sie unter Nutzern erlauben, Widgets zu konfigurieren.
Neue zusammengesetzte Schaltflächen hinzufügen
Android 12 bietet eine neue Unterstützung für zustandsbezogenes Verhalten mit den folgenden vorhandenen Komponenten:
Das Widget ist weiterhin zustandslos. Ihre App muss den Status speichern und sich für Statusänderungsereignisse registrieren.
Weitere Informationen finden Sie unter Unterstützung für zustandsabhängiges Verhalten.
Verbesserte APIs für Widgetgrößen und ‑Layouts verwenden
Ab Android 12 können Sie detailliertere Größenattribute und flexiblere Layouts nutzen, indem Sie zusätzliche Einschränkungen für die Größe von Widgets angeben und responsive und exakte Layouts bereitstellen.
Weitere Informationen finden Sie unter Flexible Widget-Layouts bereitstellen.
Widgetauswahl in Ihrer App verbessern
Mit Android 12 können Sie die Widgetauswahl für Ihre App verbessern, indem Sie dynamische Widgetvorschauen und Widgetbeschreibungen hinzufügen. Weitere Informationen finden Sie unter Der Auswahl für Widgets skalierbare Widget-Vorschauen hinzufügen und Eine Beschreibung für Ihr Widget hinzufügen.
Für flüssigere Übergänge sorgen
Ab Android 12 sorgen Launcher für einen reibungsloseren Übergang, wenn Nutzer Ihre App über ein Widget starten. Weitere Informationen finden Sie unter Weichere Übergänge aktivieren.
Vereinfachte RemoteViews
-Sammlungen verwenden
Mit Android 12 wird die Methode setRemoteAdapter(int viewId, RemoteViews.RemoteCollectionItems items)
hinzugefügt. Damit kann Ihre App eine Sammlung direkt übergeben, wenn eine ListView
ausgefüllt wird. Bisher musste bei der Verwendung einer ListView
eine RemoteViewsService
implementiert und deklariert werden, um RemoteViewsFactory
zurückzugeben.
Weitere Informationen finden Sie unter RemoteViews
-Sammlungen verwenden.
Laufzeitänderung von RemoteViews
verwenden
Android 12 bietet mehrere RemoteViews
-Methoden, mit denen RemoteViews
-Attribute zur Laufzeit geändert werden können. Eine vollständige Liste der hinzugefügten Methoden finden Sie in der RemoteViews
API-Referenz.
Weitere Informationen finden Sie unter Laufzeitänderung von RemoteViews
verwenden.