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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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