Android 在“回收器”视图中隐藏/显示滚动时查看轻弹

Android 在“回收器”视图中隐藏/显示滚动时查看轻弹,android,scroll,android-recyclerview,show-hide,Android,Scroll,Android Recyclerview,Show Hide,我在底部有线性布局,我想在向上滚动时隐藏该视图,在向下滚动时显示。我能够通过“回收器”视图上的滚动侦听器实现这一点。但有一个问题,当你滚动慢视图是闪烁(显示和隐藏快) 这是我的密码 bottom = (LinearLayout) getActivity().findViewById(R.id.linerabottom); recycleList.addOnScrollListener(new RecyclerView.OnScrollListener() { @Overr

我在底部有线性布局,我想在向上滚动时隐藏该视图,在向下滚动时显示。我能够通过“回收器”视图上的滚动侦听器实现这一点。但有一个问题,当你滚动慢视图是闪烁(显示和隐藏快)

这是我的密码

bottom = (LinearLayout) getActivity().findViewById(R.id.linerabottom);
    recycleList.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            if (dy > 0) {
                bottom.setVisibility(View.GONE);

            } else {
                bottom.setVisibility(View.VISIBLE);
            }

        }
    });
这里是一个视频的问题

你能帮我找出问题所在吗?
谢谢。

这是正常的,因为您的
dy
在某个时间点在
dy>=0
dy<0
之间波动。如果要实现某种快速返回视图,应将其绑定到如下内容:

 recycleList.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            mTotalDy += dy;
            if (dy > 0 && mTotalDy >= bottom.getHeight()) {
                bottom.setVisibility(View.GONE);

            } else if(recyclerView.getScrollState() == RecyclerView.SCROLL_STATE_IDLE && bottom.getVisiblity() == View.GONE) {
                bottom.setVisibility(View.VISIBLE);
                mTotalDy = 0;
            }

        }
    });

非常感谢您的解释,您的代码工作起来很有魅力,我刚刚将RecyclerView.SCROLL\u STATE\u IDLE更改为RecyclerView.SCROLL\u STATE\u Draging,因为视图在向上滚动时没有显示(I thing SCROLL up/down是拖动状态)。