为了账号安全,请及时绑定邮箱和手机立即绑定

ScrollToAsync 在 Xamarin.Forms 中不起作用

ScrollToAsync 在 Xamarin.Forms 中不起作用

C#
胡子哥哥 2022-01-09 10:44:31
我有一个简单的屏幕示例,试图实现 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);

    }


查看完整回答
反对 回复 2022-01-09
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

添加延迟会对您有所帮助,我将其设置在计时器中并且对我来说效果很好。


public MainPage()

    {

        InitializeComponent();

        StarAnimate();

    }


   private void StarAnimate()

    {

        Device.StartTimer(TimeSpan.FromSeconds(1), () =>

        {


            myScroll.ScrollToAsync(LatestElment, ScrollToPosition.Center, true);

            return false; 

        });

    }

LatestElment:要滚动的元素。


查看完整回答
反对 回复 2022-01-09
  • 2 回答
  • 0 关注
  • 449 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信