2

我正在使用onDraw()方法做图表。我有四个不同的片段,其中包含不同的图表。我曾经ViewPager在滑动模型中显示图表。

当我打电话viewPager.getCount()时,它会被多次调用。后来我发现onDraw()每次触摸屏幕或滑动片段时都会调用该方法。我真的很想知道为什么 Fragment 在使用ViewPager. 我没有得到任何适当的解决方案,任何人都可以指导我如何在getCount()滑动时限制多次调用或调用 Fragment。

4

1 回答 1

3

试试这个,添加一个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()),并将其定义为您需要的。

于 2013-10-01T09:38:12.873 回答