Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何避免滚动时循环视图抖动?_Android_Scroll_Android Recyclerview - Fatal编程技术网

Android 如何避免滚动时循环视图抖动?

Android 如何避免滚动时循环视图抖动?,android,scroll,android-recyclerview,Android,Scroll,Android Recyclerview,当用户滚动recyclerview时,我希望在向上滚动时显示back_to_top按钮,在向上滚动时消失load_more按钮,并在到达列表末尾时显示。OnScrollListener如下所示: mRecyclerViewHome.addOnScrollListener(new OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int d

当用户滚动recyclerview时,我希望在向上滚动时显示back_to_top按钮,在向上滚动时消失load_more按钮,并在到达列表末尾时显示。OnScrollListener如下所示:

mRecyclerViewHome.addOnScrollListener(new OnScrollListener() {
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);

                int visibleItemCount = layoutManager.getChildCount();
                int totalItemCount = layoutManager.getItemCount();
                int pastVisibleItems = layoutManager.findFirstVisibleItemPosition();
                if (pastVisibleItems + visibleItemCount >= totalItemCount) {
                    mButtonLoadMore.setVisibility(View.VISIBLE);
                    Log.i(TAG, "reach bottom detected");
                }

                // TODO: 7/20/2017 remove shaking
                if (dy < 0) { // scrolling up
                    mButtonLoadMore.setVisibility(GONE);
                    mButtonToTop.setVisibility(VISIBLE);
                }

                if (dy > 0) {
                    mButtonToTop.setVisibility(GONE);
                }
            }
        });
mrecyclServiceWhome.addOnScrollListener(新的OnScrollListener(){
@凌驾
已填空的公共空间(RecyclerView RecyclerView、int dx、int dy){
super.onScrolled(recyclerView、dx、dy);
int visibleItemCount=layoutManager.getChildCount();
int totalItemCount=layoutManager.getItemCount();
int-pastVisibleItems=layoutManager.findFirstVisibleItemPosition();
如果(pastVisibleItems+visibleItemCount>=totalItemCount){
mButtonLoadMore.setVisibility(View.VISIBLE);
Log.i(标签“检测到到达底部”);
}
//待办事项:2017年7月20日
如果(dy<0){//向上滚动
mbuttonoladmore.setVisibility(已消失);
mbuttontop.setVisibility(可见);
}
如果(dy>0){
mButtonToTop.setVisibility(消失);
}
}
});

这个代码有效。但问题是,如果在recyclerview滚动且尚未停止时,我中断并触摸屏幕并做另一个滚动手势,则recyclerview的视图很可能在移动时抖动。我想这是因为我在代码中使用了dy参数,所以它会一直跟踪dy的值并导致视图抖动?在检测用户是否向上或向下滚动时,是否有任何方法可以避免这种抖动

您可以尝试禁用项目animator吗

mRecyclerViewHome.setItemAnimator(null);

我试过了,它还在颤抖。它像混乱一样颤抖,不像动画片。你找到答案了吗?