2017-05-05 85 views
1

我已经实现addonscrollListener我recyclerview,因为我想
隐藏我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,所以你的代码将是:

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

是的。它的印刷只在滚动一次。它应该在滚动的时候,它应该打印出DY –

0

可以使用FloatingActionButton.Behavior用于显示/隐藏FAB而Recyclerview滚动。

看看这个Tutorial

+0

谢谢。我会试试这个。 –

+0

好的..请尝试让我知道结果。 – VishnuSP