問題出在滾動條上,如果我在水平方向滾動到資料的第 1 列,然后嘗試虛擬滾動到第 0 列資料,滾動會自動到達第 1 列資料的第一個位置。
任何幫助表示贊賞。謝謝!
滾動事件代碼:
private async void 1stColScrollView_Scrolled;(object sender, ScrolledEventArgs e)
{
await rowScrollView.ScrollToAsync(0, e.ScrollY, false);
await colScrollView.ScrollToAsync(e.ScrollX, 0, false);
}
private async void 0thColScrollView_Scrolled(object sender, ScrolledEventArgs e)
{
await dataScrollView.ScrollToAsync(0, e.ScrollY, false);
}
private async void 1thColScrollView_Scrolled(object sender, ScrolledEventArgs e)
{
await dataScrollView.ScrollToAsync(e.ScrollX, 0, false);
}
并致電:
dataScrollView.Scrolled = 1stColScrollView_Scrolled;
rowScrollView.Scrolled = 0thColScrollView_Scrolled;
colScrollView.Scrolled = 1thColScrollView_Scrolled;

uj5u.com熱心網友回復:
原因是0thColScrollView_Scrolled和中的 0 1thColScrollView_Scrolled。水平滾動時需要保留dataScrollView的ScrollY,垂直滾動時需要保留ScrollX。如:
private async void 0thColScrollView_Scrolled(object sender, ScrolledEventArgs e)
{
await dataScrollView.ScrollToAsync(dataScrollView.ScrollX, e.ScrollY, false);
}
private async void 1thColScrollView_Scrolled(object sender, ScrolledEventArgs e)
{
await dataScrollView.ScrollToAsync(e.ScrollX, dataScrollView.ScrollY, false);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/510769.html
標籤:C#xamarin
