SwipeRefreshLayout (새로고침)

푸른하늘·2021년 12월 26일
0

새로고침 해주는 SwipeRefreshLayout

  • Swiperefreshlayout은 사용자가 수동으로 업데이트 를 요청할 수 있도록 합니다
  • Swiperefreshlayout이 적용되어 있는 Activity에 그림처럼 수직으로 pull하면 업데이트가 트리거된다.

종속성 추가

dependencies {
    implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
}

xml 예시

<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/refreshlayout"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center">

        <TextView
            android:id="@+id/refresh_cnt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="0"
            android:textSize="30sp"
            android:textColor="#000"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="번째 새로고침입니다"
            android:textSize="30sp"
            android:textColor="#000"/>

    </LinearLayout>

</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

Activity

refresh_layout.setOnRefreshListener {
    // 새로고침 코드를 작성
    var data = MainData("refresh", "refreshing completed")
    recyclerViewAdapter.add(data)
    recyclerViewAdapter.notifyDataSetChanged()
    
    // 새로고침 완료시,
    // 새로고침 아이콘이 사라질 수 있게 isRefreshing = false
    refreshlayout.isRefreshing = false
}

swiperefreshlayout 는 맨 바깥쪽 Layout에 주로 위치하면서
사용자가 데이터를 새롭게 notifyDataSetChanged() 해서 새로운 데이터를 받을 수 있게 한다. 주로 API 호출 하는 프로그래밍 에서 많이 사용됩니다.

profile
Developer-Android-CK

0개의 댓글