刷新vi​​ewpager的中间片段

时间:2015-03-15 06:20:51

标签: android android-fragments android-viewpager adapter fragmentstatepageradapter

我在viewpager中有3个片段,它是从FragmentStatePagerAdapter实现的 我只想刷新中间片段,因为我有一个动画监听器。因此我尝试了这段代码:

@Override
public int getItemPosition(Object object) {
    if (object instanceof MiddleFragment){
        return POSITION_NONE;
    }else {
        return POSITION_UNCHANGED;
    }

但对我不起作用,因为setOffscreenPageLimit默认值为1,我看不到中间片段的任何刷新。我不知道这样做。

请指导我,提前致谢。

2 个答案:

答案 0 :(得分:0)

维护您在viewpager中添加的片段的ArrayList。 您可以从arrayList中检索片段并执行更新。 看它是否有效!!!

编辑1:我正在为此添加一个示例。

  ArrayList<Fragments> arrayList = new ArrayList<Fragment>();

在你的fragmentpageradapter的getItem方法中,在返回每个项目之前,将它添加到arraylist

    @Override
    public Fragment getItem(int position) {
           Fragment f = new YourFragment();
             arrayList.add(f);
            return f;
    }

当您愿意更新第二个片段时,您可以通过给定位置从arraylist中检索该片段,并执行您想要在其中执行的任何更新。

答案 1 :(得分:0)

您可以通过以下两种方式之一刷新片段,

1。使用refresh()方法。

protected PopulareFragment populareFragment;

if(current_tab.contains("Middle Fragment")){
    populareFragment.refresh();
}

2。或者只是将mTabHost.setCurrentTab(2);添加到回调中。