2016-07-25 2 views
4

Android RecyclerView의 항목을 어떻게 순환시킬 수 있습니까?Android RecyclerView에서 항목을 순환하는 방법은 무엇인가요?

가로로 스크롤하는 RecyclerView를 갖고 싶습니다. 끝이 오른쪽에 도달하면 항목 목록을 다시 시작하여 스크롤을 계속합니다. 왼쪽에 같은. 항목의
목록 : 예를 들어


는 0,1,2,3,4,5,6,7,8,9
시작보기를 보여줍니다 0, 1, 2, 3 , 4,5,6,7
오른쪽으로 5 항목 스크롤 한 후 : 5,6,7,8,9,0,1,2
왼쪽으로 두 항목 스크롤 한 후 : 8,9,0,1 , 2,3,4,5

+0

이 필요 한계에 도달 할 때 제로/최대 값으로 다음/이전 요소 및 업데이트 인덱스를 검색하는 방법 ..... 귀하의 제안에 대한 –

답변

5

또 다른 아이디어는 것, getItemCount()과 도움을 주셔서 감사합니다 할 수있는 마지막

한 가지 더 후 목록의 첫 번째 요소는 LayoutManagerx % yourList.size() == 0scrollToPosition(int x)를 호출하고 somwhere 가까운 Integer.MAX_VALUE/2이 방식의 스크롤은 모든 방향으로 무한 (~ 10 억 개 위치 같을 것이다 인 X 수 출발점에서)

주석에서 지적한대로 목록 크기가 0이면 getItemCount은 0을 반환해야합니다.

return list.size == 0 ? 0 : Integer.MAX_VALUE 
+0

오른쪽으로 스크롤하면 완벽하게 작동한다고 생각하지만, 왼쪽으로 스크롤하면 어떻게 계산합니까? –

+0

나는 0 인덱스에서 시작하는 방법을 설명했기 때문에 왼쪽으로 스크롤 할 수 없으므로 'LayoutManager'에서'scrollToPosition (int x)'를 호출하면됩니다. 여기서'x % yourList.size() == 0'이고 x가 Integer.MAX_VALUE/2에 가까울 때 스크롤은 무한대처럼 보일 것입니다 (시작 지점에서 모든 방향으로 10 억 위치) – lelloman

+0

이것은 정확히 찾고 있었고 완벽하게 작동합니다. 감사! – studersi

-1

나는 이와 같은 생각이있다
처음으로 새 목록 만들기 = 3x 원래 목록

original list: 0,1,2,3,4,5,6,7,8,9 
new list  : 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9 

처음으로 RecyclerView을 표시 할 때 RecyclerView을 오른쪽 항목 10 개 (10은 원래 목록의 크기)로 스크롤해야합니다. 그런 다음 사용자가 왼쪽 또는 오른쪽으로 스크롤하면 10 개 미만의 항목으로 원처럼 작동합니다.

그리고는 오른쪽의 끝에 도달 할 때 또는 왼쪽으로, 당신은 당신이 처음으로 RecyclerView를 표시 상태로 RecyclerView을 스크롤해야합니다. 내가 틀렸다면 나를 바로 잡습니다. 당신은 스크롤이 실제 목록 크기가 0에서 시작 넘어 때 다시
이 방법을 itemsList.get(position % list.size)을하고를 표시해야합니다 당신의 품목을받을하기 위해 다음

어댑터 리턴 Integer.MAX_VALUE
+0

감사를 무시하고 평소와 같이'RecyclerView'을 확장,하지만 난 갈거야 @lelloman이 제안한 것과 함께. 많은 양의 데이터를 저장할 필요가 없습니다. – studersi

관련 문제