当导航回片段时,片段中的Viewpager没有得到更新

时间:2014-11-24 04:25:06

标签: android android-viewpager

以下是我的ViewpagerAdapter的代码

private class ImagePagerAdapter extends FragmentStatePagerAdapter
{
    public ImagePagerAdapter(FragmentManager fm) {
        super(fm);
        // TODO Auto-generated constructor stub
    }

    @Override
    public Fragment getItem(int arg0) {
        // TODO Auto-generated method stub
        Fragment fragment = new DemoObjectFragment();
        Bundle args = new Bundle();

        args.putInt(DemoObjectFragment.ARG_OBJECT, arg0 );
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub

        int returnVal=0;
        if (totalPlayer%5==0) {
            returnVal= totalPlayer/5;
        }
        else
        {
            moduloImage=totalPlayer%5;
            returnVal= (totalPlayer/5)+1;
        }   
        return returnVal;
    }

    @Override
    public int getItemPosition(Object object){
        return POSITION_NONE;
    }
}

当我第一次加载我的片段时,它会显示视图寻呼机中的所有项目。然后,当我通过将此片段添加到堆栈中导航到新片段时,它显示下一个屏幕。之后,当我弹出前一个片段,它按下按钮后面的堆栈中的viewpager,它显示我之前设置的所有值,并且还显示viewpager指示器到我离开的确切位置但是查看寻呼机项似乎显示为不可见。当我滚动viewpager时,它会更新并显示完美。

我尝试过更新viewpager,但似乎什么也没做。

我已将视图寻呼机初始化为,

pager.setAdapter(new ImagePagerAdapter(this.getFragmentManager()));
pager.setCurrentItem(0);
indicator.setViewPager(pager);

1 个答案:

答案 0 :(得分:13)

最后我找到了解决方案。问题在于我的viewPager的初始化。

我需要启动它,

        pager.setAdapter(new ImagePagerAdapter(this.getChildFragmentManager()));

而不是

        pager.setAdapter(new ImagePagerAdapter(this.getFragmentManager()));

我提到了FragmentPagerAdapter getItem is not being triggered接受的答案。

希望它可以帮助那些面临同样问题的人。