0

私は、安定版のXamarin FormsでPCLで作業しています。現時点では、ターゲットプラットフォームはAndroidです。Xamarinフォーム - HTTP POSTでUIを更新した後にScrollViewが遅れるリクエスト結果

まず、私のHTTP POSTリクエストから結果が得られますが、これは正常に動作しています。

次に、UIを更新しようとすると、結果が表示されるスクロールビューが下にスクロールされます。

私はそれがスレッドの問題かもしれないと思う:UIの更新が正しいスレッドで実行されないかもしれない。

私はDevice.BeginInvokeOnMainThread(() => { //Update the UI });を使用しようとしましたが、動作しません。

ありがとうございました。ここで

+0

**更新中およびスクロール中に**遅れていますか? **アイテムが更新された後に**遅れていますか?更新の前にスクロールの遅れはありませんか? –

+0

空のスタックレイアウトを予約して結果を表示しました。私はボタンを押すと、アイテムが正しく表示され、スクロールしようとすると遅れます。だから後。 – Rodney

+0

いくつのアイテムがありますか? –

答えて

0

たちを助けるために私のコードの一部です:

主な方法:

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サービスの呼び出し方法がようです働くあなたが見ることができるように

public async Task<ResponseService> getResults(string zipcode) { 

(...) 

     JObject results = await JsonWebRequest.getDataFromService(queryString).ConfigureAwait(false); 

(...) 

、私はを使用しているWebサービスの呼び出し方法にのみmainメソッドにを待つ:それはこのようになります。また、Webサービスの呼び出しメソッドでConfigureAwait(false);を使用しています。私はすでに多数のソリューションを試していました。私は遅れを避けるための解決策を見つけることができればとても感謝しています。