공상하는 개발자

[안드로이드/android] PullRefreshLayout 을 이용한 당기면 피드 업데이트 구현 본문

개발/안드로이드

[안드로이드/android] PullRefreshLayout 을 이용한 당기면 피드 업데이트 구현

공상과학소설 2019. 7. 30. 11:46
반응형

타임라인 어플의 꽃은 당기면 피드 업데이트가 진행된다는 점이다. 나도 이점을 당연히 구현해야지 하고 있었는데 어려울 줄 알았는데 생각보다 매우 쉬웠다. 이 기능은 PullRefreshLayout을 이용하면 된다. 먼저  build.gradle(Module: app)의 dependencies에 

 

1
2
3
dependencies{
}
 

 

를 추가하면 준비 끝이다.

 

 

 

xml 파일

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/swipeRefreshLayout">
 
        .../>
 

업데이트 하고 싶은 위젯을 PullRefreshLayout 안에 집어넣고 

 

 

 

java 파일

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
loading= (PullRefreshLayout)View1.findViewById(R.id.swipeRefreshLayout);
 
        loading.setRefreshStyle(PullRefreshLayout.STYLE_WATER_DROP);
 
        loading.setOnRefreshListener(new PullRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
//Thread - 1초 후 로딩 종료
                new AllPostList().execute(whatthe.userNickname);
                Handler delayHandler = new Handler();
                delayHandler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        loading.setRefreshing(false);
                    }
                },1000);
            }
        });
 

이런 식으로  onRefresh() 안에 새로 고침 하면 시행되어야 하는 메서드를 집어넣는다. 저는 AllPostList()를 넣어주었는데 저 메서드는 글을 최근 상태로 업데이트시켜서 recyclerview에 넣어준다.

 

 

 

결과 화면

 

 

물방울 모양으로 업데이트가 진행된다.

 

반응형
Comments