총 게시물 934건, 최근 0 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[안드로이드]

RecyclerView 자동 무한 스크롤

글쓴이 : 에찌 날짜 : 2017-09-07 (목) 10:07 조회 : 968
글주소 : http://www.androidside.com/B49_best/12791
RecyclerView안에 CardView로 10개정도의 데이터가 있습니다.

처음 그 화면에 가면 1~2초 간격으로 아이템이 자동 스크롤 되길 바라며
끝으로 갔을 경우 처음으로 돌아가서 계속 무한으로 스크롤 되길 바라고있습니다.

(스크롤 방향은 왼 -> 오른쪽 입니다 )

구글링을 하니 스크롤 포지션을 스무스하게 바꾸는 방법등이 있던데 
 ViewFilpper 처럼 자동으로 계속 스크롤하는 기능은 없더군요.

그래서 핸들러를 이용해서 RecyclerView의 position 을 확인후 다음 데이터로 스크롤 시키도록 하고 
해당 핸들러를 2초간격으로 호출 하는 형식을 취할까합니다.

(물론 해당 화면이 onstop 될경우 핸들러 제거를 하구여)

여기서 질문이 있습니다.

1. 제가 말한 방식으로 했을 경우 앱동작에 문제가 생길까요..?

2. 다른 방법으로 자동 무한 스크롤을 할 수 있는 방법이 있나요..?



에찌 님의 개발 Q&A FAQ 최신글 [더보기]


질문답변 게시판에서 궁금한 사항을 해결하셨다면, 애써 답변해주신 분께 잘 되었다고 따뜻한 댓글 한마디 남겨주세요.
그리고 답변해주신 분의 글을 '추천' 해주세요.
추천받으신 분에게 1포인트가, 추천하신 분에게도 1포인트가 적립됩니다. ^^

안사드 2017-09-07 (목) 10:11
1. 위에서 아래로 이동하는것은 이상해 보일꺼 같고 한페이지에 하나씩 있지 않고 여러개가 있다면 이상해 보일꺼고, 어느초 이상으로 움직여야 할꺼 같네요. 내용 보고 누를 시간은 줘야지요.
2. 해당 포지션으로 계속 움직이는 거 밖에 전 모르겠네요.ㅋㅋ
댓글주소 추천 0 반대 0
     
     
에찌 2017-09-07 (목) 10:18
[@안사드] 아 내용변경했습니다. ㅎㅎ 스크롤 방향은 왼-> 오른쪽 방향입니다.

그럼 안사드님도 제가 생각한 방식과 똑같은 방식이신거져? 시간만 좀 더 늘리구여 ㅎ

따로 문제될 건 없..겠지요? ㅎㅎ
댓글주소 추천 0 반대 0
OSKiller 2017-09-07 (목) 10:37
리스트를 무한 스크롤 아겟다는것 자체가 잘못된 발상 아닌가요?
뷰페이저 등을 이용해야 할듯 한데
정확한 요구사항을 잘 모르겟네요

0~10스크롤 이후 다시 제일 처음인 0으로 올라간다음 순차 스크롤을 하겟다라는것이라면
그냥 루프 돌리면될겁니다

그리고 뭘하든 앱에 문제가 안생기도록 개발 해야하는것 아닌가요? ㄷㄷㄷ
댓글주소 추천 0 반대 0
     
     
에찌 2017-09-07 (목) 10:47
[@OSKiller] 그렇죠 문제가 안생기도록 개발은 해야져
그래서 해당 화면에 계속 있을경우 핸들러를 약 5초간격으로 계속 호출해서 스크롤 하겠다는 것에대해 제가 모르는 또 다른 문제점이 있나해서 여쭤본겁니다. ^^;

그리고 지금 현재 제 화면에 리스트의 갯수가 서버에서 받아오고있는데.. 수시로 변경도 되구여.. 그러면 뷰페이저 보단 리사이클 뷰가 맞지않나요..;;? ㅎ..
댓글주소 추천 0 반대 0
OSKiller 2017-09-07 (목) 11:07
페이저뷰라고 해서 수시로 바뀌는걸 지원못하진 않을겁니다
근데 사실 이런문제는 직접 해봐야 확실히 알수 있는거라 둘다 만들어 보심 될텐데요 ㅎㅎ
두개다 해보시고 결과 알려 주세요~~
댓글주소 추천 0 반대 0
cong 2017-09-07 (목) 11:24
제가 제대로 이해했는지 모르겠네요.

RecyclerView보다는 ViewPager로 구현하는게 맞다고 생각합니다.
view setcurrentItem 을 핸들러로 시간에 따른 값을 주고 
터치/onStop/onPause일때 핸들러를 멈추는방법이 어떨까여 
저는 onPageScrollStateChange에서 핸들러를 관리하였습니다.




댓글주소 추천 0 반대 0
adbb 2017-09-07 (목) 13:49
광고 배너를 뷰페이저로 만든 적이 있습니다.
(5초 단위 다음 페이지로(왼쪽->오른쪽) 넘어가며, 끝 페이지에 도달하고 5초뒤 다시 첫 페이지로 넘어오는 방식입니다. 무한 반복)

이 방식에서 치명적인 문제는 핸들러로 무한 반복 돌리니까 정지 시점 잘못 잡으면 배터리 광탈이 날 수 있습니다.
(예를 들어 정상 종료 안하고 홈키를 누른다던지, 전화가 와서 화면이 떨어지는 상황 등이에요.)

언제 정지하고 해제할 건지 처리만 완벽하게 하면 크게 문제 되지 않습니다.

리사이클뷰는 자유도가 비교적 있는 뷰라서 자동으로 해주는 건 찾기 어렵지 않을까 싶습니다.
댓글주소 추천 0 반대 0
에찌 2017-09-07 (목) 14:02
답변을 달아주신 모든 분들께 감사드립니다.

ViewPager 와 RecyclerView 둘 중에서 무엇을 사용할 지 무척이나 고민이 되더군요.

우선 아직 여러가지 테스트를 더 진행해야겠지만 현재 결과부터 말씀드리면 자동 스크롤 기능을 구현하였으며,

사용 한 것은 LinearLayoutManager 의 findLastCompleteVisiblerItemPosition 과 findLastVisibleItemPosition 을 이용해서 position을 찾고 Timer 와 Task 를 이용하여 스크롤 컨트롤을 하였습니다.

ViewPager 또한 움직이는 부분은 똑같이 되었는데 한 페이지에 여러개의 리스트를 보여주는 측면에서 RecyclerView 를 선택하게되었습니다. 차후 페이지단위로 움직여야 할 경우 말씀하신 ViewPager를 사용하여 구현해보도록하겠습니다.

그리고 제가 참고했던 링크들을 공유합니다.
ViewPager Auto Scroll : https://www.youtube.com/watch?v=C1yrpsmJApU
RecyclerView Auto Scroll : https://www.youtube.com/watch?v=hnvBKpyuShg

댓글주소 추천 0 반대 0
     
     
에찌 2017-09-07 (목) 14:04
[@에찌] 아직 완성한 건 아닙니다. 현재 진행상황 보고 ..? 입니다 ㅋㅋ..
댓글주소 추천 0 반대 0
뉴키 2017-09-07 (목) 14:38
댓글주소 추천 0 반대 0
이전글  다음글  목록 글쓰기

 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기