듀다의 성장개발로그

안드로이드 Kotlin - 자동 스크롤 되는 텍스트뷰 본문

카테고리 없음

안드로이드 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)
        }

    }

 

 

실행 화면