1
我已经建立了一个带有3个片段的寻呼机,我想在显示片段#2时执行特定的代码块,但问题是显示片段#1时,执行此片段的onCreate/onResume方法。我明白,这背后的逻辑正在为实际需要片段#2时的工作做好准备,但如果在显示片段#2时需要专门完成某些工作,我该怎么办?如何在显示某个片段时执行一段代码?
我已经建立了一个带有3个片段的寻呼机,我想在显示片段#2时执行特定的代码块,但问题是显示片段#1时,执行此片段的onCreate/onResume方法。我明白,这背后的逻辑正在为实际需要片段#2时的工作做好准备,但如果在显示片段#2时需要专门完成某些工作,我该怎么办?如何在显示某个片段时执行一段代码?
您可以实现一个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) {
}
});
简单而有效的解决...感谢埃里克! :) –