8

ViewPager用它来显示几个片段,TextView我的FragmentActivity. 我需要TextView根据当前在ViewPager. 我面临的问题:ViewPager有一些缓存机制,它在片段对用户真正可见之前实例化片段,例如当我ViewPager在第三页上的片段中选择第二页时也创建了。更重要的是我无法确定片段内部是这个片段现在可见还是它只是由创建的ViewPager,但对用户不可见。我已经尝试过使用OnPageChangeListener它,但是对它所做的更改对我来说是不可接受的缓慢(页面滚动然后我TextView已经更改)

我真正需要的:ViewPager,无论来自FragmentActivity还是来自Fragment自身。我怎样才能做到这一点?

4

1 回答 1

7

ViewPager.OnPageChangeListener是这里明显的方法。正如您所注意到的,onPageSelected(int position)在页面居中之前不会被调用(如果您通过触摸并按住缓慢滚动页面)。

我真正需要的是:我需要确定 ViewPager 中当前可见的片段,无论是来自 FragmentActivity 还是来自 Fragment 本身。我怎样才能做到这一点?

首先,您还没有定义“当前可见”。在 aViewPager中,两个页面在它们之间滑动时都可以看到,那么哪一个是“当前可见”的中间滑动?我的假设是,您会认为“更明显”的页面是“当前可见的”。

话虽如此,我会考虑使用onPageScrolled (int position, float positionOffset, int positionOffsetPixels). 看来,positionOffset也许能够为您提供所需的信息。我会用一些日志语句对其进行测试,以查看返回的数据。

于 2013-04-25T17:58:27.350 回答