【问题标题】: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;
};
那就是你的滚动垂直位置!!
如果这个答案对你有用,别忘了接受它并给它投票!!谢谢:)