我有一个简单的屏幕示例,试图实现 ScrollToAsync 函数。我根本无法获得滚动功能。我的 XAML: <?xml version="1.0" encoding="utf-8" ?><ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="MyApp.ItemList"><ContentPage.Content> <ScrollView x:Name="myScroll"> <StackLayout> <Label Text="Welcome to Xamarin.Forms!" /> <Label Text="Welcome to Xamarin.Forms!" /> <Label Text="Welcome to Xamarin.Forms!" /> <Label Text="Welcome to Xamarin.Forms!" /> // Many labels to fill space here <Label Text="Welcome to Xamarin.Forms!" /> </StackLayout> </ScrollView></ContentPage.Content></ContentPage>C# 是: [XamlCompilation(XamlCompilationOptions.Compile)]public partial class ItemList : ContentPage{ public ItemList () { InitializeComponent (); myScroll.ScrollToAsync(0, 100, false); }}我究竟做错了什么?这一定是我需要做的简单的事情。我已经尝试将 ScrollToAsync 调用包装在异步方法中,因此我可以在它之前使用“await”,但这不起作用。
2 回答
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
那是因为滚动尚未加载,最好尝试将此方法添加到您的代码中
protected override void OnAppearing()
{
base.OnAppearing();
scLista.ScrollToAsync(0,100,false);
}
白猪掌柜的
TA贡献1893条经验 获得超10个赞
添加延迟会对您有所帮助,我将其设置在计时器中并且对我来说效果很好。
public MainPage()
{
InitializeComponent();
StarAnimate();
}
private void StarAnimate()
{
Device.StartTimer(TimeSpan.FromSeconds(1), () =>
{
myScroll.ScrollToAsync(LatestElment, ScrollToPosition.Center, true);
return false;
});
}
LatestElment:要滚动的元素。
- 2 回答
- 0 关注
- 449 浏览
添加回答
举报
0/150
提交
取消