출처 : 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
'개발 > Adroid' 카테고리의 다른 글
[android] ImageLoader must be init with configuration before using (0) | 2019.10.01 |
---|---|
[andorid] Sliding Tabs with PagerSlidingTabStrip (0) | 2019.09.27 |
[android] 다국어 지원 (0) | 2019.09.12 |
[android] 레이아웃 (0) | 2019.09.12 |
[android studio] 코드가 입력될 때 자동으로 import (0) | 2019.09.12 |
댓글