下面是我的一些代碼,以幫助我們:
主要方法:
private async void Search() {
ResponseService results = await libSearch.getResults(this.searchEntry.Text);
if (results.error != true) {
List<Choice> list = (List<Choice>)results.obj;
if(list.Count != 0) {
foreach(Choice choice in list) {
Device.BeginInvokeOnMainThread(() => {
addNewChoice(choice);
});
}
}
}
AddNewChoice方法:
private void addNewChoiceOnUI(Choice choice) {
ChoiceTemplate Choice = new ChoiceTemplate(choice.name, choice.img, choice.address);
this.Choices.Children.Add(Choice);
}
的Web Service調用方法似乎上班。它看起來像這樣:
public async Task<ResponseService> getResults(string zipcode) {
(...)
JObject results = await JsonWebRequest.getDataFromService(queryString).ConfigureAwait(false);
(...)
正如你所看到的,我使用的是等待對Web服務調用方法和唯一的主要方法。我也在使用Web服務調用方法使用ConfigureAwait(false);
。我已經嘗試了很多解決方案如果我們能找到避免滯後的解決方案,我將非常感激。
當你正在更新和滾動時,它是滯後**嗎?或者**項目更新後,它是否滯後**?更新前的滾動滯後? –
我保留了一個空的stacklayout來顯示結果。我按下一個按鈕,項目正確顯示,然後當我嘗試滾動時,它是滯後的。之後。 – Rodney
有多少項? –