LayoutElementBuilders


class LayoutElementBuilders


Builders for composable layout elements that can be combined together to create renderable UI layouts.

Summary

Nested types

An arc container.

Builder for Arc.

A container that allows a standard LayoutElement to be added to an Arc.

Builder for ArcAdapter.

An extensible ArcAnchorType property.

Builder for ArcAnchorTypeProp

An extensible ArcDirection property that can be set to any curved element to control the drawing direction.

Builder for ArcDirectionProp

Interface defining the root of all elements that can be used in an Arc.

A line that can be used in an Arc and renders as a round progress bar.

Builder for ArcLine.

A simple spacer used to provide padding between adjacent elements in an Arc.

Builder for ArcSpacer.

A text element that can be used in an Arc.

Builder for ArcText.

A container which stacks all of its children on top of one another.

Builder for Box.

Filtering parameters used for images.

Builder for ColorFilter

A column of elements.

Builder for Column.

An extensible ContentScaleMode property.

Builder for ContentScaleModeProp

A dashed arc line that can be placed in an Arc container.

Builder for DashedArcLine.

A dashed line pattern which describes how the dashed arc line is segmented by gaps.

Builder for DashedLinePattern

A layout element which can be defined by a renderer extension.

Builder for ExtensionLayoutElement.

@RequiresSchemaVersion(major = 1, minor = 400)
interface LayoutElementBuilders.FontSetting

Interface defining a single point of customization in a font.

The styling of a font (e.g. font size, and metrics).

Builder for FontStyle

This class is deprecated.

Use androidx.wear.protolayout.material.Typography on Material (highly recommended) or make your own .

An extensible FontVariant property.

Builder for FontVariantProp

An extensible FontWeight property.

Builder for FontWeightProp

An extensible HorizontalAlignment property.

Builder for HorizontalAlignmentProp

An image.

Builder for Image.

@RequiresSchemaVersion(major = 1, minor = 0)
class LayoutElementBuilders.Layout

A complete layout.

Builder for Layout

@RequiresSchemaVersion(major = 1, minor = 0)
interface LayoutElementBuilders.LayoutElement

Interface defining the root of all layout elements.

A row of elements.

Builder for Row.

A simple spacer, typically used to provide padding between adjacent elements.

Builder for Spacer.

@RequiresSchemaVersion(major = 1, minor = 0)
interface LayoutElementBuilders.Span

Interface defining a single Span.

An image which can be added to a Span.

Builder for SpanImage.

A portion of text which can be added to a Span.

Builder for SpanText.

An extensible SpanVerticalAlignment property.

Builder for SpanVerticalAlignmentProp

A container of Span elements.

Builder for Spannable.

An extensible StrokeCap property.

Builder for StrokeCapProp

A text string.

Builder for Text.

An extensible TextAlignment property.

Builder for TextAlignmentProp

An extensible TextOverflow property.

Builder for TextOverflowProp

An extensible VerticalAlignment property.

Builder for VerticalAlignmentProp

Constants

const Int
@RequiresSchemaVersion(major = 1, minor = 200)
ANGULAR_ALIGNMENT_CENTER = 2

Align to the center of the container.

const Int
@RequiresSchemaVersion(major = 1, minor = 200)
ANGULAR_ALIGNMENT_END = 3

Align to the end of the container.

const Int
@RequiresSchemaVersion(major = 1, minor = 200)
ANGULAR_ALIGNMENT_START = 1

Align to the start of the container.

const Int
@RequiresSchemaVersion(major = 1, minor = 200)
ANGULAR_ALIGNMENT_UNDEFINED = 0

Angular alignment is undefined.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
ARC_ANCHOR_CENTER = 2

Anchor at the center of the elements.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
ARC_ANCHOR_END = 3

Anchor at the end of the elements.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
ARC_ANCHOR_START = 1

Anchor at the start of the elements.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
ARC_ANCHOR_UNDEFINED = 0

Anchor position is undefined.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
CONTENT_SCALE_MODE_CROP = 2

Content will be resized proportionally so it completely fills its bounds, and anything outside of the bounds will be cropped.

const Int

Content will be resized to fill its bounds, without taking into account the aspect ratio.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
CONTENT_SCALE_MODE_FIT = 1

Content will be scaled to fit inside its bounds, proportionally.

const Int

Content scaling is undefined.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
FONT_VARIANT_BODY = 2

Font variant suited for body text.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
FONT_VARIANT_TITLE = 1

