728x90
ScrollView는 배치되어 있는 View가 화면을 벗어 날 경우 스크롤을 할 수 있도록 제공되는 View 이다.
ScrollView는 위 아래로 스크롤이 가능하며 HorizontalScrollView는 좌 우로 스크롤이 가능하다.
ScrollView와 HorizontalScrollView를 조합하면 상하 좌우 스크롤이 가능하다.
주요 프로퍼티
scrollY : ScrollView에서 현재 스크롤 된 Y 좌표
scrollX : HorizontalView에서 현재 스크롤 된 X 좌표
주요 메서드
scrollTo : 지정된 위치로 스크롤 한다. ScrollView에서는 Y 좌표를, HorizontalScrollView에서는 Y 좌표를 설정한다.
주요 이벤트
ScrollChange : 스크롤되었을 때
package com.example.scrollview
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener {
textView.text = "Y : ${scroll1.scrollY}"
textView2.text = "Y : ${scroll2.scrollX}"
}
button2.setOnClickListener {
// 지정된 위치로 애니메이션 없이 이동
// scroll1.scrollTo(0,1000)
// scroll2.scrollTo(1000,0)
// 지정된 위치로 애니메이션과 함께 이동
// scroll1.smoothScrollTo(0,1000)
// scroll2.smoothScrollTo(1000,0)
// 현재 위치에서 지정된 만큼 애니메이션과 함꼐 이동
scroll1.smoothScrollBy(0,1000)
scroll2.smoothScrollBy(1000,0)
}
scroll1.setOnScrollChangeListener(listener1)
scroll2.setOnScrollChangeListener { v, scrollX, scrollY, oldScrollX, oldScrollY ->
textView2.text = "X : ${oldScrollX} -> $scrollX"
}
}
val listener1 = object : View.OnScrollChangeListener{
override fun onScrollChange(
v: View?,
scrollX: Int,
scrollY: Int,
oldScrollX: Int,
oldScrollY: Int
) {
when(v?.id) {
R.id.scroll1 ->{
textView.text = "Y : ${oldScrollY} -> ${scrollY}"
}
}
}
}
}

728x90
'안드로이드 > Widget' 카테고리의 다른 글
안드로이드 줄긋기 (0) | 2022.07.05 |
---|---|
안드로이드 CardView (0) | 2022.06.02 |
안드로이드 RatingBar (0) | 2022.06.02 |
안드로이드 SeekBar (0) | 2022.06.02 |
안드로이드 ProgressBar (0) | 2022.06.02 |