gpt4 book ai didi

android - 如何避免滚动时recyclerview晃动?

转载 作者:行者123 更新时间:2023-12-02 16:17:04 35 4
gpt4 key购买 nike

当用户滚动 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);
}
}
});

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

最佳答案

你可以尝试禁用项目动画

mRecyclerViewHome.setItemAnimator(null);

关于android - 如何避免滚动时recyclerview晃动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45228229/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com