【问题标题】:Listview Y scroll positionListview Y 滚动位置
【发布时间】:2018-02-23 17:25:16
【问题描述】:

有没有办法获取列表视图 Y 滚动位置?我的目标是在用户滚动列表视图时更改图像的 TranslationY 属性。我在使用滚动视图之前已经实现了这一点:

outerScrollView.Scrolled += (sender, e) => {
    var imageHeight = 800;
    var scrollRegion = layeringGrid.Height - outerScrollView.Height;
    var parallexRegion = imageHeight - outerScrollView.Height;
    var factor = outerScrollView.ScrollY - parallexRegion * (outerScrollView.ScrollY / scrollRegion);
    imagesCarousel.TranslationY = factor;
};

但是,listview 不包含 Scrolled 事件。

提前致谢。

【问题讨论】:

标签: listview xamarin.forms


【解决方案1】:

ListViews默认有滚动,不知道为什么你的ListView不包含Scrolled事件。

但是,一旦您的 ListView 默认没有滚动,您必须在 xml 中创建一个覆盖您的 ListView 的滚动视图,如下所示:

<ScrollView x:Name="outerScrollView">
    <ListView 
        x:Name="ItemsListView"  
        ItemsSource="{Binding Messages}" 
        HasUnevenRows="True" 
        />
</ScrollView>

那么一旦你在一个事件e中,你应该使用e.ScrollY而不是outerScrollView.ScrollY

在上面的代码中实现它应该是这样的:

outerScrollView.Scrolled += (sender, e) => {
    var imageHeight = 800;
    var scrollRegion = layeringGrid.Height - e.Height;
    var parallexRegion = imageHeight - e.Height;
    var factor = e.ScrollY - parallexRegion * (e.ScrollY / scrollRegion);
    imagesCarousel.TranslationY = factor;
};

那就是你的滚动垂直位置!!

如果这个答案对你有用,别忘了接受它并给它投票!!谢谢:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-04
    • 2019-01-25
    • 1970-01-01
    • 2015-07-29
    相关资源
    最近更新 更多