MultilineTextField

fun MultilineTextField(value: TextFieldValue, onValueChange: (TextFieldValue) -> Unit, onCancelClick: () -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true, readOnly: Boolean = false, required: Boolean = false, label: String? = null, placeholder: String? = null, helper: String? = null, counter: TextFieldCharacterCounter? = null, leadingContent: @Composable AddonScope.() -> Unit? = null, state: TextFieldState? = null, stateMessage: String? = null, visualTransformation: VisualTransformation = VisualTransformation.None, keyboardOptions: KeyboardOptions = KeyboardOptions.Default.copy(capitalization = KeyboardCapitalization.Sentences), keyboardActions: KeyboardActions = KeyboardActions.Default, maxLines: Int = Int.MAX_VALUE, minLines: Int = 1, interactionSource: MutableInteractionSource = remember { MutableInteractionSource() })

Outlined text input to get an input value from the user. Which can scroll its content when value takes more place than the available width. We can also set the amount of maximum lines it can expand before overscrolling.

Parameters

value

the input TextFieldValue to be shown in the text field

onValueChange

the callback that is triggered when the input service updates values in TextFieldValue. An updated TextFieldValue comes as a parameter of the callback

onCancelClick

the callback that is triggered when the user try to cancel his input. Most of the times it would require removing the content from The MultilineTextField

modifier

a Modifier for this text field

enabled

True controls the enabled state of the TextField. When false, the text field will be neither editable nor focusable, the input of the text field will not be selectable, visually text field will appear in the disabled UI state

readOnly

controls the editable state of the TextField. When true, the text field can not be modified, however, a user can focus it and copy text from it. Read-only text fields are usually used to display pre-filled forms that user can not edit

required

add an asterisk to the label to indicate that this field is required and read it as "label mandatory" but doesn't do anything else so it's up to the developer to handle the behavior.

label

the optional label to be displayed inside the text field container. The default text style for internal Text is SparkTypography.small when the text field is in focus and SparkTypography.large when the text field is not in focus

placeholder

the optional placeholder to be displayed when the text field is in focus and the input text is empty. The default text style for internal Text is SparkTypography.large

helper

The optional helper text to be displayed at the bottom outside the text input container that give some informations about expected text

counter

The optional counter to be displayed the the end bottom outside the text input container

leadingContent

the optional leading icon to be displayed at the beginning of the text field container

state

indicates the validation state of the text field. The label, outline, leading & trailing content are tinted by the state color.

stateMessage

the optional state text to be displayed at the helper position that give more information about the state, it's displayed only when state is not null.

visualTransformation

transforms the visual representation of the input value For example, you can use PasswordVisualTransformation to create a password text field. By default no visual transformation is applied

keyboardOptions

software keyboard options that contains configuration such as KeyboardType and ImeAction

keyboardActions

when the input service emits an IME action, the corresponding callback is called. Note that this IME action may be different from what you specified in KeyboardOptions.imeAction

maxLines

the maximum height in terms of maximum number of visible lines. It is required

minLines

the minimum height in terms of minimum number of visible lines. It is required

interactionSource

the MutableInteractionSource representing the stream of Interactions for this TextField. You can create and pass in your own remembered MutableInteractionSource if you want to observe Interactions and customize the appearance / behavior of this TextField in different Interactions.

See also


fun MultilineTextField(value: String, onValueChange: (String) -> Unit, onCancelClick: () -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true, readOnly: Boolean = false, required: Boolean = false, label: String? = null, placeholder: String? = null, helper: String? = null, counter: TextFieldCharacterCounter? = null, leadingContent: @Composable AddonScope.() -> Unit? = null, state: TextFieldState? = null, stateMessage: String? = null, visualTransformation: VisualTransformation = VisualTransformation.None, keyboardOptions: KeyboardOptions = KeyboardOptions.Default.copy(capitalization = KeyboardCapitalization.Sentences), keyboardActions: KeyboardActions = KeyboardActions.Default, maxLines: Int = Int.MAX_VALUE, minLines: Int = 1, interactionSource: MutableInteractionSource = remember { MutableInteractionSource() })

Outlined text input to get an input value from the user. Which can scroll its content when value takes more place than the available width. We can also set the amount of maximum lines it can expand before overscrolling.

Parameters

value

the input text to be shown in the text field

onValueChange

the callback that is triggered when the input service updates the text. An updated text comes as a parameter of the callback

onCancelClick

the callback that is triggered when the user try to cancel his input. Most of the times it would require removing the content from The MultilineTextField

modifier

a Modifier for this text field

enabled

True controls the enabled state of the TextField. When false, the text field will be neither editable nor focusable, the input of the text field will not be selectable, visually text field will appear in the disabled UI state

readOnly

controls the editable state of the TextField. When true, the text field can not be modified, however, a user can focus it and copy text from it. Read-only text fields are usually used to display pre-filled forms that user can not edit

required

add an asterisk to the label to indicate that this field is required and read it as "label mandatory" but doesn't do anything else so it's up to the developer to handle the behavior.

label

the optional label to be displayed inside the text field container. The default text style for internal Text is SparkTypography.small when the text field is in focus and SparkTypography.large when the text field is not in focus

placeholder

the optional placeholder to be displayed when the text field is in focus and the input text is empty. The default text style for internal Text is SparkTypography.large

helper

The optional helper text to be displayed at the bottom outside the text input container that give some informations about expected text

counter

The optional counter to be displayed the the end bottom outside the text input container

leadingContent

the optional leading icon to be displayed at the beginning of the text field container

state

indicates the validation state of the text field. The label, outline, leading & trailing content are tinted by the state color.

stateMessage

the optional state text to be displayed at the helper position that give more information about the state, it's displayed only when state is not null.

visualTransformation

transforms the visual representation of the input value For example, you can use PasswordVisualTransformation to create a password text field. By default no visual transformation is applied

keyboardOptions

software keyboard options that contains configuration such as KeyboardType and ImeAction

keyboardActions

when the input service emits an IME action, the corresponding callback is called. Note that this IME action may be different from what you specified in KeyboardOptions.imeAction

maxLines

the maximum height in terms of maximum number of visible lines. It is required

minLines

the minimum height in terms of minimum number of visible lines. It is required

interactionSource

the MutableInteractionSource representing the stream of Interactions for this TextField. You can create and pass in your own remembered MutableInteractionSource if you want to observe Interactions and customize the appearance / behavior of this TextField in different Interactions.

See also