Stay organized with collections
Save and categorize content based on your preferences.
In some cases, you may want to use XML and RemoteViews to provide a view.
Perhaps you have already implemented a feature without Glance, or the feature is
not yet available or possible with the current Glance API. For these situations,
Glance provides AndroidRemoteViews, an interoperability API.
The AndroidRemoteViews composable allows RemoteViews to be placed together
with your other composables:
valpackageName=LocalContext.current.packageNameColumn(modifier=GlanceModifier.fillMaxSize()){Text("Isn't that cool?")AndroidRemoteViews(RemoteViews(packageName,R.layout.example_layout))}
Create and define the RemoteViews as you would without Glance, and simply pass
it as a parameter.
In addition, you can create RemoteViews containers for your composables:
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 this case, a layout that contains the "container" is passed with the defined
ID. This container must be a ViewGroup, since it is used to place the
defined content.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-05-20 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-05-20 UTC."],[],[],null,["In some cases, you may want to use XML and `RemoteViews` to provide a view.\nPerhaps you have already implemented a feature without Glance, or the feature is\nnot yet available or possible with the current Glance API. For these situations,\nGlance provides `AndroidRemoteViews`, an interoperability API.\n\nThe `AndroidRemoteViews` composable allows `RemoteViews` to be placed together\nwith your other composables:\n\n\n```kotlin\nval packageName = LocalContext.current.packageName\nColumn(modifier = GlanceModifier.fillMaxSize()) {\n Text(\"Isn't that cool?\")\n AndroidRemoteViews(RemoteViews(packageName, R.layout.example_layout))\n}https://github.com/android/snippets/blob/dd30aee903e8c247786c064faab1a9ca8d10b46e/compose/snippets/src/main/java/com/example/compose/snippets/glance/GlanceSnippets.kt#L903-L907\n```\n\n\u003cbr /\u003e\n\nCreate and define the `RemoteViews` as you would without Glance, and simply pass\nit as a parameter.\n\nIn addition, you can create `RemoteViews` containers for your composables:\n\n\n```kotlin\nAndroidRemoteViews(\n remoteViews = RemoteViews(packageName, R.layout.my_container_view),\n containerViewId = R.id.example_view\n) {\n Column(modifier = GlanceModifier.fillMaxSize()) {\n Text(\"My title\")\n Text(\"Maybe a long content...\")\n }\n}https://github.com/android/snippets/blob/dd30aee903e8c247786c064faab1a9ca8d10b46e/compose/snippets/src/main/java/com/example/compose/snippets/glance/GlanceSnippets.kt#L916-L925\n```\n\n\u003cbr /\u003e\n\nIn this case, a layout that contains the \"container\" is passed with the defined\nID. This container must be a [`ViewGroup`](/reference/android/view/ViewGroup), since it is used to place the\ndefined content.\n| **Note:** Any children of the defined container are removed and replaced with the content. Also, the provided `ViewGroup` must be supported by `RemoteViews.` See [`RemoteViewsWidget.kt`](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:glance/glance-appwidget/integration-tests/demos/src/main/java/androidx/glance/appwidget/demos/RemoteViewsWidget.kt) for an example of using `AndroidRemoteViews`."]]