Vintage appMaker의 Tech Blog

[TextView] linecount 얻기 - ScrollView에서.. 본문

Source code or Tip/Android(Java, Kotlin)

[TextView] linecount 얻기 - ScrollView에서..

VintageappMaker 2021. 8. 20. 11:21

TextView의 라인갯수는 lineCount로 알 수 있다. 

그런데, ScrollView 형식의 부모에서는 바로 얻어낼 수 없다. 

반드시 화면이 정리된 이후에 카운트를 가져올 수 있다. 

 

그러므로 addOnLayoutChangeListener()를 구현하여 그 안에서 lineCount 값을 처리해야 한다. 

 

val txtLineCount = findViewById<TextView>(R.id.txtLineCount)
txtLineCount.addOnLayoutChangeListener { view, i, i2, i3, i4, i5, i6, i7, i8 ->
    // lineCount는 레이아웃이 완료된 시점에서 재대로 동작한다.
    val cnt = txtLineCount.lineCount
    val LIMITLINE= 5
    if (cnt > LIMITLINE) {
        val s  = txtLineCount.text
        var s2 = ""
        s.split("\n").forEachIndexed{ index, data -> if (index < LIMITLINE) s2 += "${data}\n"  }
        txtLineCount.text = s2
    }
}

Comments