본문 바로가기
안드로이드/Widget

안드로이드 ScrollView

by 김어찐 2022. 6. 2.
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