RAAAAM
RAAAAM

Reputation: 3380

ViewPager calling multiple times -- Android

I am doing graph using onDraw() method. I have four different Fragments which contains different graphs. I used ViewPager to show the graph in swipe model.

When I call viewPager.getCount() it's getting called multiple times. Later I found that the onDraw() method was calling each time I touched the screen or when I swipe the fragment. I really wondered why the Fragment is called several times while using ViewPager. I didn't get any proper solution for this, can anyone guide me how to restrict multiple calling of getCount() or calling Fragment when doing a swipe.

Upvotes: 2

Views: 4632

Answers (1)

Sino Raj
Sino Raj

Reputation: 6441

Try this, Add a mViewPager.setOnPageChangeListener(mPageLitsener);

And define as,

private ViewPager.OnPageChangeListener mPageLitsener = new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageSelected(int position) {
        switch (position) {
            case 0:
            ((FirstFragment)mViewPagerAdapter.getItem(0)).onUpdate();
            break;

            case 1:
            ((SecondFragment)mViewPagerAdapter.getItem(1)).onUpdate();
            break;

            case 2:
            ((ThirdFragment)mViewPagerAdapter.getItem(2)).onUpdate();
            break;

            default:
            ((FirstFragment)mViewPagerAdapter.getItem(0)).onUpdate();
            break;
        }
    }

    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) {}

    @Override
    public void onPageScrollStateChanged(int arg0) {}
};

Then call a public method inside of Fragment (i.e, onUpdate()), and define that as what you need.

Upvotes: 3

Related Questions