Skip to content

Commit

Permalink
[Fix] when reBuldAllRoute re-create ViewAnimator
Browse files Browse the repository at this point in the history
  • Loading branch information
rh-id committed Nov 4, 2021
1 parent 50c25ef commit 90ae79e
Showing 1 changed file with 18 additions and 3 deletions.
21 changes: 18 additions & 3 deletions navigator/src/main/java/m/co/rh/id/anavigator/Navigator.java
Original file line number Diff line number Diff line change
Expand Up @@ -348,9 +348,24 @@ public void reBuildRoute(int routeIndex) {

@Override
public void reBuildAllRoute() {
getViewAnimator().postInvalidate();
for (int i = 0; i < mNavRouteStack.size(); i++) {
reBuildRoute(i);
if (mIsNavigating) {
mPendingNavigatorRoute.add(() -> reBuildAllRoute());
return;
}
mIsNavigating = true;
ViewAnimator newViewAnimator = createViewAnimator(mActivity, mViewAnimatorId, mNavConfiguration);
for (int i = mNavRouteStack.size() - 1; i >= 0; i--) {
NavRoute navRoute = mNavRouteStack.get(i);
View view = navRoute.getStatefulView().buildView(mActivity, newViewAnimator);
newViewAnimator.addView(view);
}
newViewAnimator.setDisplayedChild(mNavRouteStack.size() - 1);
getViewAnimator().removeAllViews();
setViewAnimator(mActivity, newViewAnimator);
initViewNavigator();
mIsNavigating = false;
if (!mPendingNavigatorRoute.isEmpty()) {
mPendingNavigatorRoute.pop().run();
}
}

Expand Down

0 comments on commit 90ae79e

Please sign in to comment.