Я решил вычислить высоту каждой линии и вот что я получил:
                  
                  
                  @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
Как я могу получить высоту каждой линии с учетом этих отступов? Я пытаюсь сделать модификатор позволяющий задавать минимальную высоту блока в линиях текста. То что линии выдаются разного размера здорово усложняет мне жизнь
Вроде как только у первой игнорируются
Тоже так думал, но как видишь у последней тоже немного подрезали
такое ощущение, что я про это недавно где-то читал...
Если есть статейка - поделись пожалуйста.
Обсуждают сегодня