# LayoutElementBuilders.Spannable.Builder

# LayoutElementBuilders.Spannable.Builder

Artifact:[androidx.wear.protolayout:protolayout](https://developer.android.com/jetpack/androidx/releases/wear-protolayout)  
[View Source](https://cs.android.com/search?q=file:androidx/wear/protolayout/LayoutElementBuilders.java+class:androidx.wear.protolayout.LayoutElementBuilders.Spannable.Builder)  
Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder "View this page in Java")

<br />

```
class LayoutElementBuilders.Spannable.Builder
```

<br />

*** ** * ** ***

Builder for[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable).

## Summary

|                                                                                                                                   ### Public constructors                                                                                                                                    |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Builder](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder#Builder())`()` Creates an instance of[Builder](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder). |

|                                                                    ### Public functions                                                                     |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [LayoutElementBuilders.Spannable.Builder](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder) | `@`[RequiresSchemaVersion](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion)`(major = 1, minor = 0)` [addSpan](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder#addSpan(androidx.wear.protolayout.LayoutElementBuilders.Span))`(span: `[LayoutElementBuilders.Span](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Span)`)` Adds one item to the[Span](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Span)elements that form this[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable). |
| [LayoutElementBuilders.Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)                 | [build](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder#build())`()` Builds an instance with values accumulated in this Builder.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| [LayoutElementBuilders.Spannable.Builder](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder) | `@`[RequiresSchemaVersion](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion)`(major = 1, minor = 0)` [setLineHeight](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder#setLineHeight(androidx.wear.protolayout.DimensionBuilders.SpProp))`(lineHeight: `[DimensionBuilders.SpProp](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/DimensionBuilders.SpProp)`)` Sets the explicit height between lines of text.                                                                                                                                                                                                                  |
| [LayoutElementBuilders.Spannable.Builder](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder) | `@`[RequiresSchemaVersion](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion)`(major = 1, minor = 200)` `@`[ProtoLayoutExperimental](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/ProtoLayoutExperimental) [setMarqueeIterations](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder#setMarqueeIterations(int))`(marqueeIterations: @`[IntRange](https://developer.android.com/reference/kotlin/androidx/annotation/IntRange)`(from = "-1") `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` Sets the number of times to repeat the Marquee animation.                                |
| [LayoutElementBuilders.Spannable.Builder](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder) | [setMaxLines](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder#setMaxLines(int))`(maxLines: @`[IntRange](https://developer.android.com/reference/kotlin/androidx/annotation/IntRange)`(from = 1) `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` Sets the maximum number of lines that can be represented by the[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)element.                                                                                                                                                                                                                                     |
| [LayoutElementBuilders.Spannable.Builder](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder) | `@`[RequiresSchemaVersion](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion)`(major = 1, minor = 0)` [setMaxLines](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder#setMaxLines(androidx.wear.protolayout.TypeBuilders.Int32Prop))`(maxLines: `[TypeBuilders.Int32Prop](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/TypeBuilders.Int32Prop)`)` Sets the maximum number of lines that can be represented by the[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)element.                                                                                 |
| [LayoutElementBuilders.Spannable.Builder](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder) | `@`[RequiresSchemaVersion](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion)`(major = 1, minor = 0)` [setModifiers](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder#setModifiers(androidx.wear.protolayout.ModifiersBuilders.Modifiers))`(modifiers: `[ModifiersBuilders.Modifiers](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/ModifiersBuilders.Modifiers)`)` Sets[androidx.wear.protolayout.ModifiersBuilders.Modifiers](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/ModifiersBuilders.Modifiers)for this element.                                                                         |
| [LayoutElementBuilders.Spannable.Builder](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder) | `@`[RequiresSchemaVersion](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion)`(major = 1, minor = 0)` [setMultilineAlignment](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder#setMultilineAlignment(int))`(multilineAlignment: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` Sets alignment of the[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)content within its bounds.                                                                                                                                                                      |
| [LayoutElementBuilders.Spannable.Builder](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder) | `@`[RequiresSchemaVersion](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion)`(major = 1, minor = 0)` [setMultilineAlignment](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder#setMultilineAlignment(androidx.wear.protolayout.LayoutElementBuilders.HorizontalAlignmentProp))`(` ` multilineAlignment: `[LayoutElementBuilders.HorizontalAlignmentProp](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.HorizontalAlignmentProp) `)` Sets alignment of the[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)content within its bounds. |
| [LayoutElementBuilders.Spannable.Builder](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder) | `@`[RequiresSchemaVersion](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion)`(major = 1, minor = 0)` [setOverflow](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder#setOverflow(int))`(overflow: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` Sets how to handle content which overflows the bound of the[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)element.                                                                                                                                                                                |
| [LayoutElementBuilders.Spannable.Builder](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder) | `@`[RequiresSchemaVersion](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/RequiresSchemaVersion)`(major = 1, minor = 0)` [setOverflow](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder#setOverflow(androidx.wear.protolayout.LayoutElementBuilders.TextOverflowProp))`(overflow: `[LayoutElementBuilders.TextOverflowProp](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.TextOverflowProp)`)` Sets how to handle content which overflows the bound of the[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)element.                                     |

## Public constructors

### Builder

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)  

```
Builder()
```

Creates an instance of[Builder](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder).  

## Public functions

### addSpan

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)  

```
@RequiresSchemaVersion(major = 1, minor = 0)
fun addSpan(span: LayoutElementBuilders.Span): LayoutElementBuilders.Spannable.Builder
```

Adds one item to the[Span](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Span)elements that form this[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable).  

### build

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)  

```
fun build(): LayoutElementBuilders.Spannable
```

Builds an instance with values accumulated in this Builder.  

### setLineHeight

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)  

```
@RequiresSchemaVersion(major = 1, minor = 0)
fun setLineHeight(lineHeight: DimensionBuilders.SpProp): LayoutElementBuilders.Spannable.Builder
```

Sets the explicit height between lines of text. This is equivalent to the vertical distance between subsequent baselines. If not specified, defaults the font's recommended interline spacing.  

### setMarqueeIterations

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)  

```
@RequiresSchemaVersion(major = 1, minor = 200)
@ProtoLayoutExperimental
fun setMarqueeIterations(marqueeIterations: @IntRange(from = "-1") Int): LayoutElementBuilders.Spannable.Builder
```

Sets the number of times to repeat the Marquee animation. Only applies when overflow is TEXT_OVERFLOW_MARQUEE. Set to -1 to repeat indefinitely. Defaults to repeat indefinitely.  

### setMaxLines

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)  

```
fun setMaxLines(maxLines: @IntRange(from = 1) Int): LayoutElementBuilders.Spannable.Builder
```

Sets the maximum number of lines that can be represented by the[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)element. If not defined, the[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)element will be treated as a single-line element.  

### setMaxLines

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)  

```
@RequiresSchemaVersion(major = 1, minor = 0)
fun setMaxLines(maxLines: TypeBuilders.Int32Prop): LayoutElementBuilders.Spannable.Builder
```

Sets the maximum number of lines that can be represented by the[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)element. If not defined, the[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)element will be treated as a single-line element.  

### setModifiers

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)  

```
@RequiresSchemaVersion(major = 1, minor = 0)
fun setModifiers(modifiers: ModifiersBuilders.Modifiers): LayoutElementBuilders.Spannable.Builder
```

Sets[androidx.wear.protolayout.ModifiersBuilders.Modifiers](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/ModifiersBuilders.Modifiers)for this element.  

### setMultilineAlignment

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)  

```
@RequiresSchemaVersion(major = 1, minor = 0)
fun setMultilineAlignment(multilineAlignment: Int): LayoutElementBuilders.Spannable.Builder
```

Sets alignment of the[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)content within its bounds. Note that a[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)element will size itself to wrap its contents, so this option is meaningless for single-line content (for that, use alignment of the outer container). For multi-line content, however, this will set the alignment of lines relative to the[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)element bounds. If not defined, defaults to TEXT_ALIGN_CENTER.  

### setMultilineAlignment

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)  

