您不需要获取最大Y位置,因为在向下滚动之前,Y位置始终为0。所以你只需要知道滚动的方向。
我写了一个演示来证明这一点:
主页。xaml。反恐精英
private double previousScrollPosition = 0;
public MainPage()
{
InitializeComponent();
}
void Handle_Scrolled(object sender, Xamarin.Forms.ScrolledEventArgs e)
{
if (previousScrollPosition < e.ScrollY)
{
//scrolled down
Console.WriteLine("!!!!!!!!!scrolled down ScrollY=>" + textScroll.ScrollY);
}
else
{
//scrolled up
Console.WriteLine("!!!!!!!!!scrolled up ScrollY=>" + textScroll.ScrollY);
}
previousScrollPosition = e.ScrollY;
}
主页。xaml
<ContentPage.Content>
<StackLayout>
<BoxView BackgroundColor="Red" HeightRequest="200" WidthRequest="150" />
<ScrollView x:Name="textScroll" Scrolled="Handle_Scrolled">
<StackLayout>
<Entry Text="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"/>
<Entry Text="bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"/>
<Entry Text="ccccccccccccccccccccccccccccccccccccccccccccccccccc"/>
<Entry Text="ddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"/>
<Entry Text="eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"/>
<Entry Text="fffffffffffffffffffffffffffffffffffffffffff"/>
<Entry Text="ggggggggggggggggggggggggggggggggggggggggggggg"/>
<Entry Text="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"/>
<Entry Text="bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"/>
<Entry Text="ccccccccccccccccccccccccccccccccccccccccccccc"/>
<Entry Text="dddddddddddddddddddddddd"/>
<Entry Text="eeeeeeeeeeeeeeeeeeeeeeeeee"/>
<Entry Text="fffffffffffffffffffffffffffffffffffffffffff"/>
<Entry Text="ggggggggggggggggggggggggggggggggggggggggggggg"/>
<Entry Text="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"/>
<Entry Text="bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"/>
<Entry Text="ccccccccccccccccccccccccccccccccccccccccccccccccccc"/>
<Entry Text="ddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"/>
<Entry Text="eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"/>
<Entry Text="fffffffffffffffffffffffffffffffffffffffffff"/>
<Entry Text="ggggggggggggggggggggggggggggggggggggggggggggg"/>
<Entry Text="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"/>
<Entry Text="bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"/>
<Entry Text="ccccccccccccccccccccccccccccccccccccccccccccc"/>
<Entry Text="dddddddddddddddddddddddd"/>
<Entry Text="eeeeeeeeeeeeeeeeeeeeeeeeee"/>
<Entry Text="fffffffffffffffffffffffffffffffffffffffffff"/>
<Entry Text="ggggggggggggggggggggggggggggggggggggggggggggg"/>
</StackLayout>
</ScrollView>
</StackLayout>
</ContentPage.Content>