Android 同步ListView滚动位置
我正在尝试同步ViewPager中的ListView滚动位置 我小时候有一个带有片段的ViewPager。每个片段都包含一个ListView。我创建了一个ListViewScrollListener接口,通过它我可以监听每个ListView滚动活动。当用户滚动一个ListView时,ViewPager中的活动片段将侦听scroll事件并在其ListView上调用以下方法: 遗憾的是,片段中ListView元素的滚动位置没有更新。当我在onResume方法中使用相同的setSelectionFromTop方法时,它就像一个符咒,因此在我键入ViewPager和创建片段时,位置设置正确 我还检查了StackOverflow是否存在类似问题,并尝试了以下解决方案,但没有取得积极的结果:Android 同步ListView滚动位置,android,listview,android-viewpager,Android,Listview,Android Viewpager,我正在尝试同步ViewPager中的ListView滚动位置 我小时候有一个带有片段的ViewPager。每个片段都包含一个ListView。我创建了一个ListViewScrollListener接口,通过它我可以监听每个ListView滚动活动。当用户滚动一个ListView时,ViewPager中的活动片段将侦听scroll事件并在其ListView上调用以下方法: 遗憾的是,片段中ListView元素的滚动位置没有更新。当我在onResume方法中使用相同的setSelectionFro
mListView.post(new Runnable() {
@Override
public void run() {
listView.setSelectionFromTop(firstVisibleItem, pixelOffset);
}
});
我检查了setSelectionFromTop是否被正确调用,显然是这样。你知道为什么它不起作用吗
更新1
正如Ne0所暗示的,我还检查了在主ui线程的片段内运行setSelectionFromTop方法,没有任何积极的结果
getActivity().runOnUiThread( new Runnable() {
@Override
public void run() {
listView.setSelectionFromTop(firstVisibleItem, pixelOffset);
}
});
还有其他想法吗?是否必须从UI线程调用setSelectionFromTop?这也许可以解释为什么它在onResume中起作用。只是一个想法。好主意@Ne0。遗憾的是,没有积极的结果。我试过并更新了原来的问题。
getActivity().runOnUiThread( new Runnable() {
@Override
public void run() {
listView.setSelectionFromTop(firstVisibleItem, pixelOffset);
}
});