```
@RequiresSchemaVersion(major = 1, minor = 0)
fun setMultilineAlignment(
    multilineAlignment: LayoutElementBuilders.HorizontalAlignmentProp
): LayoutElementBuilders.Spannable.Builder
```

Sets alignment of the[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)content within its bounds. Note that a[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)element will size itself to wrap its contents, so this option is meaningless for single-line content (for that, use alignment of the outer container). For multi-line content, however, this will set the alignment of lines relative to the[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)element bounds. If not defined, defaults to TEXT_ALIGN_CENTER.  

### setOverflow

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)  

```
@RequiresSchemaVersion(major = 1, minor = 0)
fun setOverflow(overflow: Int): LayoutElementBuilders.Spannable.Builder
```

Sets how to handle content which overflows the bound of the[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)element. A[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)element will grow as large as possible inside its parent container (while still respecting max_lines); if it cannot grow large enough to render all of its content, the content which cannot fit inside its container will be truncated. If not defined, defaults to TEXT_OVERFLOW_TRUNCATE.  

### setOverflow

Added in[1.0.0](https://developer.android.com/jetpack/androidx/releases/wear-protolayout#1.0.0)  

```
@RequiresSchemaVersion(major = 1, minor = 0)
fun setOverflow(overflow: LayoutElementBuilders.TextOverflowProp): LayoutElementBuilders.Spannable.Builder
```

Sets how to handle content which overflows the bound of the[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)element. A[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)element will grow as large as possible inside its parent container (while still respecting max_lines); if it cannot grow large enough to render all of its content, the content which cannot fit inside its container will be truncated. If not defined, defaults to TEXT_OVERFLOW_TRUNCATE.