2017-11-20 3 views
0

내 Recyclerview 데이터로 채워진 하나의 가로 Recyclerview와 두 개의 수직 리사이클 뷰가있는 다중 뷰 유형으로 채워진 응용 프로그램을 개발 중입니다. 그래서 저는 Recyclerview 안에 Recyclerview를 가지고 있습니다. 두 번째 세로 Recyclerview에 대한 스크롤 리스너를 추가하고 추가 할 수는 없지만 모든 스크롤은 주 부모 인 Recyclerview에서 처리하므로 추가 할 수 없습니다. 어댑터 내부에 스크롤러 리스너를 추가하려고 시도했지만 수직 Recycler보기에서는 제대로 작동하지만 수직선에서는 제대로 작동하지 않습니다. 어떻게 작동 시키는가?중첩 된 recyclerview에 대한 스크롤 수신기

+0

즉, 스크롤 내에서 스크롤을 관리하려고합니다. 권리? – Dhruv

+0

@DhruvPatel 예, 목록 내의 목록에 대한 페이지 매김을 구현하려고합니다. – sasuke

+0

안드로이드 라이브러리가 ListView를 축소하지 않고 ScrollView 내에 배치합니다. https://github.com/paolorotolo/ExpandableHeightListView – Dhruv

답변

0

nestedScrollView에서 세로 recyclerview를 사용하는 경우 nestedScrollView의 스크롤 리스너를 구현해야합니다. 그렇지 않으면 recyclerview의 스크롤 수신기가 트리거되지 않습니다. 다음은 기본적으로 구현할 수 있으며, 당신이 nestedScrollView를 사용하는 경우가 아닌 경우 매김 기능

private void implementScrollListener() { 

    //Scroll Listener for nestedScrollView. Note that it is used for pagination when user reaches the bottom. 

    if(nestedScrollView != null){ 

     nestedScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() { 
      @Override 
      public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) { 

       if (scrollY > oldScrollY) { 
        //Scrolling down 
       } 
       if (scrollY < oldScrollY) { 
        //Scrolling up 
       } 

       if (scrollY == 0) { 
        //Reaches to the top 
       } 

       if (scrollY < (v.getChildAt(0).getMeasuredHeight() - v.getMeasuredHeight())) { 
        //Reaches to the bottom so it is time to updateRecyclerView! 
        updateRecyclerView(); 
       } 
      } 
     }); 
    } 

} 

에 대한 더 많은 데이터를로드 할 위치를 잡을 수있는 방법, 당신은 당신이있는 경우에 부드럽게 스크롤 할 myRecyclerview.setNestedScrollingEnabled(false);을 설정할 수 있습니다 전체 활동 또는 단편에 대한 여러 가지 리사이클 뷰.

희망 답변이

해피 코딩. 바키

관련 문제