Interoperacyjność w funkcji Glance

W niektórych przypadkach możesz użyć XML i RemoteViews, aby wyświetlić widok. Być może masz już zaimplementowaną funkcję bez Glance lub funkcja nie jest jeszcze dostępna albo nie jest możliwa do zaimplementowania za pomocą obecnego interfejsu Glance API. W takich sytuacjach Glance udostępnia AndroidRemoteViews, czyli interfejs API do współdziałania.

Kompozycja AndroidRemoteViews umożliwia umieszczanie RemoteViews razem z innymi kompozycjami:

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 tak jak bez Glance i przekaż je jako parametr.

Możesz też tworzyć kontenery RemoteViews dla swoich kompozycji:

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 tym przypadku układ zawierający „kontener” jest przekazywany ze zdefiniowanym identyfikatorem. Ten kontener musi być ViewGroup, ponieważ służy do umieszczania zdefiniowanej treści.