---
title: "InlineTextContent"
description: "A data class that stores a composable to be inserted into the text layout.

Different from a regular composable, a [Placeholder] is also needed for text layout to reserve
space. In this [placeholder], the size of the content and how it will be aligned within the text
line is defined. When the children composable is measured, its size given in [Placeholder.width]
and [Placeholder.height] will be converted into [androidx.compose.ui.unit.Constraints] and passed
through [androidx.compose.ui.layout.Layout]."
type: "class"
---

<div class='type'>Class</div>


<a id='references'></a>

<div class='sourceset sourceset-common'>Common</div>


```kotlin
class InlineTextContent(
    /**
     * The setting object that defines the size and vertical alignment of this composable in the
     * text line. This is different from the measure of Layout
     *
     * @see Placeholder
     */
    val placeholder: Placeholder,
    /**
     * The composable to be inserted into the text layout. The string parameter passed to it will
     * the alternateText given to [appendInlineContent].
     */
    val children: @Composable (String) -> Unit,
)
```


A data class that stores a composable to be inserted into the text layout.

Different from a regular composable, a `Placeholder` is also needed for text layout to reserve
space. In this `placeholder`, the size of the content and how it will be aligned within the text
line is defined. When the children composable is measured, its size given in `Placeholder.width`
and `Placeholder.height` will be converted into `androidx.compose.ui.unit.Constraints` and passed
through `androidx.compose.ui.layout.Layout`.



## Code Examples

### InlineTextContentSample
```kotlin
@Composable
fun InlineTextContentSample() {
    val myId = "inlineContent"
    val text = buildAnnotatedString {
        append("Hello")
        // Append a placeholder string "[myBox]" and attach an annotation "inlineContent" on it.
        appendInlineContent(myId, "[myBox]")
    }
    val inlineContent =
        mapOf(
            Pair(
                // This tells the [BasicText] to replace the placeholder string "[myBox]" by
                // the composable given in the [InlineTextContent] object.
                myId,
                InlineTextContent(
                    // Placeholder tells text layout the expected size and vertical alignment of
                    // children composable.
                    Placeholder(
                        width = 0.5.em,
                        height = 0.5.em,
                        placeholderVerticalAlign = PlaceholderVerticalAlign.AboveBaseline,
                    )
                ) {
                    // This [Box] will fill maximum size, which is specified by the [Placeholder]
                    // above. Notice the width and height in [Placeholder] are specified in
                    // TextUnit,
                    // and are converted into pixel by text layout.
                    Box(modifier = Modifier.fillMaxSize().background(color = Color.Red))
                },
            )
        )
    BasicText(text = text, inlineContent = inlineContent)
}
```

