Skip to content

Commit dfb80d2

Browse files
committed
Fix Some Bug
1 parent b60546f commit dfb80d2

File tree

1 file changed

+49
-51
lines changed

1 file changed

+49
-51
lines changed

‎src/Presentations/Windows/Features/ResumesTemplate/Pages/ResumeDetailPage.xaml.cs‎

Lines changed: 49 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using Microsoft.AspNetCore.Components;
2+
using Octokit;
23
using System.ComponentModel;
34
using System.Diagnostics;
45

@@ -42,10 +43,13 @@ private void OnSizeChanged(object sender, EventArgs e)
4243

4344
private async void ViewModel_PropertyChanged(Object sender, PropertyChangedEventArgs e)
4445
{
45-
await HandlePageIndexChangedAsync();
46+
if (e.PropertyName == nameof(ViewModel.SelectedPageIndex))
47+
{
48+
await HandlePageIndexChangedByWebViewAsync();
49+
}
4650
}
4751

48-
private async void OnScrolled(object sender, ScrolledEventArgs e)
52+
private void OnScrolled(object sender, ScrolledEventArgs e)
4953
{
5054
if (IsAnimating)
5155
return;
@@ -58,41 +62,73 @@ private async void OnScrolled(object sender, ScrolledEventArgs e)
5862

5963
if (scrollY > (maxScrollY - threshold))
6064
{
61-
if (ViewModel.SelectedPageIndex < ResumeInputStackLayout.Children.Count - 1)
65+
if (ViewModel.SelectedPageIndex < (ResumeInputStackLayout.Children.Count - 1))
6266
{
63-
await ChangePage(ViewModel.SelectedPageIndex + 1);
67+
ChangePage(ViewModel.SelectedPageIndex + 1);
6468
}
6569
}
6670
else if (scrollY < (threshold))
6771
{
6872
if (ViewModel.SelectedPageIndex > 0)
6973
{
70-
await ChangePage(ViewModel.SelectedPageIndex - 1);
74+
ChangePage(ViewModel.SelectedPageIndex - 1);
7175
}
7276
}
7377
}
7478
#endregion
7579

7680
#region [ Methods ]
77-
private async Task HandlePageIndexChangedAsync()
81+
private void ChangePage(int newPage)
82+
{
83+
ViewModel.PreviousSelectedPageIndex = ViewModel.SelectedPageIndex;
84+
ViewModel.SelectedPageIndex = newPage;
85+
86+
//await BlazorWebViewElement.TryDispatchAsync(async sp =>
87+
//{
88+
// var navigationManager = sp.GetRequiredService<NavigationManager>();
89+
// var newUri = ViewModel.BlazorWebViewStartPath + ViewModel.Pages[newPage];
90+
// if (navigationManager.Uri != navigationManager.ToAbsoluteUri(newUri).ToString())
91+
// {
92+
// await Task.Delay(800);
93+
// navigationManager.NavigateTo(newUri, true);
94+
// await Task.Delay(800);
95+
// }
96+
//});
97+
}
98+
99+
private async Task HandlePageIndexChangedByWebViewAsync()
78100
{
101+
IsAnimating = true;
102+
79103
var previousLayout = ResumeInputStackLayout.Children[ViewModel.PreviousSelectedPageIndex] as VisualElement;
80104
var currentLayout = ResumeInputStackLayout.Children[ViewModel.SelectedPageIndex] as VisualElement;
81105

82-
await previousLayout.FadeTo(0, 500);
83-
previousLayout.IsVisible = false;
106+
if (previousLayout != null)
107+
{
108+
await Task.Delay(100);
109+
await previousLayout.FadeTo(0, 300);
110+
previousLayout.IsVisible = false;
111+
}
112+
113+
if (currentLayout != null)
114+
{
115+
await Task.Delay(100);
116+
currentLayout.IsVisible = true;
117+
await currentLayout.FadeTo(1, 300);
118+
}
84119

85-
currentLayout.IsVisible = true;
86-
await currentLayout.FadeTo(1, 500);
87120
await AdjustLayout();
121+
122+
IsAnimating = false;
88123
}
89124

90125
private async Task AdjustLayout()
91126
{
92127
IsAnimating = true;
93128
var currentPageHeight = 0.0;
129+
var currentElement = ResumeInputStackLayout.Children[ViewModel.SelectedPageIndex] as VisualElement;
94130

95-
if (ResumeInputStackLayout.Children[ViewModel.SelectedPageIndex] is VisualElement stackChildrenElement)
131+
if (currentElement is VisualElement stackChildrenElement)
96132
{
97133
stackChildrenElement.Measure(double.PositiveInfinity, double.PositiveInfinity);
98134
currentPageHeight = stackChildrenElement.DesiredSize.Height;
@@ -111,46 +147,8 @@ private async Task AdjustLayout()
111147
}
112148

113149
await Task.Delay(300);
114-
await ResumeInputScrollView.ScrollToAsync(0, desiredHeight * 0.1, true);
115-
116-
IsAnimating = false;
117-
}
118-
119-
private async Task ChangePage(int newPage)
120-
{
121-
IsAnimating = true;
122-
123-
var currentLayout = ResumeInputStackLayout.Children[ViewModel.SelectedPageIndex] as VisualElement;
124-
var newLayout = ResumeInputStackLayout.Children[newPage] as VisualElement;
125-
126-
if (currentLayout != null)
127-
{
128-
await currentLayout.FadeTo(0, 500);
129-
currentLayout.IsVisible = false;
130-
}
131-
132-
//await BlazorWebViewElement.TryDispatchAsync(async sp =>
133-
//{
134-
// NavigationManager = sp.GetRequiredService<NavigationManager>();
135-
// var newUri = ViewModel.BlazorWebViewStartPath + ViewModel.Pages[newPage];
136-
// if (NavigationManager.Uri != NavigationManager.ToAbsoluteUri(newUri).ToString())
137-
// {
138-
// await Task.Delay(800);
139-
// NavigationManager.NavigateTo(newUri, true);
140-
// await Task.Delay(800);
141-
// }
142-
//});
143-
144-
ViewModel.PreviousSelectedPageIndex = ViewModel.SelectedPageIndex;
145-
ViewModel.SelectedPageIndex = newPage;
146-
147-
if (newLayout != null)
148-
{
149-
newLayout.IsVisible = true;
150-
await newLayout.FadeTo(1, 500);
151-
}
152-
153-
await AdjustLayout();
150+
//await ResumeInputScrollView.ScrollToAsync(0, desiredHeight * 0.1, true);
151+
await ResumeInputScrollView.ScrollToAsync(currentElement, ScrollToPosition.Center, true);
154152

155153
IsAnimating = false;
156154
}

0 commit comments

Comments
 (0)