我正在使用onDraw()
方法做图表。我有四个不同的片段,其中包含不同的图表。我曾经ViewPager
在滑动模型中显示图表。
当我打电话viewPager.getCount()
时,它会被多次调用。后来我发现onDraw()
每次触摸屏幕或滑动片段时都会调用该方法。我真的很想知道为什么 Fragment 在使用ViewPager
. 我没有得到任何适当的解决方案,任何人都可以指导我如何在getCount()
滑动时限制多次调用或调用 Fragment。
我正在使用onDraw()
方法做图表。我有四个不同的片段,其中包含不同的图表。我曾经ViewPager
在滑动模型中显示图表。
当我打电话viewPager.getCount()
时,它会被多次调用。后来我发现onDraw()
每次触摸屏幕或滑动片段时都会调用该方法。我真的很想知道为什么 Fragment 在使用ViewPager
. 我没有得到任何适当的解决方案,任何人都可以指导我如何在getCount()
滑动时限制多次调用或调用 Fragment。
试试这个,添加一个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()
),并将其定义为您需要的。