如何在 android jetpack compose 中查找我的手机屏幕的一行中有多少个单词

Han*_*ikh 2 android text kotlin android-jetpack-compose

我有一个很长的字符串,我在文本中显示它。这是多行文本,我想找出一行中有多少个单词。

Chi*_*mar 6

您可以用于onTextLayout获取所有Text相关信息。

以下是按行获取字数的步骤Text

解释

  1. 获取行数
  2. 循环遍历它
  3. 获取行结束并提取该字符串
  4. 计算提取行中的单词数

代码

@Composable
fun Stack018() {
    val textToDraw =
        "Lorem ipsum is placeholder text commonly used in the graphic, print, and publishing industries for previewing layouts and visual mockups"
    
    Text(text = textToDraw,
        modifier = Modifier.fillMaxSize(),
        onTextLayout = { textLayoutResult ->
            val lineCount = textLayoutResult.lineCount
            var lineOffset = 0
            for (i in 0 until lineCount ) {
                val lineEndIndex = textLayoutResult.getLineEnd(
                    lineIndex = i,
                    visibleEnd = true
                )
                val lineContent = textToDraw
                    .substring(lineOffset,lineEndIndex)
                Log.e(TAG,"=== Word Count $i= ${lineContent.split(" ").count()}")
                lineOffset = lineEndIndex
            }
        })
}
Run Code Online (Sandbox Code Playgroud)