# LayoutElementBuilders.Spannable

# LayoutElementBuilders.Spannable

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)  
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 "View this page in Java")

<br />

```
@RequiresSchemaVersion(major = 1, minor = 0)
class LayoutElementBuilders.Spannable : LayoutElementBuilders.LayoutElement
```

<br />

*** ** * ** ***

A container of[Span](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Span)elements. Currently, this supports[SpanImage](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.SpanImage)and[SpanText](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.SpanText)elements, where each individual[Span](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Span)can have different styling applied to it but the resulting text will flow naturally. This allows sections of a paragraph of text to have different styling applied to it, for example, making one or two words bold or italic.

## Summary

|                                                                                                                                           ### Nested types                                                                                                                                            |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `class `[LayoutElementBuilders.Spannable.Builder](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable.Builder) Builder for[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable). |

|                                                                                                                                                            ### Public functions                                                                                                                                                             |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [DimensionBuilders.SpProp](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/DimensionBuilders.SpProp)`?`                                                                                                                                                                                                            | [getLineHeight](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable#getLineHeight())`()` Gets the explicit height between lines of text.                                                                                                                                                                                                        |
| `@`[IntRange](https://developer.android.com/reference/kotlin/androidx/annotation/IntRange)`(from = "-1") `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)                                                                                                                                                       | `@`[ProtoLayoutExperimental](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/expression/ProtoLayoutExperimental) [getMarqueeIterations](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable#getMarqueeIterations())`()` Gets the number of times to repeat the Marquee animation.                                      |
| [TypeBuilders.Int32Prop](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/TypeBuilders.Int32Prop)`?`                                                                                                                                                                                                                | [getMaxLines](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable#getMaxLines())`()` Gets the maximum number of lines that can be represented by the[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)element.                                                               |
| [ModifiersBuilders.Modifiers](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/ModifiersBuilders.Modifiers)`?`                                                                                                                                                                                                      | [getModifiers](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable#getModifiers())`()` Gets[androidx.wear.protolayout.ModifiersBuilders.Modifiers](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/ModifiersBuilders.Modifiers)for this element.                                                                       |
| [LayoutElementBuilders.HorizontalAlignmentProp](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.HorizontalAlignmentProp)`?`                                                                                                                                                                  | [getMultilineAlignment](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable#getMultilineAlignment())`()` Gets alignment of the[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)content within its bounds.                                                                   |
| [LayoutElementBuilders.TextOverflowProp](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.TextOverflowProp)`?`                                                                                                                                                                                | [getOverflow](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable#getOverflow())`()` Gets how to handle content which overflows the bound of the[Spannable](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable)element.                                                                   |
| `(`[Mutable](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)`)`[List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)`<`[LayoutElementBuilders.Span](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Span)`!>` | [getSpans](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable#getSpans())`()` Gets 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). |
| [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)                                                                                                                                                                                                                                                           | [toString](https://developer.android.com/reference/kotlin/androidx/wear/protolayout/LayoutElementBuilders.Spannable#toString())`()`                                                                                                                                                                                                                                                                  |

## Public functions

### getLineHeight

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

```
fun getLineHeight(): DimensionBuilders.SpProp?
```

Gets 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.  

### getMarqueeIterations

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

```
@ProtoLayoutExperimental
fun getMarqueeIterations(): @IntRange(from = "-1") Int
```

Gets 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.  

### getMaxLines

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

```
fun getMaxLines(): TypeBuilders.Int32Prop?
```

Gets 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.  

### getModifiers

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

```
fun getModifiers(): ModifiersBuilders.Modifiers?
```

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

### getMultilineAlignment

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

```
fun getMultilineAlignment(): LayoutElementBuilders.HorizontalAlignmentProp?
```

Gets 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.  

### getOverflow

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

```
fun getOverflow(): LayoutElementBuilders.TextOverflowProp?
```

Gets 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.  

### getSpans

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

```
fun getSpans(): (Mutable)List<LayoutElementBuilders.Span!>
```

Gets 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).  

### toString

```
fun toString(): String
```