如何使用滚动视图位置设置淡入淡出功能

时间:2019-05-10 09:55:55

标签: c# xaml xamarin.forms

我有一个页面,当它向上滚动时,我需要页面的页眉部分应该淡出,而当向外滚动时,它应该淡入。我实际上尝试使用淡入功能来做到这一点,但是它使用了时间位置。

问题是淡入淡出功能支持的时间。我需要淡出位置

我尝试过

      <ScrollView Scrolled="ScrollView_OnScrolled">

   <StackLayout >
    <AbsoluteLayout x:Name="AbsoluteLayout1"   >

       // header part

            </AbsoluteLayout>


    <StackLayout >
        // body part

     </StackLayout>        
</StackLayout>

在我后面的代码中,我尝试过

    private double previousScrollPosition = 0;

  private async  void  ScrollView_OnScrolled(object sender, ScrolledEventArgs e)
    {
        if (previousScrollPosition < e.ScrollY)
        {
            //scrolled up
            previousScrollPosition = e.ScrollY;           
            await AbsoluteLayout1.FadeTo(0.2, 400, Easing.SinInOut);
          }

        }
        else
        {
            //scrolled down

            if (Convert.ToInt16(e.ScrollY) == 0)
                previousScrollPosition = 0;
            await AbsoluteLayout1.FadeTo(1, 400,Easing.SinIn);          
        }
       }

如何在Xamarin表单上使用滚动位置设置淡入淡出

1 个答案:

答案 0 :(得分:0)

这是我在这个问题上发现的内容

    public static async void CustomAnimation(double position, AbsoluteLayout name)
    {
        for (double i = 0; i < 81; i++)
        {
             Change here how you want to change the opacity(can make custom animation)
            var x = 1 - 0.0125 * i;

            if (position == i)
            {
                await name.FadeTo(x, 30, Easing.SinOut);

            }
        }
    }