gpt4 book ai didi

android - 返回 ListView 时保持/保存/恢复滚动位置

转载 作者:行者123 更新时间:2023-11-30 04:28:08 25 4
gpt4 key购买 nike

我有一个很长的 ListView ,用户可以在返回到上一个屏幕之前滚动它。当用户再次打开此 ListView 时,我希望列表滚动到与之前相同的位置。关于如何实现这一目标的任何想法?

最佳答案

试试这个:

// save index and top position
int index = mList.getFirstVisiblePosition();
View v = mList.getChildAt(0);
int top = (v == null) ? 0 : (v.getTop() - mList.getPaddingTop());

// ...

// restore index and position
mList.setSelectionFromTop(index, top);

解释:

ListView.getFirstVisiblePosition() 返回顶部可见列表项。但是这个项目可能会部分滚动到 View 之外,如果你想恢复列表的确切滚动位置你需要得到这个偏移量。所以 ListView.getChildAt(0) 返回顶部列表项的 View,然后是 View.getTop() - mList.getPaddingTop()返回其相对于 ListView 顶部的偏移量。然后,为了恢复 ListView 的滚动位置,我们调用 ListView.setSelectionFromTop() 并使用我们想要的项目的索引和一个偏移量来定位其顶部边缘与ListView 的顶部。

关于android - 返回 ListView 时保持/保存/恢复滚动位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8149301/

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