Не лучшее решение, но обходной путь, который я недавно внедрил.
- Взять
boolean[]
от общего количества фрагментов.
вроде:
private boolean[] arrLastPageDone = new boolean[]{false, false, false};
Если все значения фрагмента1 подтверждены, установите true
в первой позиции.То же самое для других фрагментов.
- Просто проверьте значения в
onPageSelected.
, например:
pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if (position > 0 && !arrLastPageDone[position - 1]) {
pager.setCurrentItem(pager.getCurrentItem() - 1);
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
И это работает.Он не позволяет смахивать к следующему фрагменту, пока все значения не будут проверены.
- И вы можете сохранить эти данные в SingleTon Class до тех пор, пока все процессы не будут выполнены.законченный.