我正在使用onDraw()
方法做图表。我有四个不同的片段,包含不同的图形。我使用ViewPager
在滑动模型中显示图表。
当我致电viewPager.getCount()
时,它会被多次呼叫。后来我发现onDraw()
方法每当我触摸屏幕或刷卡时就会调用。我真的很想知道为什么在使用ViewPager
时多次调用Fragment。我没有为此获得任何正确的解决方案,任何人都可以指导我如何限制多次调用getCount()
或在进行滑动时调用Fragment。
答案 0 :(得分:2)
试试这个,
添加mViewPager.setOnPageChangeListener(mPageLitsener);
和 定义为,
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) {}
};
然后在Fragment中调用一个公共方法(即onUpdate()
),并根据需要定义它。