Я решил вычислить высоту каждой линии и вот что я получил:
@Preview
@Composable
fun LineHeightPreview() {
Text(
modifier = Modifier
.fillMaxWidth(),
text = "title\ntitle\ntitle\ntitle",
textAlign = TextAlign.Center,
lineHeight = 50.sp,
onTextLayout = {
val lines = it.lineCount
for (i in 0 until lines) {
val lineHeight = it.getLineBottom(i) - it.getLineTop(i)
Log.d("onTextLayout", "Line #$i, top = ${it.getLineTop(i)} height = $lineHeight")
}
},
style = MaterialTheme.typography.h4
)
}
Даже у выставленным lineHeight я имею следующий вывод:
D/onTextLayout: Line #0, top = 0.0 height = 123.0
D/onTextLayout: Line #1, top = 123.0 height = 132.0
D/onTextLayout: Line #2, top = 255.0 height = 132.0
D/onTextLayout: Line #3, top = 387.0 height = 129.0
Как это вообще происходит?
Наверно потому что у первой и последней игнорируются отступы вызванные lineHeight
Как я могу получить высоту каждой линии с учетом этих отступов? Я пытаюсь сделать модификатор позволяющий задавать минимальную высоту блока в линиях текста. То что линии выдаются разного размера здорово усложняет мне жизнь
Вроде как только у первой игнорируются
Тоже так думал, но как видишь у последней тоже немного подрезали
такое ощущение, что я про это недавно где-то читал...
Если есть статейка - поделись пожалуйста.
Обсуждают сегодня