">

당겨서 새로고침, Pull to refresh


당겨서 새로고침을 위해서 SwipeRefreshLayout가 필요하며 이는 Android support library v4에 포함되어 있다. 

먼저 gradle에 support v4 라이브러리를 추가한다. 

  

  dependencies {

     . . .

    complie 'com.android.support:support-v4:25.1.0'

  }



다음은 새로고침을 적용할 뷰를 SwipeRefreshLayout로 감싼다. 아마 대부분 ListView나 RecyclerView가 될 것이다. 


 <android.support.v4.widget.SwipeRefreshLayout

         android:layout_width="match_parent"

         android:layout_height="match_parent"

         android:id="@+id/sr_layout">


        <ListView

            . . . 

        />


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



이제 새로고침에 대한 반응을 할 OnRefreshListener 인터페이스를 등록해야 한다. 등록하기에 앞서 SwipeRefreshLayout 객체를 만들자. 

 

 SwipeRefreshLayout swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.sr_layout);


 swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {

       @Override

       public void onRefresh() {

            // 새로고침 할 작업

            swipeRefreshLayout.setRefreshing(false);

       }

 }

위에서 setRefreshing(false)가 없으면 새로고침 아이콘이 사라지지 않는다. 


현재 구글은 Pull To Refresh UI에 대한 새로운 스타일을 공개했고, 이와 관련해서 Naver D2에서 오픈소스로

공개한 주소를 공유한다. 

https://github.com/nhnopensource/android-pull-to-refresh

+ Recent posts