2017-01-20 8 views
0

私はアプリケーションでCardViewでRecyclerViewを使用していますが、ユーザーがRecyclerViewの最後までスワイプしてからスワイプしたときにさらに読み込むとページング動作をしようとしています。 (スワイプしてリフレッシュする)。私が今持っているのは、ユーザーが自動的にロードするRecyclerViewの最後の項目に到達したときです。ユーザーがプルアップしたときに読み込むように変更するにはどうすればよいですか?RecyclerviewページめくりをスワイプするAndroid

private RecyclerView.OnScrollListener recyclerViewOnScrollListener = new RecyclerView.OnScrollListener() { 
    @Override 
    public void onScrollStateChanged(RecyclerView recyclerView, 
            int newState) { 
     super.onScrollStateChanged(recyclerView, newState); 
    } 

    @Override 
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
     super.onScrolled(recyclerView, dx, dy); 
     if(dy > 0) //check for scroll down 
     { 
      visibleItemCount = gmLayoutManager.getChildCount(); 
      totalItemCount = gmLayoutManager.getItemCount(); 
      pastVisiblesItems = gmLayoutManager.findFirstVisibleItemPosition(); 
      int loadedItems = pastVisiblesItems + visibleItemCount; 
      //System.out.println(visibleItemCount + "/n" +totalItemCount + "/n"+pastVisiblesItems + "/n" + loadedItems); 
      if (true) 
      { 
       if ((visibleItemCount + pastVisiblesItems) >= totalItemCount) 
       { 
        loading = false; 
        Log.v("...", "Last Item !"); 
        //Do pagination.. i.e. fetch new data 
        String api = "stores?offset=10"; 
        getData(api); //Load more data 
       } 
      } 
     } 
    } 
}; 

答えて

0

親ビューでonTouchListenerを設定する必要があるとします。 RecyclerViewに変数をセットして、それが底にあるかどうかを示します。

if (recyclerView.isAtBottom() && motionEvent.getAction() == MotionEvent.ACTION_MOVE){ 
//calculate some offset here 
    if (offset>MY_OFFSET){ 
     String api = "stores?offset=10"; 
     getData(api); //Load more data 
    } 
}  

はまた、あなたはそれが、この時点でのポインタの位置を覚えておくためにあなたのタッチリスナーのためのボタンに到達したときRecyclerViewからいくつかのイベントを発射する必要がある場合がありますので、リスナーに、あなたは基本的にこのような何かを行います。

関連する問題