Reputation: 3380
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
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