У меня есть многострочное OutlinedTextField. Когда пользователь добавляет новую строку, я хочу программно добавить маркер, за которым следует пробел. Пока мне это удается, но проблема в том, что после добавления маркера позиция курсора все еще находится на новой строке, а не после маркера.
Это мое составное текстовое поле:@Composable
fun ExperienceDescTextField(
value: String,
onValueChange: (String) -> Unit,
placeholder: String,
modifier: Modifier = Modifier,
) {
val colorsOfTextFields = OutlinedTextFieldDefaults.colors(
cursorColor = Color.Black,
unfocusedContainerColor = Color.White,
focusedContainerColor = Color.White,
unfocusedBorderColor = onPrimaryColor,
focusedBorderColor = onPrimaryColor,
focusedTextColor = onPrimaryColor,
disabledTextColor = onPrimaryColor,
unfocusedPlaceholderColor = onPrimaryLightColor,
focusedPlaceholderColor = onPrimaryLightColor
)
OutlinedTextField(
value = value,
onValueChange = { newValue ->
val updatedValue = if (newValue.endsWith("\n")) {
// Append bullet point and indentation if a new line is entered
val bulletPoint = "\u25CF\t"
newValue + bulletPoint
} else if (newValue.endsWith("\u25CF")) {
newValue.dropLast(2)
} else {
newValue
}
val fieldValue =
TextFieldValue(text = updatedValue, selection = TextRange(updatedValue.length))
Log.e("TAG", "ExperienceDescTextField: $fieldValue")
onValueChange(fieldValue.text)
},
/*onValueChange = { newValue ->
onValueChange(newValue)
},*/
textStyle = TextStyle(
fontSize = 14.sp,
color = onPrimaryColor,
fontFamily = poppinsFont,
fontWeight = FontWeight.Normal,
),
modifier = modifier.fillMaxWidth(),
shape = RoundedCornerShape(4.dp),
keyboardOptions = KeyboardOptions(
keyboardType = KeyboardType.Text, imeAction = ImeAction.Default
),
placeholder = {
Text(
placeholder,
fontSize = 14.sp,
fontFamily = poppinsFont,
fontWeight = FontWeight.Normal
)
},
colors = colorsOfTextFields,
singleLine = false,
minLines = 4,
maxLines = 7
)
}
И со своего экрана я называю это следующим образом:
ExperienceDescTextField(
value = viewModel.jobDescription.value,
onValueChange = {
viewModel.jobDescription.value = it
},
placeholder = stringResource(R.string.get_help_writing_your_bullet_points_with_help_of_ai_powered_examples_below),
modifier = Modifier.focusRequester(focusRequester),
)
Подробнее здесь: https://stackoverflow.com/questions/782 ... -textfield
Добавление маркера в многострочное текстовое поле ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Добавление изображения в многострочное текстовое представление [дубликат]
Гость » » в форуме Android - 0 Ответы
- 30 Просмотры
-
Последнее сообщение Гость
-