fix: scroll back to top when query changed.

This commit is contained in:
Tsanie Lily 2020-05-15 13:06:10 +08:00
parent 0085d21156
commit 2da73d5f51

View File

@ -269,13 +269,8 @@ namespace Pixiview.Illust
{ {
ToggleFilterPanel(false); ToggleFilterPanel(false);
} }
// release
ReleaseCollection();
previousEnabled = false;
dateEnabled = false;
nextEnabled = false;
queryDate = date; queryDate = date;
StartLoad(true); PrepareLoad();
} }
} }
@ -299,13 +294,8 @@ namespace Pixiview.Illust
// first load or loading // first load or loading
return; return;
} }
// release
ReleaseCollection();
previousEnabled = false;
dateEnabled = false;
nextEnabled = false;
queryDate = e.NewDate.ToString("yyyyMMdd"); queryDate = e.NewDate.ToString("yyyyMMdd");
StartLoad(true); PrepareLoad();
} }
private void TapGestureRecognizer_Tapped(object sender, EventArgs e) private void TapGestureRecognizer_Tapped(object sender, EventArgs e)
@ -351,28 +341,33 @@ namespace Pixiview.Illust
var query = QueryKey; var query = QueryKey;
ToggleFilterPanel(false); ToggleFilterPanel(false);
bool refresh = false;
lock (sync) lock (sync)
{ {
if (IsLoading) if (IsLoading)
{ {
return; return;
} }
}
//if (lastQueryKey != query) //if (lastQueryKey != query)
{ {
// release
ReleaseCollection();
// query changed. // query changed.
lastQueryKey = query; lastQueryKey = query;
refresh = true;
App.DebugPrint($"query changed: {query}"); App.DebugPrint($"query changed: {query}");
PrepareLoad();
} }
} }
if (refresh)
private async void PrepareLoad()
{ {
await scrollView.ScrollToAsync(0, -topOffset, true);
// release
ReleaseCollection();
previousEnabled = false;
dateEnabled = false;
nextEnabled = false;
ToolbarCommand.ChangeCanExecute();
StartLoad(true); StartLoad(true);
} }
}
private void ReleaseCollection() private void ReleaseCollection()
{ {