2013-10-01 79 views
1

我正在使用onDraw()方法进行拨号。我有四个不同的片段,其中包含不同的图表。我使用ViewPager在滑动模型中显示图形。ViewPager多次拨打电话 - Android

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

+0

查看寻呼机总是一次寻找/加载2个页面,即当你关注第一页时,第二页也是加载。因此,当您需要一次只加载一个片段时,请添加一个页面侦听器,并在页面位置添加一个switch/if-else条件。 –

+0

感谢您的评论。你有这样的样品吗 – RAAAAM

回答

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) {} 
}; 

然后调用片段(即,onUpdate())内的公共方法,并定义为你所需要的。

+0

非常感谢你,即时实施你发送的代码。如果工作正常,我会接受你的答案。再次感谢。 – RAAAAM