Android 同步ListView滚动位置

Android 同步ListView滚动位置,android,listview,android-viewpager,Android,Listview,Android Viewpager,我正在尝试同步ViewPager中的ListView滚动位置 我小时候有一个带有片段的ViewPager。每个片段都包含一个ListView。我创建了一个ListViewScrollListener接口,通过它我可以监听每个ListView滚动活动。当用户滚动一个ListView时,ViewPager中的活动片段将侦听scroll事件并在其ListView上调用以下方法: 遗憾的是,片段中ListView元素的滚动位置没有更新。当我在onResume方法中使用相同的setSelectionFro

我正在尝试同步ViewPager中的ListView滚动位置

我小时候有一个带有片段的ViewPager。每个片段都包含一个ListView。我创建了一个ListViewScrollListener接口,通过它我可以监听每个ListView滚动活动。当用户滚动一个ListView时,ViewPager中的活动片段将侦听scroll事件并在其ListView上调用以下方法:

遗憾的是,片段中ListView元素的滚动位置没有更新。当我在onResume方法中使用相同的setSelectionFromTop方法时,它就像一个符咒,因此在我键入ViewPager和创建片段时,位置设置正确

我还检查了StackOverflow是否存在类似问题,并尝试了以下解决方案,但没有取得积极的结果:

 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);
            }
        });