RecyclerView에서 ViewPager의 setOffscreenPageLimit()함수처럼 아이템들을 메모리에 계속 가지고 있을수 있는 방법이 없을까요?

조회수 1811회

증권용 앱을 만드는 중인데 RecyclerView의 item들을 candle(봉)로 잡고 line graph를 그리는 중입니다.

한가지 문제가 있다면 이 그래프를 스크롤 하면 RecyclerView의 item들이 지워지면서 line graph를 이어갈 값들이 사라지는데요 .

동영상파일이 업로드가 안되네요..

라인그래프가 이어지면서 스크롤 되다가 아이템이사라지는 구간에서( | ) 아이템의 x좌표를 구할수가 없어서 사라집니다.

RecyclerView에서 혹시 ViewPager의 setOffscreenPageLimit(int)함수처럼 강제로 아이템을 로드한다던지 그런 메소드가 있나요?

아니면 다른 해결방법이 있을까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • RecyclerView는 내부적으로 View를 캐시하도록 되어 있습니다. 캐시 사이즈는 setItemViewCacheSize() 함수를 통해서 조절할 수 있습니다. (디폴트 캐시 사이즈는 2) 캐시 사이즈를 조절하면 View가 리사이클 되는 것을 제어할 수 있습니다. 다만 저도 이걸 직접 제어해 본적은 없어서 좋은 방법인지는 확신이 없습니다.

    RecyclerView 내부 동작을 잘 요약해 둔 글인데 참고하면 도움이 될 것 같습니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 감사합니다. View가 화면을 넘어가면서 리사이클 되는건 적용이 안되네요 알 수 없는 사용자 2016.7.21 13:08

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)