gpt4 book ai didi

android - fragment 中的 ListView 无法保存滚动位置

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:26 25 4
gpt4 key购买 nike

ListView 位于 ListFragment 中时,如何保存 ListView 的滚动位置?

最佳答案

最后我解决了这个问题,所以我决定将解决方案发布给其他人:

在我的 ListFragment 子类中,我声明了两个 int 变量来保存滚动位置

public static class MyListFragment extends ListFragment {

......................
......................
private int index = -1;
private int top = 0;
......................

然后覆盖 onPause() 和 onResume() 以保存和恢复 ListView 的滚动位置,如下所示:

@Override
public void onResume() {
super.onResume();
......................
......................
setListAdapter(mAdapter);
if(index!=-1){
this.getListView().setSelectionFromTop(index, top);
}
......................
......................

}

@Override
public void onPause() {
super.onPause();
try{
index = this.getListView().getFirstVisiblePosition();
View v = this.getListView().getChildAt(0);
top = (v == null) ? 0 : v.getTop();
}
catch(Throwable t){
t.printStackTrace();
}
......................
......................
}

就是这样!!我希望这会对某些人有所帮助。 :)

关于android - fragment 中的 ListView 无法保存滚动位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9803569/

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