我有一个 ListView
我正在调用 smoothScrollBy()
。 95% 的情况下,smoothScrollTo()
的行为符合预期。然而,有时它并没有出现在预期的位置!我已经验证我给它的值是一样的。我注意到当出现错误时平滑滚动不是那么平滑,但是我的应用程序正在执行的其他任务没有我可以控制的。
我不太确定后台发生了什么,但可能的罪魁祸首是垃圾收集。
在这种情况下,95% 的准确率还不够好。我将不得不实现某种修正机制,以确保 ListView
在这些情况下位于正确的位置。
除了简单地调用 view.smoothScrollBy(distance, time);
,还有没有更好的方法来使用 smoothScrollBy()
?
最佳答案
有时是因为时间问题。 View 何时添加到您的 ListView 以及您添加的时间
view.smoothScrollBy(distance, time);
ListView 或用户界面仍然不需要刷新。因此,请在具有特定延迟的 View 帖子线程中执行此操作。例如。
view.postDelayed(new Runnable{
view.smoothScrollBy(distance, time);
},1000);
关于Android smoothScrollBy 表现不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7600312/