코딩스토리

[Android/안드로이드] 페이징 버튼 처리하기/Paging library 본문

Android/유용한 기술

[Android/안드로이드] 페이징 버튼 처리하기/Paging library

라크라꾸 2020. 3. 3. 21:49

앱을 만들다 보면 데이터를 다량으로 불러오는 경우가 있습니다.

페이스북이나 인스타에서도 다량의 데이터를 가져오지만, 그 데이터를 한번에 가져오지 않습니다.

한번에 가져오게 될 경우 로딩하는데 시간이 오래걸리기 때문에 수 차례에 걸쳐서 조금씩 데이터를 불러오는 방법을 사용하고 있습니다.

보통 앱에서는 스크롤 감지를 통해 페이징처리를 하지만, 이번시간에는 웹에서 자주 사용하는 버튼형식을 통한 페이징버튼을 알려주고자 합니다.

 

Sample

위그림처럼 버튼을 통해 페이징 처리를 할 수 있습니다.

 

 

다음 이미지처럼 양쪽에 이미지뷰를 통해 원하는대로 꾸밀 수 있습니다.

 

 

사용 라이브러리

https://github.com/lakue119/LakuePagingButton

 

lakue119/LakuePagingButton

Contribute to lakue119/LakuePagingButton development by creating an account on GitHub.

github.com

 

사용법

build.gradle(Project: Appname)

 
    allprojects {
        repositories {
        // ...
        maven { url 'https://jitpack.io' }
        }
    }
  

 

build.gradle(Module: app)

    
    dependencies {
        //Add LakuePagingButton Library
        implementation 'com.github.lakue119:LakuePagingButton:1.0.0'
    }
    

 

레이아웃 아이템 추가

      
      <com.lakue.pagingbutton.LakuePagingButton
            android:id="@+id/lpb_buttonlist"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
            

 

소스코드 작성

    //한 번에 표시되는 버튼 수 (기본값 : 5)
    lpb_buttonlist.setPageItemCount(4);
       
    //총 페이지 버튼 수와 현재 페이지 설정
    lpb_buttonlist.addBottomPageButton(max_page,1);

    //페이지 리스너를 클릭했을 때의 이벤트
    lpb_buttonlist.setOnPageSelectListener(new OnPageSelectListener() {
        //PrevButton Click
        @Override
        public void onPageBefore(int now_page) {
            //prev 버튼을 클릭하면 버튼이 재설정되고 버튼이 그려집니다.
            lpb_buttonlist.addBottomPageButton(max_page,now_page);
            Toast.makeText(MainActivity.this, ""+now_page, Toast.LENGTH_SHORT).show();
            //해당 페이지에 대한 소스 코드 작성
            //...
        }

        @Override
        public void onPageCenter(int now_page) {
            Toast.makeText(MainActivity.this, ""+now_page, Toast.LENGTH_SHORT).show();
            //Write source code for there page
            //...
        }

        //NextButton Click
        @Override
        public void onPageNext(int now_page) {
            //next 버튼을 클릭하면 버튼이 재설정되고 버튼이 그려집니다.
            lpb_buttonlist.addBottomPageButton(max_page,now_page);
            Toast.makeText(MainActivity.this, ""+now_page, Toast.LENGTH_SHORT).show();
            //해당 페이지에 대한 소스 코드 작성
            //...
        }
    });

 

LakuePagingButton 라이브러리를 사용하시면 버튼 클릭한 페이지를 받아와 보여주기만 하면 간단하게 페이징 처리를 할 수 있습니다.

Comments