ВыделитьKotlin
@Composable
fun TextInputForm() {
Column(
modifier = Modifier
.fillMaxSize()
.padding(16.dp),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
// Поле для ввода текста
var text by remember { mutableStateOf("") }
TextField(
value = text,
onValueChange = { newText ->
text = newText
},
label = { Text("Введите текст") },
modifier = Modifier
.fillMaxWidth()
.padding(bottom = 16.dp)
)
// Кнопка отправки
Button(
onClick = {
// Здесь обработка введенного текста
println("Введенный текст: $text")
},
modifier = Modifier.fillMaxWidth()
) {
Text("Отправить")
}
}
}Основные компоненты формы
TextField: поле ввода:
value— текущее значение текста.onValueChange— обработчик изменения текста.label— подсказка над полем.
Button: кнопка отправки:
- Содержит обработчик клика.
- Можно добавить любую логику обработки.
Дополнительные настройки TextField
Внешний вид:
ВыделитьKotlin
TextField(
// ...
placeholder = { Text("Пример текста") }, // Подсказка при пустом поле
singleLine = true, // Однострочный ввод
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text), // Тип клавиатуры
keyboardActions = KeyboardActions(onDone = { /* Действия при нажатии Done */ })
)Стилизация:
ВыделитьKotlin
TextField(
// ...
colors = TextFieldDefaults.textFieldColors(
focusedIndicatorColor = Color.Blue,
unfocusedIndicatorColor = Color.Gray
),
shape = RoundedCornerShape(8.dp) // Скругленные углы
)Как использовать
Добавьте эту форму в ваш Composable-компонент:
ВыделитьKotlin
@Composable
fun MyScreen() {
TextInputForm()
}Вы можете расширить форму, добавив:
- Несколько полей ввода.
- Валидацию данных.
- Индикаторы ошибок.
- Дополнительные кнопки (очистка, копирование).