スタックレイアウトとスクロールビューを使用してコメントリストを表示する画面があります。ユーザーはもう1つのコメントを追加して、Xamarinフォームのこのスクロールビューの最後にもう1つコメントを追加することができます(AndroidとiOSアプリ)。このリストをスクロールして最新の表示コメント要素を表示することが必要です。このため、私は以下の行のコードを使用しましたが、最後の要素から2番目の最後の要素までスクロールしません。私はIOSとAndroidの両方でそれを観察しました。Xamarinフォーム - ScrollView - ScrollToAsyncが正常に動作しません。
await scrollView.ScrollToAsync(stkMain, ScrollToPosition.End, true);
以下の図は、それに関する詳細を示しています。
画像に示されるように、私が最後までスクロールするコード上で使用しているが、スタックレイアウト3は、画面上に表示されません。スクロールビューを上にスクロールしてスタックレイアウト3を表示する必要があります。
予想される動作 - スクロールビューは最後の要素が画面に表示されるまでスクロールする必要があります。私はそれを正しくやっていないといいと思います。
私が言及することを忘れていることの1つは、デバッグモードでscrolToAsyncメソッドを持つ行をポイントで作成した場合です。ブレークポイントがその行をヒットし、F5を押すと最後の要素が表示されます。私はそれを見て驚いていますが、それは起こる
'stkMain'の最後の子を取得してスクロールしようとしましたか? –
私が言及することを忘れていることの1つは、デバッグモードでscrolToAsyncメソッドを持つラインでポイントを作成したときです。ブレークポイントがその行をヒットし、F5を押すと最後の要素が表示されます。私はそれを見て驚いているが、それは起こる。 –
それほど意外ではありません。レンダリング方法は非同期であることが多く、要素がレンダリングされた画面で利用可能になる前にコードビハインドを実行できることに注意してください。私はそれが最良の解決策ではないことを知っていますが、時には視覚的なやり取りを実行する前に300msの遅延を強制することもありました。 (悪い英語のおかげで申し訳ありませんが、私はまだ学んでいます= D) –