@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int lastPosition = ((LinearLayoutManager)recyclerView.getLayoutManager()).findLastCompletelyVisibleItemPosition();
int totalCount = recyclerView.getAdapter().getItemCount();
// 스크롤을 맨 끝까지 한것!
if(lastPosition + 1 == totalCount) {
//리스트 마지막(바닥) 도착!!!!! 다음 페이지 데이터 로드!!
//데이터 로드후의 사용할 코드는 밑의 부분에 작성해준다.
}
}
})
예시 코드
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int lastPosition = ((LinearLayoutManager)recyclerView.getLayoutManager()).findLastCompletelyVisibleItemPosition();
int totalCount = recyclerView.getAdapter().getItemCount();
// 스크롤을 맨 끝까지 한것!
if(lastPosition + 1 == totalCount){
// if (pageToken == null)
// {
// return;
// }
//
// // 1. 프로그레스바를 돌린다.
// progressBar.setVisibility(View.VISIBLE);
//
// // 2. URL을 조합한다.
// // ?part=snippet&key=[자신의 API KEY]&q=축구&maxResults=20
// String url = Config.BASE_URL + "?part=snippet&key="+
// Config.GOOGLE_API_KEY + "&q="+keyword+"&maxResults=20&pageToken="+pageToken;
//
// RequestQueue queue = Volley.newRequestQueue(MainActivity.this);
// JsonObjectRequest request = new JsonObjectRequest(
// Request.Method.GET,
// url,
// null,
// new Response.Listener<JSONObject>()
// {
// @Override
// public void onResponse(JSONObject response)
// {
// // 데이터를 받아오면, 프로그레스바를 안보이게 한다.
// progressBar.setVisibility(View.INVISIBLE);
//
// try {
// if (response.has("nextPageToken")){
// pageToken = response.getString("nextPageToken");
// }
// else
// {
// pageToken = null;
// }
//
// JSONArray dataList = response.getJSONArray("items");
//
// for(int i = 0; i < dataList.length(); i++){
// String title = dataList.getJSONObject(i)
// .getJSONObject("snippet").getString("title");
// String description = dataList.getJSONObject(i)
// .getJSONObject("snippet").getString("description");
//
// String imgUrl = dataList.getJSONObject(i)
// .getJSONObject("snippet").getJSONObject("thumbnails")
// .getJSONObject("medium").getString("url");
//
// String videoId = dataList.getJSONObject(i)
// .getJSONObject("id").getString("videoId");
//
// Video video = new Video(title, description, imgUrl, videoId);
// videoList.add(video);
// }
//
// }
// catch (JSONException e)
// {
// e.printStackTrace();
// }
//
// adapter.notifyDataSetChanged();
//
// }
// },
// new Response.ErrorListener()
// {
// @Override
// public void onErrorResponse(VolleyError error)
// {
// // 데이터를 받아오면, 프로그레스바를 안보이게 한다.
// progressBar.setVisibility(View.INVISIBLE);
//
// }
// }
// );
// queue.add(request);
//
//
//
// }
//
// }
// });
| Android - Retrofit2 라이브러리 사용을 위한 설정 방법 (0) | 2022.07.21 |
|---|---|
| Android - 카메라 / 앨범 사용하는 방법 (0) | 2022.07.21 |
| Android - 이미지 처리를 위한 Glide 라이브러리 사용방법 (0) | 2022.07.20 |
| Android - Floating Action Button사용 방법 (0) | 2022.07.19 |
| Android - ActionBar menu 사용하는 방법 (0) | 2022.07.19 |