Mit Android 12 (API-Level 31) wird die vorhandene Widgets API überarbeitet, um die Nutzer- und Entwickler freundlichkeit der Plattform und der Launcher zu verbessern. In diesem Leitfaden erfahren Sie, wie Sie dafür sorgen, dass Ihr Widget mit Android 12 kompatibel ist. Außerdem dient er als Referenz für APIs zum Aktualisieren Ihres vorhandenen Widgets.
Widget mit Android 12 kompatibel machen
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 Fall wird Ihr Widget unter Umständen nicht richtig angezeigt, wenn eine der folgenden Bedingungen erfüllt ist:
Das Widget enthält Inhalte in den Ecken: Dadurch werden möglicherweise einige Inhalte im Eckbereich abgeschnitten.
Das Widget verwendet einen Hintergrund, der nicht abgeschnitten werden kann. Dazu gehören transparente Hintergründe, leere Ansichten oder Layouts oder jede andere Art von speziellem Hintergrund, der nicht abgeschnitten werden kann. Das System kann den zu verwendenden Hintergrund möglicherweise nicht richtig 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 diese APIs in Aktion sehen möchten, sehen Sie sich unser Beispiel-Widget mit einer Liste an.
Abgerundete Ecken implementieren
In Android 12 werden die Systemparameter system_app_widget_background_radius
und system_app_widget_inner_radius
eingeführt, mit denen die Radien der abgerundeten Ecken Ihres Widgets festgelegt werden können.
1 Ecke des Widgets.
2 Ecke einer Ansicht im Widget
Weitere Informationen finden Sie unter Abgerundete Ecken implementieren.
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 heller und dunkler Designs. Dies ermöglicht reibungslosere Übergänge und Konsistenz zwischen verschiedenen Widgets.
Weitere Informationen finden Sie unter Gerätedesign hinzufügen.
Personalisierung von Widgets vereinfachen
Wenn Sie mit dem configure Attribut von
appwidget-provider,
eine Konfigurationsaktivität angeben, startet der App-Widget-Host diese Aktivität sofort, nachdem ein Nutzer das
Widget seinem Startbildschirm hinzugefügt hat.
In Android 12 wurden neue Optionen hinzugefügt, mit denen Sie Nutzern eine bessere Konfiguration ermöglichen können. Weitere Informationen finden Sie unter Nutzern die Konfiguration von Widgets ermöglichen.
Neue zusammengesetzte Schaltflächen hinzufügen
In Android 12 wird die Unterstützung für zustandsorientiertes Verhalten mit den folgenden vorhandenen Komponenten hinzugefügt:
Das Widget ist weiterhin zustandslos. Ihre App muss den Status speichern und sich für Ereignisse zur Statusänderung 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 können Sie verfeinerte Größenattribute und flexiblere Layouts nutzen, indem Sie zusätzliche Einschränkungen für die Widget-Größe angeben und responsive und genaue Layouts bereitstellen.
Weitere Informationen finden Sie unter Flexible Widget-Layouts bereitstellen.
Widget-Auswahl für Ihre App verbessern
Mit Android 12 können Sie die Widget-Auswahl für Ihre App verbessern, indem Sie dynamische Widget-Vorschauen und Widget-Beschreibungen hinzufügen. Weitere Informationen finden Sie unter Widget-Auswahl skalierbare Widget-Vorschauen hinzufügen und Beschreibung für Ihr Widget hinzufügen.
Reibungslosere Übergänge ermöglichen
Ab Android 12 bieten Launcher einen reibungsloseren Übergang, wenn ein Nutzer Ihre App über ein Widget startet. Weitere Informationen finden Sie unter Reibungslosere Übergänge ermöglichen.
Vereinfachte RemoteViews-Sammlungen verwenden
In Android 12 wird die
setRemoteAdapter(int viewId, RemoteViews.RemoteCollectionItems items)
hinzugefügt, mit der Ihre App eine Sammlung direkt übergeben kann, wenn eine
ListViewaufgefüllt wird. Bisher war es bei der Verwendung einer
ListView, es war notwendig, eine
RemoteViewsService zu implementieren und zu deklarieren, um
RemoteViewsFactory zurückzugeben.
Weitere Informationen finden Sie unter Sammlungen RemoteViewsverwenden.
RemoteViews zur Laufzeit ändern
In Android 12 wurden mehrere RemoteViews-Methoden hinzugefügt, 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 zur Laufzeit ändern
RemoteViews.