>

안녕하세요 onScrolled 를 처리하려고하는 사람들  내 recyclerView 의 이벤트 그것은 NestedScrollView 안에 있습니다. .

지금까지 나는 setOnScrollChangeListener 를 발견했다 , 그러나이 방법은 API 23이며 API 21을 대상으로하고 있습니다 .API 21 에서이 문제를 다시 처리 할 아이디어가 있습니까?


  • 답변 # 1

    View.OnScrollChangeListener와 함께 setOnChangeScrollListener를 사용하고 있다고 생각합니다. NestedScrollView.OnScrollChangeListener를 다음과 같이 사용하십시오 :

    scvProduct.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
            @Override
            public void onScrollChange(NestedScrollView nestedScrollView,int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
                Log.e("ProductFragment","position button " + topPositionButton + " scrollY " + scrollY);
                if(scrollY > oldScrollY){
                    Log.e("ProductFragment","down");
                }
                else{
                    Log.e("ProductFragment","up");
                }
            }
        });
    
    

  • 답변 # 2

    몇 시간 후 아이디어를 얻었습니다 RecyclerView 에서 스크롤을 듣는 것을 멈췄습니다.  그리고 NestedScrollView 를 듣고 시작  와이즈 비즈  이벤트.

    loadOnDemand onScroll 를 만들었습니다.  이 스 니펫 사용

    recyclerView
    
    

    nsv_posts_timeline.setOnScrollChangeListener( NestedScrollView.OnScrollChangeListener { _, scrollX, scrollY, _, oldScrollY -> if(scrollY > oldScrollY){ val totalItens = timelineAdapter.itemCount val currentView = rv_timeline.findChildViewUnder(scrollX.toFloat(), scrollY.toFloat()) val childPosition = rv_timeline.getChildAdapterPosition(currentView) if((totalItens/2) - (stepSize/2) <= childPosition && !isLoading){ isLoading = true //skip , take timelinePresenter.loadMore(totalItens, 5) } } })  콜백이 서버에서 반환 될 때 false로 변경되는 클래스 속성입니다.

  • 답변 # 3

    API 23 아래의 ViewTreeObserver # addOnScrollChangedListener ()를 사용하여 달성 할 수 있습니다.

    isLoading
    
    
    mRecylerview.getViewTreeObserver().addOnScrollChangedListener( new ViewTreeObserver.OnScrollChangedListener() { @Override public void onScrollChanged() { int x = toolbar.getScrollX(); int y = toolbar.getScrollY(); } });

  • 이전 javascript - 전체 화면 변경을 위해 (@host) listener 추가
  • 다음 gtk3 - glade를 사용하여 각 탭에 탭과 여러 개의 gtk 입력 필드가있는 노트북 설정