Функция TextField
Функция TextField рисует однострочное
или многострочное поле ввода в стиле Material3.
Текст хранят в параметре value,
изменения принимают в onValueChange.
Состояние удобно держать через
remember
и mutableStateOf.
Клавиатуру настраивают через
KeyboardOptions.
Синтаксис
TextField(
value = text,
onValueChange = { text = it },
)
Параметры
| Параметр | Описание |
|---|---|
value |
Текущая строка в поле. Должна совпадать с тем, что показывает composable. |
onValueChange |
Лямбда вызывается при каждом изменении текста. Сюда обычно записывают новое значение в состояние. |
label |
Подпись над полем или внутри него, когда поле в фокусе. |
placeholder |
Подсказка, пока поле пустое и без фокуса. |
keyboardOptions |
Тип клавиатуры и действие клавиши ввода.
Принимает объект класса
KeyboardOptions.
|
visualTransformation |
Преобразование отображаемого текста,
например
PasswordVisualTransformation
для пароля.
|
singleLine |
Если true, поле не переносит строку
и остаётся однострочным.
|
Пример
Давайте свяжем поле с переменной состояния:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.Text
import androidx.compose.material3.TextField
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
var text by remember { mutableStateOf("abcde") }
TextField(
value = text,
onValueChange = { text = it },
label = { Text("abcde") },
)
}
}
}
На экране поле с заливкой покажет строку
"abcde", её можно редактировать.
Смотрите также
-
функция
OutlinedTextField,
которая рисует поле с обводкой по контуру -
класс
KeyboardOptions,
который задаёт тип клавиатуры и действие ввода -
класс
PasswordVisualTransformation,
который скрывает символы пароля точками -
класс
LocalSoftwareKeyboardController,
который показывает и скрывает программную клавиатуру