是否有 RecyclerView 的 OnScrollListener 在滚动时连续调用,而不仅仅是在状态更改或滚动开始时调用?
Posted
技术标签:
【中文标题】是否有 RecyclerView 的 OnScrollListener 在滚动时连续调用,而不仅仅是在状态更改或滚动开始时调用?【英文标题】:Is there a OnScrollListener for RecyclerView which is called continuously while Scrolling and not only when the State is changed or scrolling begins? 【发布时间】:2020-06-25 08:27:46 【问题描述】:我上面有一个 RecyclerView 和一个 Textview,我想根据 Recyclerview 中的第一个可见元素更新 Textview。但是 Recyclerview 只有两个 OnScroll-Listeners onScrolled
和 onScrollStateChanged
。两者仅在达到特定状态(转换)时才被调用。这就是为什么我的 TextView 只在我开始/结束滚动时更新,但我想更新我的 Textview,即使在滚动稳定之间。
在 Swift 中,这种行为是通过“scrollViewDidScroll()”实现的。
有没有办法在 android 中实现这一点?
【问题讨论】:
how-to-check-if-first-item-of-recyclerview-is-visible-on-the-screen 可能重复 @PraveenSP 不,我的问题不是找到第一个可见元素,而是在滚动正在进行时不断收到通知。 如果我没记错 onScrolled 只要有滚动事件就连续提供信息... 是的,你是对的。我之前一定犯了另一个错误,这使它不起作用。谢谢。 没问题...快乐编码.. 【参考方案1】: mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener()
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy)
super.onScrolled(recyclerView, dx, dy);
if(dy > 0) Log.d("db","scrolling up");
else if(dy < 0) Log.d("db","scrolling dowm");
);
【讨论】:
以上是关于是否有 RecyclerView 的 OnScrollListener 在滚动时连续调用,而不仅仅是在状态更改或滚动开始时调用?的主要内容,如果未能解决你的问题,请参考以下文章
是否有可能当recyclerview加载项只加载一次而不重新加载滚动?
是否有 RecyclerView 的 OnScrollListener 在滚动时连续调用,而不仅仅是在状态更改或滚动开始时调用?
是否允许在 RecyclerView 上投放多个 AdMob 广告?另类广告网络?