Font variant suited for title text.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
FONT_VARIANT_UNDEFINED = 0

Font variant is undefined.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
FONT_WEIGHT_BOLD = 700

Bold font weight.

const Int

Medium font weight.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
FONT_WEIGHT_NORMAL = 400

Normal font weight.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
FONT_WEIGHT_UNDEFINED = 0

Font weight is undefined.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
HORIZONTAL_ALIGN_CENTER = 2

Horizontally align to center.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
HORIZONTAL_ALIGN_END = 5

Horizontally align to the content end (right in LTR layouts, left in RTL layouts).

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
HORIZONTAL_ALIGN_LEFT = 1

Horizontally align to the left.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
HORIZONTAL_ALIGN_RIGHT = 3

Horizontally align to the right.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
HORIZONTAL_ALIGN_START = 4

Horizontally align to the content start (left in LTR layouts, right in RTL layouts).

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
HORIZONTAL_ALIGN_UNDEFINED = 0

Horizontal alignment is undefined.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
SPAN_VERTICAL_ALIGN_BOTTOM = 1

Align to the bottom of the line (descent of the largest text in this line).

const Int

Align to the baseline of the text.

const Int

Alignment is undefined.

const Int
@RequiresSchemaVersion(major = 1, minor = 200)
STROKE_CAP_BUTT = 1

Begin and end contours with a flat edge and no extension.

const Int
@RequiresSchemaVersion(major = 1, minor = 200)
STROKE_CAP_ROUND = 2

Begin and end contours with a semi-circle extension.

const Int
@RequiresSchemaVersion(major = 1, minor = 200)
STROKE_CAP_SQUARE = 3

Begin and end contours with a half square extension.

const Int
@RequiresSchemaVersion(major = 1, minor = 200)
STROKE_CAP_UNDEFINED = 0

StrokeCap is undefined.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
TEXT_ALIGN_CENTER = 2

Align to the center of the androidx.wear.protolayout.LayoutElementBuilders.Text element.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
TEXT_ALIGN_END = 3

Align to the "end" of the androidx.wear.protolayout.LayoutElementBuilders.Text element (right in LTR layouts, left in RTL layouts).

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
TEXT_ALIGN_START = 1

Align to the "start" of the androidx.wear.protolayout.LayoutElementBuilders.Text element (left in LTR layouts, right in RTL layouts).

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
TEXT_ALIGN_UNDEFINED = 0

Alignment is undefined.

const Int
@RequiresSchemaVersion(major = 1, minor = 300)
TEXT_OVERFLOW_ELLIPSIZE = 4

Truncate the text to fit in the Text element's parent bounds, but add an ellipsis (i.e. ...) to the end of the text if it has been truncated.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
TEXT_OVERFLOW_ELLIPSIZE_END = 2

This property is deprecated.

Use TEXT_OVERFLOW_ELLIPSIZE instead.

const Int

Enable marquee animation for texts that don't fit inside the Text element.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
TEXT_OVERFLOW_TRUNCATE = 1

Truncate the text to fit inside of the Text element's bounds.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
TEXT_OVERFLOW_UNDEFINED = 0

Overflow behavior is undefined.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
VERTICAL_ALIGN_BOTTOM = 3

Vertically align to the bottom.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
VERTICAL_ALIGN_CENTER = 2

Vertically align to center.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
VERTICAL_ALIGN_TOP = 1

Vertically align to the top.

const Int
@RequiresSchemaVersion(major = 1, minor = 0)
VERTICAL_ALIGN_UNDEFINED = 0

Vertical alignment is undefined.

Constants

ANGULAR_ALIGNMENT_CENTER

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 200)
const val ANGULAR_ALIGNMENT_CENTER = 2: Int

Align to the center of the container. As an example, if the container starts at 90 degrees, and has 180 degrees of sweep, and the contained element has 90 degrees of sweep, the element would draw between 135 and 225 degrees.

ANGULAR_ALIGNMENT_END

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 200)
const val ANGULAR_ALIGNMENT_END = 3: Int

Align to the end of the container. As an example, if the container starts at 90 degrees and has 180 degrees of sweep, and the contained element has 90 degrees of sweep, the element would draw between 180 and 270 degrees.

ANGULAR_ALIGNMENT_START

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 200)
const val ANGULAR_ALIGNMENT_START = 1: Int

