카테고리 없음
안드로이드 Kotlin - 자동 스크롤 되는 텍스트뷰
du-da
2021. 3. 7. 10:44
텍스트뷰가 위의 TextView만큼의 공간을 화면에서 차지한다면
이 텍스트뷰보다 많은 라인의 텍스트가 들어가면 한 화면에서 다 표시할 수 없게 됩니다.
그럴 때는 스크롤을 넣어 주면 보이지 않는 텍스트는 스크롤을 하며 볼 수 있습니다.
textView.movementMethod = ScrollingMovementMethod.getInstance()
그러나 스크롤 기능을 넣어도 한 줄 추가될 때마다 자동으로 스크롤이 내려가진 않는데요,
아래와 같은 코드를 작성해주시면 자동으로 스크롤되는 텍스트뷰를 만들 수 있습니다.
textView.post {
val scrollAmount = textView.layout.getLineTop(textView.lineCount) - textView.height
if (scrollAmount > 0)
textView.scrollTo(0, scrollAmount)
else
textView.scrollTo(0,0)
}
onCreate 전체 코드
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.play_game)
var textView = findViewById(R.id.commentary) as TextView
textView.append("경기 시작되었습니다. \n")
textView.append("화이트 하트 레인 \n")
for (i in 1..40) {
textView.append("손흥민 화이팅! \n")
}
textView.movementMethod = ScrollingMovementMethod.getInstance()
textView.post {
val scrollAmount = textView.layout.getLineTop(textView.lineCount) - textView.height
if (scrollAmount > 0)
textView.scrollTo(0, scrollAmount)
else
textView.scrollTo(0,0)
}
}
실행 화면