【问题标题】:Recyclerview AddOnScrollListenerRecyclerview AddOnScrollListener
【发布时间】:2017-05-05 06:08:07
【问题描述】:

我已经为我的 recyclerview 实现了 addonscrollListener,因为我想
当 recyclerview 滚动时隐藏我的FAB 如下:

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。

【问题讨论】:

    标签: android android-recyclerview onscrolllistener


    【解决方案1】:

    使用大于号而不是小于号。当您向下滚动时,该值大于 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);
                }
            }
        });
    

    【讨论】:

    • 在我的日志中,OnScrolled 只调用了一次。
    • 即您的日志只打印一次?
    • 是的。它的印刷只在卷轴上一次。它应该在滚动时,它应该打印 DY
    • 你能把你的整个代码贴在这里,以便我理解问题。
    【解决方案2】:

    您可以在Recyclerview 滚动时使用FloatingActionButton.Behavior 显示/隐藏FAB。

    看看这个Tutorial

    【讨论】:

    • 谢谢。我会试试这个。
    猜你喜欢
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 2016-11-08
    • 2019-07-13
    • 2019-02-10
    相关资源
    最近更新 更多