Align to the start of the container. As an example, if the container starts at 90 degrees and has 180 degrees of sweep, the element within would draw from 90 degrees, clockwise.

ANGULAR_ALIGNMENT_UNDEFINED

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 200)
const val ANGULAR_ALIGNMENT_UNDEFINED = 0: Int

Angular alignment is undefined.

ARC_ANCHOR_CENTER

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val ARC_ANCHOR_CENTER = 2: Int

Anchor at the center of the elements. This will cause the center of the whole set of elements added to an arc to be pinned at the given anchor_angle.

ARC_ANCHOR_END

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val ARC_ANCHOR_END = 3: Int

Anchor at the end of the elements. This will cause the set of elements inside the arc to end at the specified anchor_angle, i.e. all elements should be to the left of anchor_angle.

ARC_ANCHOR_START

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val ARC_ANCHOR_START = 1: Int

Anchor at the start of the elements. This will cause elements added to an arc to begin at the given anchor_angle, and sweep around to the right.

ARC_ANCHOR_UNDEFINED

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val ARC_ANCHOR_UNDEFINED = 0: Int

Anchor position is undefined.

CONTENT_SCALE_MODE_CROP

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val CONTENT_SCALE_MODE_CROP = 2: Int

Content will be resized proportionally so it completely fills its bounds, and anything outside of the bounds will be cropped. As an example, if a 10x5 image was going to be drawn inside a 50x50 Image element, the image resource would be drawn as a 100x50 image, centered within its bounds (and with 25px cropped from both the left and right sides).

CONTENT_SCALE_MODE_FILL_BOUNDS

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val CONTENT_SCALE_MODE_FILL_BOUNDS = 3: Int

Content will be resized to fill its bounds, without taking into account the aspect ratio. If a 10x5 image was going to be drawn inside a 50x50 Image element, the image would be drawn as a 50x50 image, stretched vertically.

CONTENT_SCALE_MODE_FIT

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val CONTENT_SCALE_MODE_FIT = 1: Int

Content will be scaled to fit inside its bounds, proportionally. As an example, If a 10x5 image was going to be drawn inside a 50x50 Image element, the actual image resource would be drawn as a 50x25 image, centered within the 50x50 bounds.

CONTENT_SCALE_MODE_UNDEFINED

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val CONTENT_SCALE_MODE_UNDEFINED = 0: Int

Content scaling is undefined.

FONT_VARIANT_BODY

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val FONT_VARIANT_BODY = 2: Int

Font variant suited for body text.

FONT_VARIANT_TITLE

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val FONT_VARIANT_TITLE = 1: Int

Font variant suited for title text.

FONT_VARIANT_UNDEFINED

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val FONT_VARIANT_UNDEFINED = 0: Int

Font variant is undefined.

FONT_WEIGHT_BOLD

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val FONT_WEIGHT_BOLD = 700: Int

Bold font weight.

FONT_WEIGHT_MEDIUM

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
@ProtoLayoutExperimental
const val FONT_WEIGHT_MEDIUM = 500: Int

Medium font weight.

FONT_WEIGHT_NORMAL

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val FONT_WEIGHT_NORMAL = 400: Int

Normal font weight.

FONT_WEIGHT_UNDEFINED

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val FONT_WEIGHT_UNDEFINED = 0: Int

Font weight is undefined.

HORIZONTAL_ALIGN_CENTER

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val HORIZONTAL_ALIGN_CENTER = 2: Int

Horizontally align to center.

HORIZONTAL_ALIGN_END

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val HORIZONTAL_ALIGN_END = 5: Int

Horizontally align to the content end (right in LTR layouts, left in RTL layouts).

HORIZONTAL_ALIGN_LEFT

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val HORIZONTAL_ALIGN_LEFT = 1: Int

Horizontally align to the left.

HORIZONTAL_ALIGN_RIGHT

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val HORIZONTAL_ALIGN_RIGHT = 3: Int

Horizontally align to the right.

HORIZONTAL_ALIGN_START

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val HORIZONTAL_ALIGN_START = 4: Int

Horizontally align to the content start (left in LTR layouts, right in RTL layouts).

HORIZONTAL_ALIGN_UNDEFINED

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val HORIZONTAL_ALIGN_UNDEFINED = 0: Int

Horizontal alignment is undefined.

SPAN_VERTICAL_ALIGN_BOTTOM

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val SPAN_VERTICAL_ALIGN_BOTTOM = 1: Int

