1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Jetpack GlanceでAppWidgetのPreviewを表示させる

1
Last updated at Posted at 2026-02-27

Jetpack Glance を用いた AppWidget の開発で AppWidget のプレビューを表示させる方法です。

実装

Jetpack Compose のプレビュー周りの実装と同じような感じで実装します。

依存の追加

androidx.glance:glance-previewandroidx.glance:glance-appwidget-preview の依存を追加します。

libs.versions.toml
androidxGlancePreview = { module = "androidx.glance:glance-preview", version.ref = "glance" }
androidxGlanceAppwidgetPreview = { module = "androidx.glance:glance-appwidget-preview", version.ref = "glance" }

注意点としては Jetpack Compose の androidx.compose.ui:ui-tooling-preview のように androidx.glance:glance-appwidget-preview の方はリリースビルドに含まないように依存を追加します。
androidx.glance:glance-preview がプレビューのアノテーションのみを持ち、リリースビルドには不要ですが実際にプレビューを表示する実装が androidx.glance:glance-appwidget-preview に含まれているためです。

build.gradle.kts
dependencies {
    implementation(libs.androidxGlancePreview)
    debugImplementation(libs.androidxGlanceAppwidgetPreview)
}

プレビューの表示

あとは Jetpack Compose と同じ要領で AppWidget のプレビューを実装します。@Preview の import 間違いだけ注意です。

Widget.kt
import androidx.glance.preview.Preview

@OptIn(ExperimentalGlancePreviewApi::class)
@Preview
@Composable 
private fun PreviewAppWidget() {
    GlanceTheme {
        AppWidget()
    }
}

プレビューの制限

Glance AppWidget 1.1.1 と Android Studio Panda 1 時点の内容です。

AppWidget のプレビューは Jetpack Compose のプレビューのようにプレビューの端末インストールや Interactive Mode のような機能は備えておらず、単にプレビューをするだけのものとなっています。
唯一プレビューで可能なことがプレビューの画像としてコピーする機能です。これは AppWidget に設定するプレビュー画像にそのまま使えるので地味ですが覚えておくと便利かもしれないです。

スクリーンショット 2026-02-27 15.22.55.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?