gpt4 book ai didi

java - 我可以限制 recyclerview 中每个触摸事件的 onScrolled() 方法调用次数吗?

转载 作者:行者123 更新时间:2023-11-29 23:04:39 25 4
gpt4 key购买 nike

如何在 RecyclerView 中限制调用和运行方法 OnScrolled() 的次数?因为里面有很多条件,非常多地执行这段代码,导致应用程序变慢。

条件:

if (dy < 0 && mLinearLayoutManager.findFirstCompletelyVisibleItemPosition() >= 10 && !mStateScrollTop) {
YoYo.with(Techniques.SlideInUp)
.duration(150)
.playOn(iv_go_to_top);
mStateScrollTop = true;

} else if (dy > 0 && mStateScrollTop) {
YoYo.with(Techniques.SlideOutDown)
.duration(150)
.playOn(iv_go_to_top);
mStateScrollTop = false;
}

最佳答案

我会做这样的事情:

onScrolled() {
synchronized(this) {
if(!ready)
return;
else
ready = false;
}

// your current onScroll body
}

然后您将启动一个线程,定期将 ready 变量设置为 true。像这样:

private void launchOnScrollThread() {
new Thread() {
@Override
public void run() {
// endless loop - maybe you would like to put some condition to end the loop
for(;;) {
ready = true;
Thread.sleep(100); // wait here for 100 milliseconds
}
}
}.start();
}

这将确保您当前在 onScroll 中的代码最多每 100 毫秒执行一次,这应该会加快速度。抱歉,这是一种伪代码,希望它对您有意义并且会有所帮助。

关于java - 我可以限制 recyclerview 中每个触摸事件的 onScrolled() 方法调用次数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56684350/

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