2017-05-05 5 views
1

나는
숨기려하기 때문에 내 recyclerview에 대한 addonscrollListener을 구현 한 내 FAB 다음과 같이 recyclerview는 스크롤 할 때 :Recyclerview AddOnScrollListener

mRvNearby.addOnScrollListener(new RecyclerView.OnScrollListener() { 
      @Override 
      public void onScrollStateChanged(RecyclerView recyclerView, int newState) { 
       super.onScrollStateChanged(recyclerView, newState); 
      } 

      @Override 
      public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
       super.onScrolled(recyclerView, dx, dy); 
       Log.e("DY",""+dy); 
       if(dy<0){ 
        mFloatingActionMenu.hideMenuButton(true); 
       }else{ 
        mFloatingActionMenu.showMenuButton(true); 
       } 
      } 
     }); 

을하지만 불행하게도,이 청취자는 "DY"변경 내용 만 사용하는 경우 한 번 스크롤 한 다음 계속 스크롤하면
값이 변경되지 않았습니다.
나는 아래로 스크롤 할 때, 값은 최대 스크롤 할 때, 값보다 작 대신 서명보다 0보다 큰

답변

0

사용 크다 0보다 작은
및 될 것으로 기대했다. 당신이 아래로 스크롤하면 값이 0보다 큰 그래서 코드가 될 것입니다 : 당신은 Recyclerview 스크롤하면서 FAB 표시/숨기기 위해 FloatingActionButton.Behavior을 사용할 수 있습니다

mRvNearby.addOnScrollListener(new RecyclerView.OnScrollListener() { 
     @Override 
     public void onScrollStateChanged(RecyclerView recyclerView, int newState) { 
      super.onScrollStateChanged(recyclerView, newState); 
     } 

     @Override 
     public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
      super.onScrolled(recyclerView, dx, dy); 
      Log.e("DY",""+dy); 
      if(dy>0){ 
       mFloatingActionMenu.hideMenuButton(true); 
      }else{ 
       mFloatingActionMenu.showMenuButton(true); 
      } 
     } 
    }); 
+0

내 로그에서 Onscrolled는 한 번만 호출되었습니다. –

+0

즉, 로그가 한 번만 인쇄되고 있습니까? –

+0

예. 그 인쇄는 한 번만 onscrolled. 스크롤하는 동안 DY를 인쇄해야합니다. –

0

.

체크 아웃 Tutorial

+0

감사합니다. 나는 이것을 대신 시험 할 것이다. –

+0

ok .. 결과를 알려주세요. – VishnuSP