Glance 互操作性

在某些情况下,您可能需要使用 XML 和 RemoteViews 来提供视图。 也许您已经在不使用 Glance 的情况下实现了某项功能,或者该功能 当前 Glance API 尚未提供或无法使用。对于这种情况 Glance 提供 AndroidRemoteViews,这是一个互操作性 API。

AndroidRemoteViews 可组合项允许将 RemoteViews 放在一起 与您的其他可组合项搭配使用:

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

像不使用 Glance 时那样创建和定义 RemoteViews,然后简单地 作为参数传递

此外,您还可以为可组合项创建 RemoteViews 容器:

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

在本示例中,包含“容器”会传递 ID。此容器必须是 ViewGroup,因为它用于放置 定义的内容。