Interoperacyjność w funkcji Glance

W niektórych przypadkach, aby wyświetlić widok, możesz użyć plików XML i RemoteViews. Być może masz już zaimplementowaną funkcję bez Glance albo nie jest ona jeszcze dostępna ani możliwa w obecnym interfejsie Glance API. W takich sytuacjach Glance udostępnia interfejs API interoperacyjności AndroidRemoteViews.

Element kompozycyjny AndroidRemoteViews pozwala na umieszczanie elementów RemoteViews razem z innymi elementami kompozycyjnymi:

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

Utwórz i zdefiniuj RemoteViews w taki sam sposób jak bez funkcji Glance, a potem przekaż go jako parametr.

Dodatkowo możesz utworzyć kontenery RemoteViews dla elementów kompozycyjnych:

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...")
    }
}

W takim przypadku układ, który zawiera „kontener”, jest przekazywany ze zdefiniowanym identyfikatorem. Musi to być kontener ViewGroup, ponieważ służy do umieszczania zdefiniowanej treści.