2016-01-13 63 views
1

我已经建立了一个带有3个片段的寻呼机,我想在显示片段#2时执行特定的代码块,但问题是显示片段#1时,执行此片段的onCreate/onResume方法。我明白,这背后的逻辑正在为实际需要片段#2时的工作做好准备,但如果在显示片段#2时需要专门完成某些工作,我该怎么办?如何在显示某个片段时执行一段代码?

回答

3

您可以实现一个OnPageChangeListener,覆盖OnPageSelected并将其设置在ViewPager这样:

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
    @Override 
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 

    } 

    @Override 
    public void onPageSelected(int position) { 
     if (position == 1) { // Meaning the position of the 2nd Fragment 
      doSomeCode(); 
     } 
    } 

    @Override 
    public void onPageScrollStateChanged(int state) { 

    } 
}); 
+0

简单而有效的解决...感谢埃里克! :) –

相关问题