12

NestedScrollView 끝에 EndlessRecyclerView이 있습니다. EndlessRecyclerView 의미 : 사용자가 recyclerView의 맨 아래로 스크롤하면 더 많은 데이터가로드됩니다. 이것은 이미 구현되어 있고 다른 곳에서 작업하고 있지만 NestedScrollView 안에는 recyclerView를 넣을 때 OnScrollListener 이벤트가 실행되지 않습니다.RecyclerView NestedScrollView 내부의 ScrollListener

XML 디자인 :

<NestedScrollView> 

    <Other views/> 

    <EndlessRecyclerView/> 

</NestedScrollView > 

코드 :

recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() { 
     @Override 
     public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
      super.onScrolled(recyclerView, dx, dy); 
      // This is never fired! Here is where I implement the logic of EndlessRecyclerView 
     } 
    }); 

가 어떻게 위의 경우에 대한 스크롤 이벤트를받을 수 있나요?

서로 내부에 스크롤 가능한 두 개의보기가있는 것이 좋지 않다는 것을 알고 있습니다. 그러나 스크롤 가능한 뷰가 두 개 없어도 위의 경우를 어떻게 가질 수 있습니까?

는 이미이 링크를 따라했지만 작동하지 않습니다 scroll event for recyclerview inside scrollview android

답변

19

, 당신은 여기

nestedScrollView.setOnScrollChangeListener((NestedScrollView.OnScrollChangeListener) (v, scrollX, scrollY, oldScrollX, oldScrollY) -> { 
      if(v.getChildAt(v.getChildCount() - 1) != null) { 
       if ((scrollY >= (v.getChildAt(v.getChildCount() - 1).getMeasuredHeight() - v.getMeasuredHeight())) && 
         scrollY > oldScrollY) { 
         //code to fetch more data for endless scrolling 
       } 
      } 
     }); 

v.getChildCount() -1을 "NestedScrollView.OnScrollChangeListener"를 사용할 수 있습니다 NestedScrollView 아래 재활용 뷰에 대한 끝없는 스크롤을 달성하기 위해 끝없는 스크롤링을 구현하는 리사이클 러 뷰를 제공해야합니다.

또한 scrollY > oldScrollY은 페이지가 아래로 스크롤되고 있음을 확인합니다.

참조 : NestedScrollView.OnScrollChangeListener

+0

멋진 남자가 내가 보내는 하루 종일 심각 두 라인을 만들어이를 해결한다. 위대한 하나 ...하지만 지금은 어떻게 보이는 항목을 얻을 수있는 모든 서버에 새 레코드를 가져올 수 있습니까? –

+0

@RahulVats 위의 코드에서 if 조건이 충족되면 사용자가 완전히 스크롤하고 마지막 항목을 볼 수 있음을 의미합니다. 100 개의 항목이 있으며 처음에는 20 개의 항목이로드되었다고 가정 해 보겠습니다. 위의 조건이 충족되면 서버에서 다음 데이터 세트 (예 : 21-40)를 다운로드 할 수 있습니다. 어쨌든이 실제 검색어를 보려면 다음 링크를 참조하십시오. https://stackoverflow.com/questions/40726438/android-detect-when-the-last-item-in-a-recyclerview-is-visible?noredirect=1&lq= 1 – Govind

관련 문제