Jetpack создает стиль текстаAndroid

Форум для тех, кто программирует под Android
Anonymous
Jetpack создает стиль текста

Сообщение Anonymous »


В моем текущем проекте, использующем Jetpack Compose, передо мной стоит задача предоставить пользователям возможность вводить данные, а также предоставить функциональные возможности для стилизации текста с такими параметрами, как полужирный шрифт или курсив при нажатии кнопок. Учитывая мой новичок в Jetpack Compose, мне нужны рекомендации по эффективной реализации этой функции.
@Composable
fun CustomTextField() {

Код: Выделить всё

var isBold by remember { mutableStateOf(false) }

val textState = remember { mutableStateOf(TextFieldValue()) }
val prevPos by remember { mutableStateOf(0) }

Column() {

Button(onClick = {
isBold = !isBold
}) {
Text(text = "Toggle Bold")
}

TextField(
value = textState.value,
onValueChange = {

if (isBold) {
val annotatedString = buildAnnotatedString {
append(it.text)

addStyle(
SpanStyle(fontWeight = FontWeight.Bold),
prevPos,
it.text.length
)
}

textState.value =  it.copy(annotatedString, it.selection, it.composition)
} else {
textState.value =  it
}
},
textStyle = TextStyle(
fontSize = 16.sp,
lineHeight = 24.sp,
color = Color.Black
),
modifier = Modifier
.padding(16.dp)
.clip(MaterialTheme.shapes.medium)
.background(MaterialTheme.colors.surface)
)
}
}
i am trying through this but my whole text get bold after click on button


Источник: https://stackoverflow.com/questions/781 ... xt-styling

Вернуться в «Android»