gpt4 book ai didi

android - 更新 ListView 时保持当前滚动位置

转载 作者:行者123 更新时间:2023-12-02 12:07:51 25 4
gpt4 key购买 nike

我想获取新数据并使用下面的代码将其更新到我的 listView 中,我想要的是当我滚动到 listView 底部时,它会自动更新并将新数据添加到列表中。

例如:像facebook一样,只在底部添加新数据,不滚动并保持当前位置

但我最终遇到了一些问题。哪些是

1) ListView 已更新,但它滚动回顶部。

listview .setOnScrollListener(new OnScrollListener() {
private int currentVisibleItemCount;
private int currentScrollState;
private int currentFirstVisibleItem;
private int totalItem;

@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
this.currentScrollState = scrollState;
this.isScrollCompleted();
}

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {

this.currentFirstVisibleItem = firstVisibleItem;
this.currentVisibleItemCount = visibleItemCount;
this.totalItem = totalItemCount;

}
private void isScrollCompleted() {

if (totalItem - currentFirstVisibleItem == currentVisibleItemCount
&& this.currentScrollState == SCROLL_STATE_IDLE) {

Log.d("this is", "the end");
page = page + 1;
call_function(page);

}

}
});

....
....
public void call_function(int page_number) {
...
...
ListAdapter adapter = new SimpleAdapter(
getActivity(), user_List,
R.layout.user, new String[] {"user","date"},
new int[] {R.id.usr_name ,R.id.register_time});

// updating listview

setListAdapter(adapter);
}

有什么解决办法来处理这个异常吗?

提前致谢。

最佳答案

当您更新适配器的数据时,您可以保存列表当前选定的项目索引,并在呈现数据时将其设置回来。像这样的事情:

int index = mList.getFirstVisiblePosition();
// do your update stuff
mList.smoothScrollToPosition(index);

关于android - 更新 ListView 时保持当前滚动位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29938064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com