Interoperabilität auf einen Blick

In einigen Fällen möchten Sie möglicherweise XML und RemoteViews verwenden, um eine Ansicht bereitzustellen. Vielleicht haben Sie bereits eine Funktion ohne Glance implementiert oder die Funktion ist mit der aktuellen Glance API noch nicht verfügbar oder möglich. Für diese Situationen bietet Glance AndroidRemoteViews, eine Interoperabilitäts-API.

Mit der zusammensetzbaren Funktion AndroidRemoteViews kann RemoteViews zusammen mit anderen zusammensetzbaren Funktionen platziert werden:

val packageName = LocalContext.current.packageName
Column(modifier = GlanceModifier.fillMaxSize()) {
    Text("Isn't that cool?")
    AndroidRemoteViews(RemoteViews(packageName, R.layout.example_layout))
}

Erstellen und definieren Sie die RemoteViews wie gewohnt und übergeben Sie sie als Parameter.

Außerdem können Sie RemoteViews-Container für Ihre Composables erstellen:

AndroidRemoteViews(
    remoteViews = RemoteViews(packageName, R.layout.my_container_view),
    containerViewId = R.id.example_view
) {
    Column(modifier = GlanceModifier.fillMaxSize()) {
        Text("My title")
        Text("Maybe a long content...")
    }
}

In diesem Fall wird ein Layout, das den „Container“ enthält, mit der definierten ID übergeben. Dieser Container muss ein ViewGroup sein, da er zum Platzieren des definierten Inhalts verwendet wird.