June 13

IME Action Buttons в Android

В Android IME (Input Method Action) это кнопка на клавиатуре в правом нижнем углу. Она предназначена для выполнения определённого действия. Например, Done означает, что пользователь заполнил все поля ввода. Next — что пользователь заполнил данное поле ввода и хочет перейти к следующему.

Класс KeyboardOptions в Jetpack Compose позволяет настроить клавиатуру для определённого текстового поля. В правом нижем углу появляется кнопка, действие по нажатию на которую различается в зависимости от назначения поля ввода.

Доступны следующие вариации imeAction:

ImeAction.Unspecified: поведение imeAction по умолчанию — не определено.

ImeAction.Done: ввод завершён, скрыть клавиатуру.

ImeAction.Go: продолжить.

ImeAction.Next: перейти к следующему полю ввода.

ImeAction.Previous: вернуться к предыдущему полю ввода.

ImeAction.Search: поиск.

ImeAction.Send: отправить данные.

Пример переиспользуемой Composable-функции:

@Composable
fun FormInput(
    value: String,
    description: String,
    keyboardActions: KeyboardActions = KeyboardActions.Default,
    imeAction: ImeAction = ImeAction.Default,
    onValueChanged: (String) -> Unit
) {
    OutlinedTextField(
        modifier = Modifier
            .fillMaxWidth()
            .padding(8.dp),
        value = value,
        label = { Text(text = description) },
        keyboardOptions = KeyboardOptions(imeAction = imeAction),
        keyboardActions = keyboardActions,
        onValueChange = { newValue -> onValueChanged(newValue) }
    )
}

В параметр передаётся imeAction, по умолчанию это ImeAction.Default.