2017-11-28 2 views
0

Ich habe zwei RecyclerView. Einer von ihnen nannte "recyclerView". Dies ist der Recycler, den der Benutzer berührt. Wenn ein Benutzer nach unten/oben scrollt, folgt ein anderer Recycler diesem Namen "followerRecView".RecyclerView Sync Scroll Fling Fehler

Erklärung

private RecyclerView followerRecView; 
private RecyclerView recyclerView; 
... 
followerRecView.setHasFixedSize(true); 
followerRecView.setItemAnimator(null); 
recyclerView.setHasFixedSize(true); 
recyclerView.setItemAnimator(null); 

Die Hörer:

followerRecView.addOnScrollListener(new RecyclerView.OnScrollListener() { 
     @Override 
     public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
      super.onScrolled(recyclerView, dx, dy); 
      followPositionY -= dy; 
      Log.d("TODO","FollowPosition "+ followPositionY); 
     } 
});  
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { 
     @Override 
     public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { 
      super.onScrolled(recyclerView, dx, dy);  
      recycPositionY -= dy;  
      Log.d("TODO","RecycPosition "+ followPositionY); 
      followerRecView.scrollBy(0, dy); 
     } 
}); 

Log:

-28 12:06:41.896 15999-15999/com.example.test D/log: log RecycPosition -6 
11-28 12:06:41.896 15999-15999/com.example.test D/log: log FollowPosition -6 
11-28 12:06:41.956 15999-15999/com.example.test D/log: log RecycPosition -17 
11-28 12:06:41.956 15999-15999/com.example.test D/log: log FollowPosition -17 
11-28 12:06:42.006 15999-15999/com.example.test D/log: log RecycPosition -26 
11-28 12:06:42.016 15999-15999/com.example.test D/log: log FollowPosition -26 
11-28 12:06:42.046 15999-15999/com.example.test D/log: log RecycPosition -33 
11-28 12:06:42.046 15999-15999/com.example.test D/log: log FollowPosition -33 
11-28 12:06:42.086 15999-15999/com.example.test D/log: log RecycPosition -36 
11-28 12:06:42.086 15999-15999/com.example.test D/log: log FollowPosition -36 
11-28 12:06:42.186 15999-15999/com.example.test D/log: log RecycPosition -48 
11-28 12:06:42.186 15999-15999/com.example.test D/log: log FollowPosition -48 
11-28 12:06:42.226 15999-15999/com.example.test D/log: log RecycPosition -53 
11-28 12:06:42.226 15999-15999/com.example.test D/log: log FollowPosition -53 
11-28 12:06:42.266 15999-15999/com.example.test D/log: log RecycPosition -54 
11-28 12:06:42.266 15999-15999/com.example.test D/log: log FollowPosition -54 
11-28 12:06:42.346 15999-15999/com.example.test D/log: log RecycPosition -59 
11-28 12:06:42.346 15999-15999/com.example.test D/log: log FollowPosition -59 
11-28 12:06:42.376 15999-15999/com.example.test D/log: log RecycPosition -60 
11-28 12:06:42.376 15999-15999/com.example.test D/log: log FollowPosition -60 
11-28 12:06:42.406 15999-15999/com.example.test D/log: log RecycPosition -61 
11-28 12:06:42.406 15999-15999/com.example.test D/log: log FollowPosition -61 
11-28 12:06:42.446 15999-15999/com.example.test D/log: log RecycPosition -63 
11-28 12:06:42.446 15999-15999/com.example.test D/log: log FollowPosition -63 
11-28 12:06:42.476 15999-15999/com.example.test D/log: log RecycPosition -64 
11-28 12:06:42.476 15999-15999/com.example.test D/log: log FollowPosition -64 
11-28 12:06:42.506 15999-15999/com.example.test D/log: log RecycPosition -65 
11-28 12:06:42.506 15999-15999/com.example.test D/log: log FollowPosition -65 
11-28 12:06:44.546 15999-15999/com.example.test D/log: log RecycPosition -82 
11-28 12:06:44.546 15999-15999/com.example.test D/log: log FollowPosition -82 
11-28 12:06:44.576 15999-15999/com.example.test D/log: log RecycPosition -183 
11-28 12:06:44.586 15999-15999/com.example.test D/log: log FollowPosition -183 
11-28 12:06:44.586 15999-15999/com.example.test D/log: log RecycPosition -186 
11-28 12:06:44.586 15999-15999/com.example.test D/log: log FollowPosition -186 
11-28 12:06:44.626 15999-15999/com.example.test D/log: log RecycPosition -303 
11-28 12:06:44.626 15999-15999/com.example.test D/log: log FollowPosition -289 
11-28 12:06:44.656 15999-15999/com.example.test D/log: log RecycPosition -411 
11-28 12:06:44.686 15999-15999/com.example.test D/log: log RecycPosition -289 
11-28 12:06:44.686 15999-15999/com.example.test D/log: log FollowPosition -167 
11-28 12:06:44.736 15999-15999/com.example.test D/log: log RecycPosition -289 
11-28 12:06:44.766 15999-15999/com.example.test D/log: log RecycPosition -289 
11-28 12:06:44.796 15999-15999/com.example.test D/log: log RecycPosition -289 
11-28 12:06:44.836 15999-15999/com.example.test D/log: log RecycPosition -289 
11-28 12:06:44.866 15999-15999/com.example.test D/log: log RecycPosition -289 
11-28 12:06:44.906 15999-15999/com.example.test D/log: log RecycPosition -289 
11-28 12:06:44.936 15999-15999/com.example.test D/log: log RecycPosition -289 

Der Fehler ist hier passiert:

11-28 12:06:44.586 15999-15999/com.example.test D/log: log RecycPosition -186 
11-28 12:06:44.586 15999-15999/com.example.test D/log: log FollowPosition -186 
11-28 12:06:44.626 15999-15999/com.example.test D/log: log RecycPosition -303 
11-28 12:06:44.626 15999-15999/com.example.test D/log: log FollowPosition -289 
11-28 12:06:44.656 15999-15999/com.example.test D/log: log RecycPosition -411 
11-28 12:06:44.686 15999-15999/com.example.test D/log: log RecycPosition -289 
11-28 12:06:44.686 15999-15999/com.example.test D/log: log FollowPosition -167 
11-28 12:06:44.736 15999-15999/com.example.test D/log: log RecycPosition -289 

enter image description here Es passiert, wenn ich die "recyclerView" schleudern Wer hat eine Idee? Danke

Antwort

0

Ich fand diese Lösung.

followerRecView.addOnScrollListener(new RecyclerView.OnScrollListener() { 
      @Override 
      public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
       super.onScrolled(recyclerView, dx, dy); 
       followPositionY -= dy; 
       Log.d("TODO","FollowPosition "+ followPositionY); 
      } 
    });  


recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { 
     @Override 
     public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { 
      super.onScrolled(recyclerView, dx, dy);  
      recycPositionY -= dy;  
      Log.d("TODO","RecycPosition "+ followPositionY); 
      followerRecView.scrollBy(0, dy); 

      int differenceY = recycPositionY - followPositionY; 
      if(differenceY != 0){ 
       followerRecView.scrollBy(0, -differenceY); 
      } 
     } 
});