同步ListView滚动位置

时间:2014-04-16 14:31:18

标签: android listview android-viewpager

我正在尝试在ListViews中同步ViewPager个滚动位置。

作为孩子,我有ViewPager Fragments。每个片段都包含ListView。我创建了一个ListViewScrollListener接口,用它来监听每个ListView滚动活动。当用户滚动一个ListView时,ViewPager中的活动片段会听取滚动事件并在ListView上调用以下方法:

 listView.setSelectionFromTop(firstVisibleItem, pixelOffset);

可悲的是,ListViewFragments元素的滚动位置不会更新。当我在setSelectionFromTop方法中使用相同的onResume()方法时,它就像魅力一样,因此当我转换ViewPagerFragments时,位置设置正确创建

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

 mListView.post(new Runnable() {
            @Override
            public void run() {
                listView.setSelectionFromTop(firstVisibleItem, pixelOffset);
            }
 });

我检查了setSelectionFromTop是否被正确调用,显然是。任何想法为什么它不起作用?

更新1

正如Ne0所暗示,我还检查了在主ui线程的Fragment中运行setSelectionFromTop方法,没有任何正面结果。

getActivity().runOnUiThread( new Runnable() {
            @Override 
            public void run() {
                listView.setSelectionFromTop(firstVisibleItem, pixelOffset);
            }
        });

其他任何想法可能是什么?

0 个答案:

没有答案