水平滚动条的问题,xamarin c#

jljoyd4f  于 2022-12-07  发布在  C#
关注(0)|答案(1)|浏览(199)

问题出在滚动条上,如果我水平滚动到数据的第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;

ubby3x7f

ubby3x7f1#

原因是0thColScrollView_Scrolled1thColScrollView_Scrolled中的0,需要保留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);
}

相关问题