본문 바로가기

Kotlin

[Android] Kotlin - SwipeRefreshLayout 아래로 당겨서 새로고침하기

이번에는 화면을 아래로 당겨서 새로고침하는 방법에 대하여 알아보겠습니다.

 

1. build.gradle 모듈에서 아래 코드를 추가해준 뒤 Sync now를 눌러줍니다.

 

dependencies {

    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
    ...
    }

 

 

 

2. 메인액티비티 화면 레이아웃에서 SwipeRefreshLayout으로 갱신할 대상을 감싸줍니다.

 

저는 간단하게 초기 화면인 Hello World!를 새로고침으로 바꿔보겠습니다.

 

 

 

3. 메인액티비티 코드 구성

 

코드구성은 아래와 같이 간단합니다.

SwipeRefreshLayout은 Swipe할 때 아이콘을 아래로 보여주는 것이 전부입니다.

갱신할 대상은 setOnRefreshListener{ } 안에 값을 변경하는 코드가 필요합니다.

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        swipe.setOnRefreshListener {
            tv_refresh.text = "새로고침"
            swipe.isRefreshing = false
        }

    }
}

 

앱을 실행하고 화면을 아래로 당기시면 텍스트뷰 내용이 새로고침으로 바뀌는 걸 볼 수 있습니다.

 

 

 

 

RecyclerView에 SwipeRefreshLayout를 사용한 새로고침을 하시려면 화면구성에서 SwipeRefreshLayout안에 RecyclerView를 감싸주시고 리싸이클러뷰 어뎁터의 데이터를 변경하고, 어뎁터의 notifyDatasetChanged()함수를 호출해야 합니다.