android:smoothScrollToPosition()无法正常工作

我试图平滑地滚动到列表的最后一个元素添加一个元素到与列表视图相关联的arrayadapter。
问题是它只是滚动到随机位置

arrayadapter.add(item);
//DOES NOT WORK CORRECTLY:
listview.smoothScrollToPosition(arrayadapter.getCount()-1);

//WORKS JUST FINE:
listview.setSelection(arrayadapter.getCount()-1);
你可能想告诉ListView发布滚动时,UI线程可以处理它(这就是为什么你的滚动不正确)。 SmoothScroll需要做很多工作,而不是去一个忽略速度/时间等的位置。 (“动画”所需)。

因此,你应该做类似:

getListView().post(new Runnable() {
        @Override
        public void run() {
            getListView().smoothScrollToPosition(pos);
        }
    });
相关文章
相关标签/搜索