ListView
在添加来自Web服务的新列表后直接转到最后一项。它没有保持其地位。一切都很好,但我的清单带我到最后一项。
通过使用setSelection
和smoothScrollToPositionFromTop
,我实现了这一点,但它显示了滚动动画。我不希望这种情况发生。我到目前为止尝试了下面的代码:
注意:我的列表视图仅包含textview。
listview.setSelection(position);
listview.smoothScrollToPositionFromTop(mylastPosition,0,0);
这个
如果以编程方式添加列表(硬核)而不是从webservice获取列表,则下面的代码可以正常工作。
lv.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int firstVisibleItem, int totalItemCount) {
if(firstVisibleItem+firstVisibleItem>= totalCount)
{
//code for getting new list
loadNewDataFromWS();
}
});
是不是因为我在另一个线程而不是主线程中添加列表?
答案 0 :(得分:1)
我在listview上观看视频时找到了解决方案。
解决方案是将listview的transcriptMode
属性设置为disabled
。
android:transcriptMode = "disabled" - does not scroll
android:transcriptMode = "normal" - scrolls to the bottom if last item is visible
android:transcriptMode = "disabled" - always scrolls to the bottom