以下是我的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);
答案 0 :(得分:13)
最后我找到了解决方案。问题在于我的viewPager的初始化。
我需要启动它,
pager.setAdapter(new ImagePagerAdapter(this.getChildFragmentManager()));
而不是
pager.setAdapter(new ImagePagerAdapter(this.getFragmentManager()));
我提到了FragmentPagerAdapter getItem is not being triggered接受的答案。
希望它可以帮助那些面临同样问题的人。