Android smoothScrollBy表现不佳

时间:2011-09-29 16:18:08

标签: android listview scroll

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

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

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

除了简单地调用smoothScrollBy()之外,还有更好的方式来使用view.smoothScrollBy(distance, time);吗?

2 个答案:

答案 0 :(得分:6)

尝试其中一些:

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

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

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

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

    xml布局代码。

    希望这有帮助。

答案 1 :(得分:5)

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

view.smoothScrollBy(distance, time);

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

view.postDelayed(new Runnable{
    view.smoothScrollBy(distance, time);
},1000);