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) {
}
});
簡單而有效的解決...感謝埃裏克! :) –