在将元素添加到与列表视图关联的数组适配器后,我试图平滑地滚动到列表的最后一个元素。
问题是它只是滚动到随机位置
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);
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)