Beena
Beena

Reputation: 2354

Viewpager in fragment not getting updated when navigating back to fragment

Below is the code of my 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;
    }
}

When i load my fragment first time, it displays all items in view pager. Then when i navigate to new fragment by adding this fragment into stack, It shows next screen. After that when i pop previous fragment which conatins viewpager from stack on button back press, It displays all values as i had set before and also shows viewpager indicator to the exact position at which i had left but view pager items seems to be shown invisible. When i scroll viewpager, it is updated and shows perfect.

I have tried by updating viewpager but it seems to be doing nothing.

I have intialized view pager as,

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

Upvotes: 9

Views: 966

Answers (1)

Beena
Beena

Reputation: 2354

Finally I found the solution. Issue was in initialisation of my viewPager.

I need to initiate it by,

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

instead of

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

I had refered FragmentPagerAdapter getItem is not being triggered accepted answer.

Hope it might help someone who is facing the same issue.

Upvotes: 14

Related Questions