gpt4 book ai didi

android - 加载光标后将 ListView 滚动到某个位置

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:32:25 25 4
gpt4 key购买 nike

我有一个带有 ListView 的 fragment ,我希望 ListView 在保存和恢复 fragment 时保持其滚动位置。通常这很容易,只需在保存时调用 ListView.getFirstVisiblePosition() 并在恢复时调用 ListView.setSelection()(ListView.setSelectionFromTop() 如果你想更有趣的话)。

但是,我正在使用加载程序,并且在 Activity 开始时我的 ListView 没有完全填充。如果我在 onActivityCreated() 期间设置选择(),列表将没有任何可滚动到的内容,调用将被忽略。

我现在通过在未来某个时候发布卷轴来解决这个问题,但这绝对不是理想的选择。我希望它在数据加载完成时向右滚动。我几乎要在此处执行此操作,但 swapCursor() 不会刷新,它只是安排了将来的失效。

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
mAdapter.swapCursor(data);
if (savedScrollPosition != null) {
Log.d(TAG, "loaded and scrolling to " + savedScrollPosition);
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
list.setSelection(savedScrollPosition);
savedScrollPosition = null;
}
}, 100);
}
}

当 ListView 完成填充数据时,您知道有什么方法可以正确滚动 ListView 吗?

最佳答案

试试这个:

listView.post(new Runnable() {

@Override
public void run() {
listView.setSelection(savedScrollPosition);
savedScrollPosition = null;
}
});

关于android - 加载光标后将 ListView 滚动到某个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7303945/

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