Android smoothScrollBy表现不佳

sty*_*972 49 android listview scroll

我有一个ListView我要求smoothScrollBy()的.95%的时间,smoothScrollTo()表现如预期.然而,有时它不会在预定的位置结束!我已经证实我给它的价值相同.我注意到,当出现错误时,平滑滚动不是那么顺利,但是我的应用程序没有其他任务可以控制.

我不太确定后台发生了什么,但可能的罪魁祸首是垃圾收集.

在这种情况下,95%的准确度不够好.我将不得不实施某种纠正机制,以确保ListView在这些情况下正确的位置上的土地.

smoothScrollBy()除了简单的呼叫之外,还有更好的方法view.smoothScrollBy(distance, time);吗?

Aru*_*run 6

有时候会因为时间问题.将视图添加到列表视图中并将时间添加到列表视图中

view.smoothScrollBy(distance, time);
Run Code Online (Sandbox Code Playgroud)

listview或ui仍然不需要刷新.所以在具有特定延迟的视图帖子中执行此操作.例如.

view.postDelayed(new Runnable{
    view.smoothScrollBy(distance, time);
},1000);
Run Code Online (Sandbox Code Playgroud)

  • 这将根据手机的不同而变化.总的来说,这个答案是黑客的,不会在生产环境中起作用 (5认同)

mip*_*ble 6

尝试其中一些:

Listview有自己的滚动机制.它在添加内容时滚动.

  1. 将listview height(android:layout_height)分配给match_parent或fill_parent.

  2. 如果您在工作线程中分配适配器.不要在线程中执行任何UI操作.

如果这些都没有解决问题.请将您将适配器分配到列表视图的代码(如果有).或相关代码.

还有xml布局代码.

希望这可以帮助.