@MustBeDocumented
@Retention(value = AnnotationRetention.BINARY)
@Target(allowedTargets = [AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.FUNCTION])
@Repeatable
annotation Preview


Preview can be applied to either of the following:

  • @Composable methods with no parameters to show them in the Android Studio preview.

  • Annotation classes, that could then be used to annotate @Composable methods or other annotation classes, which will then be considered as indirectly annotated with that Preview.

The annotation contains a number of parameters that allow to define the way the @Composable will be rendered within the preview.

The passed parameters are only read by Studio when rendering the preview.

Summary

Public constructors

Preview(
    name: String,
    group: String,
    apiLevel: @IntRange(from = 1) Int,
    widthDp: Int,
    heightDp: Int,
    locale: String,
    fontScale: @FloatRange(from = 0.01) Float,
    showSystemUi: Boolean,
    showBackground: Boolean,
    backgroundColor: Long,
    uiMode: Int,
    device: String,
    wallpaper: Int
)

Public properties

Int

API level to be used when rendering the annotated @Composable

Long

The 32-bit ARGB color int for the background or 0 if not set

String

Device string indicating the device to use in the preview.

Float

User preference for the scaling factor for fonts, relative to the base density scaling.

String

Group name for this @Preview.

Int

Max height in DP the annotated @Composable will be rendered in.

String

Current user preference for the locale, corresponding to locale resource qualifier.

String

Display name of this preview allowing to identify it in the panel.

Boolean

If true, the @Composable will use a default background color.

Boolean

If true, the status bar and action bar of the device will be displayed.

Int

Bit mask of the ui mode as per android.content.res.Configuration.uiMode

Int

Integer defining which wallpaper from those available in Android Studio to use for dynamic theming.

Int

Max width in DP the annotated @Composable will be rendered in.

Public constructors

Preview

Preview(
    name: String = "",
    group: String = "",
    apiLevel: @IntRange(from = 1) Int = -1,
    widthDp: Int = -1,
    heightDp: Int = -1,
    locale: String = "",
    fontScale: @FloatRange(from = 0.01) Float = 1.0f,
    showSystemUi: Boolean = false,
    showBackground: Boolean = false,
    backgroundColor: Long = 0,
    uiMode: Int = 0,
    device: String = Devices.DEFAULT,
    wallpaper: Int = Wallpapers.NONE
)
Parameters
name: String = ""

Display name of this preview allowing to identify it in the panel.

group: String = ""

Group name for this @Preview. This allows grouping them in the UI and display only one or more of them.

apiLevel: @IntRange(from = 1) Int = -1

API level to be used when rendering the annotated @Composable

widthDp: Int = -1

Max width in DP the annotated @Composable will be rendered in. Use this to restrict the size of the rendering viewport.

heightDp: Int = -1

Max height in DP the annotated @Composable will be rendered in. Use this to restrict the size of the rendering viewport.

locale: String = ""

Current user preference for the locale, corresponding to locale resource qualifier. By default, the default folder will be used. To preview an RTL layout use a locale that uses right to left script, such as ar (or the ar-rXB pseudo locale).

fontScale: @FloatRange(from = 0.01) Float = 1.0f

User preference for the scaling factor for fonts, relative to the base density scaling.

showSystemUi: Boolean = false

If true, the status bar and action bar of the device will be displayed. The @Composable will be render in the context of a full activity.

showBackground: Boolean = false

If true, the @Composable will use a default background color.

backgroundColor: Long = 0

The 32-bit ARGB color int for the background or 0 if not set

uiMode: Int = 0

Bit mask of the ui mode as per android.content.res.Configuration.uiMode

device: String = Devices.DEFAULT

Device string indicating the device to use in the preview. See the available devices in Devices.

wallpaper: Int = Wallpapers.NONE

Integer defining which wallpaper from those available in Android Studio to use for dynamic theming.

Public properties

apiLevel

val apiLevelInt

API level to be used when rendering the annotated @Composable

backgroundColor

val backgroundColorLong

The 32-bit ARGB color int for the background or 0 if not set

device

val deviceString

Device string indicating the device to use in the preview. See the available devices in Devices.

fontScale

val fontScaleFloat

User preference for the scaling factor for fonts, relative to the base density scaling.

group

val groupString

Group name for this @Preview. This allows grouping them in the UI and display only one or more of them.

heightDp

val heightDpInt

Max height in DP the annotated @Composable will be rendered in. Use this to restrict the size of the rendering viewport.

locale

val localeString

Current user preference for the locale, corresponding to locale resource qualifier. By default, the default folder will be used. To preview an RTL layout use a locale that uses right to left script, such as ar (or the ar-rXB pseudo locale).

name

val nameString

Display name of this preview allowing to identify it in the panel.

showBackground

val showBackgroundBoolean

If true, the @Composable will use a default background color.

showSystemUi

val showSystemUiBoolean

If true, the status bar and action bar of the device will be displayed. The @Composable will be render in the context of a full activity.

uiMode

val uiModeInt

Bit mask of the ui mode as per android.content.res.Configuration.uiMode

wallpaper

val wallpaperInt

Integer defining which wallpaper from those available in Android Studio to use for dynamic theming.

widthDp

val widthDpInt

Max width in DP the annotated @Composable will be rendered in. Use this to restrict the size of the rendering viewport.