我已经设置了一个包含3个片段的寻呼机,我想在显示片段#2时执行特定的代码块,但问题是当片段#1显示时,来自该片段的onCreate / onResume方法执行。我知道这背后的逻辑是在实际需要片段#2时提前做好工作,但是如果我需要在片段#2显示时需要做些什么,我该怎么办呢?
答案 0 :(得分: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) {
}
});