Align to the bottom of the line (descent of the largest text in this line). If there is no text in the line containing this image, this will align to the bottom of the line, where the line height is defined as the height of the largest image in the line.

SPAN_VERTICAL_ALIGN_TEXT_BASELINE

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val SPAN_VERTICAL_ALIGN_TEXT_BASELINE = 2: Int

Align to the baseline of the text. Note that if the line in the Spannable which contains this image does not contain any text, the effects of using this alignment are undefined.

SPAN_VERTICAL_ALIGN_UNDEFINED

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val SPAN_VERTICAL_ALIGN_UNDEFINED = 0: Int

Alignment is undefined.

STROKE_CAP_BUTT

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 200)
const val STROKE_CAP_BUTT = 1: Int

Begin and end contours with a flat edge and no extension.

STROKE_CAP_ROUND

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 200)
const val STROKE_CAP_ROUND = 2: Int

Begin and end contours with a semi-circle extension. The extension size is proportional to the thickness of the path.

STROKE_CAP_SQUARE

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 200)
const val STROKE_CAP_SQUARE = 3: Int

Begin and end contours with a half square extension. The extension size is proportional to the thickness of the path.

STROKE_CAP_UNDEFINED

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 200)
const val STROKE_CAP_UNDEFINED = 0: Int

StrokeCap is undefined.

TEXT_ALIGN_CENTER

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val TEXT_ALIGN_CENTER = 2: Int

Align to the center of the androidx.wear.protolayout.LayoutElementBuilders.Text element.

TEXT_ALIGN_END

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val TEXT_ALIGN_END = 3: Int

Align to the "end" of the androidx.wear.protolayout.LayoutElementBuilders.Text element (right in LTR layouts, left in RTL layouts).

TEXT_ALIGN_START

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val TEXT_ALIGN_START = 1: Int

Align to the "start" of the androidx.wear.protolayout.LayoutElementBuilders.Text element (left in LTR layouts, right in RTL layouts).

TEXT_ALIGN_UNDEFINED

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val TEXT_ALIGN_UNDEFINED = 0: Int

Alignment is undefined.

TEXT_OVERFLOW_ELLIPSIZE

Added in 1.1.0
@RequiresSchemaVersion(major = 1, minor = 300)
const val TEXT_OVERFLOW_ELLIPSIZE = 4: Int

Truncate the text to fit in the Text element's parent bounds, but add an ellipsis (i.e. ...) to the end of the text if it has been truncated.

Note that, when this is used, the parent of the Text element this corresponds to shouldn't have its width and height set to wrapped, as it can lead to unexpected results.

TEXT_OVERFLOW_ELLIPSIZE_END

Added in 1.0.0
Deprecated in 1.1.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val TEXT_OVERFLOW_ELLIPSIZE_END = 2: Int

Truncate the text at the last line defined by setMaxLines in Text to fit in the Text element's bounds, but add an ellipsis (i.e. ...) to the end of the text if it has been truncated. Note that this will not add an ellipsis if the number of lines that fits into the available space is less than the setMaxLines in Text.

TEXT_OVERFLOW_MARQUEE

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 200)
@ProtoLayoutExperimental
const val TEXT_OVERFLOW_MARQUEE = 3: Int

Enable marquee animation for texts that don't fit inside the Text element. This is only applicable for single line texts; if the text has multiple lines, the behavior is equivalent to TEXT_OVERFLOW_TRUNCATE.

TEXT_OVERFLOW_TRUNCATE

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val TEXT_OVERFLOW_TRUNCATE = 1: Int

Truncate the text to fit inside of the Text element's bounds. If text is truncated, it will be truncated on a word boundary.

TEXT_OVERFLOW_UNDEFINED

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val TEXT_OVERFLOW_UNDEFINED = 0: Int

Overflow behavior is undefined.

VERTICAL_ALIGN_BOTTOM

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val VERTICAL_ALIGN_BOTTOM = 3: Int

Vertically align to the bottom.

VERTICAL_ALIGN_CENTER

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val VERTICAL_ALIGN_CENTER = 2: Int

Vertically align to center.

VERTICAL_ALIGN_TOP

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val VERTICAL_ALIGN_TOP = 1: Int

Vertically align to the top.

VERTICAL_ALIGN_UNDEFINED

Added in 1.0.0
@RequiresSchemaVersion(major = 1, minor = 0)
const val VERTICAL_ALIGN_UNDEFINED = 0: Int

Vertical alignment is undefined.