【发布时间】:2020-10-09 07:49:39
【问题描述】:
我在文件后面的代码中对 OnAppearing() 方法进行了覆盖,以自动滚动到特定元素,该元素是 XAML 文件中 ScrollView 元素内的子元素。我使用 ScrollView 元素中的 ScrollToAsync() 方法滚动到 MyBox 元素,它是一个 BoxView 元素。
protected override async void OnAppearing()
{
await HorizontalScrollView.ScrollToAsync(MyBox, ScrollToPosition.Center, false);
base.OnAppearing();
}
我的问题是当页面出现时它不会自动滚动到 MyBox 元素。但是,如果我插入 Task.Delay(),我就可以使用它。
protected override async void OnAppearing()
{
await System.Threading.Tasks.Task.Delay(1);
await HorizontalScrollView.ScrollToAsync(MyBox, ScrollToPosition.Center, false);
base.OnAppearing();
}
我的问题是为什么它会起作用,当我插入延迟时,有什么办法可以摆脱使用 Task.Delay() 语句?
【问题讨论】:
-
尝试调用
base.OnAppearing();之后的行。 -
它没有改变任何东西
-
是的,你给我的答案奏效了。感谢您的帮助!
标签: c# android xamarin xamarin.forms async-await