public async Task Apply(GalleyBaseView view, GalleySuperView superView) { var oldViewIndex = superView.Children.ToArray().IndexOf(superView.CurrentView); superView.InsertChildIfNeeded(0, view, !superView.IsAllowedMakingViewsInvisible); await superView.SetCurrentView(view, true); var newViewIndex = superView.Children.ToArray().IndexOf(superView.CurrentView); Task animationTask; if (newViewIndex > oldViewIndex) { view.Opacity = 0; view.IsVisible = true; animationTask = Task.Run(async() => await view.FadeTo(1, _time)); } else { view.Opacity = 1; view.IsVisible = true; animationTask = superView.GetOtherVisibleViews(view).EachAsync(async c => await c.FadeTo(0, _time), false); } await superView.ResetFloatingControls(view, animationTask); superView.SetSuperView(view); }
public async Task Apply(GalleyBaseView view, GalleySuperView superView) { superView.InsertChildIfNeeded(0, view); await superView.SetCurrentView(view, true); await superView.ResetFloatingControls(view, superView.GetOtherVisibleViews(view) .EachAsync(async c => await c.LayoutTo(superView.Width, 0, superView.Width, superView.Height, _time))); superView.SetSuperView(view); }