Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 서비스
- 드로어블
- textview auto scroll
- SceneDelegate
- 안드로이드
- 제약 레이아웃
- 데이터베이스
- 코틀린
- 아이폰
- 액션바
- RecyclerView
- 프로젝트
- 스낵바
- 자바
- 코드리뷰
- 리니어 레이아웃
- 프로그래밍
- 수명주기
- edwith
- Swift
- 부스트코스
- 레이아웃
- 상대 레이아웃
- 뷰
- 텍스트뷰 스크롤
- 안드로이드_프로그래밍
- IOS
- 텍스트뷰 자동 스크롤
- 안드로이드 스튜디오
- 테이블_레이아웃
Archives
- Today
- Total
듀다의 성장개발로그
안드로이드 Kotlin - 자동 스크롤 되는 텍스트뷰 본문
텍스트뷰가 위의 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)
}
}
실행 화면