본문 바로가기
개발/Adroid

[android] 당겨서 새로고침 간단하게 구현하기

by KEI NETWORK 2019. 9. 13.
728x90

출처 : http://www.androidhive.info/2015/05/android-swipe-down-to-refresh-listview-tutorial/

안드로이드에서 “당겨서 새로고침(Pull to Refresh)" UI를 간단히 구현해보자.


당겨서 새로고침 기능을 구현해주는 SwipeRefreshLayout은 Android support library v4에 포함되어 있다. 먼저 gradle에 support v4 라이브러리를 추가한다.

// build.gradledependencies {
...
compile 'com.android.support:support-v4:23.4.0'
}

그리고 새로고침을 적용할 뷰를 SwipeRefreshLayout으로 감싼다. 대부분 ListView 또는 RecyclerView가 들어갈 것이다.

<android.support.v4.widget.SwipeRefreshLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/swipe_layout">

<ListView
...
/>
</android.support.v4.widget.SwipeRefreshLayout>

이제 SwipeRefreshLayout을 객체로 만들고 OnRefreshListener 인터페이스를 등록한다.

SwipeRefreshLayout mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_layout);mSwipeRefreshLayout.setOnRefreshListener(this);

OnRefreshListener 인터페이스는 onRefresh 메서드를 가지고 있다. 이 메서드는 사용자가 리스트를 끝까지 당겼다가 놓았을 때 호출된다. 여기에 새로고침 코드를 넣으면 된다.

@Override
public void onRefresh() {
// 새로고침 코드
}

그리고 새로고침이 완료되었다면 반드시 setRefresing(false)를 호출해야 한다. 그렇지 않으면 새로고침 아이콘이 사라지지 않는다.

@Override
public void onRefresh() {
// 새로고침 코드
...
// 새로고침 완료
mSwipeRefreshLayout.setRefreshing(false);
}

새로고침 아이콘의 색상을 바꾸려면 setColorSchemaResources 메서드를 사용한다.

mSwipeRefreshLayout.setColorSchemeResources(
android.R.color.holo_blue_bright,
android.R.color.holo_green_light,
android.R.color.holo_orange_light,
android.R.color.holo_red_light
);

화살표가 한바퀴 돌 때마다 각각의 색상으로 나타난다.


참고 https://guides.codepath.com/android/Implementing-Pull-to-Refresh-Guide

728x90

댓글