当使用Xamarin.Forms ListView时,有没有办法删除ListView自动滚动到UWP上的选定单元格,同时仍允许在单元格布局中选择元素?另外,有没有办法在相同的情况下删除单元格上的“选定”动画?
我已经设法通过完全禁用ListViewRenderer中的命中检测来实现视觉效果,如下所示:
var style = new Style(typeof(ListViewItem));
var setter = new Setter(ListViewItem.IsHitTestVisibleProperty, false);
style.Setters.Add(setter);
((ListView)Control).ItemContainerStyle = style;
然而,显然这也禁用了单元内元素的命中检测 .
在UWP中是否有任何方法可以实现禁用动画/ ListView自动滚动,同时仍允许检测单元格内的按钮等?
1 回答
在UWP上,
ListView
具有SelectionMode
属性,可以设置为None
. 这可能是禁用自动滚动的最简单方法 . 不幸的是,这个属性没有反映在ListView
的Xamarin.Forms抽象中 .要设置此项(仅在UWP上),您实际上不需要自定义渲染器,Xamarin.Forms Effect应该可以完成这项工作 . 所以你可以在你的Xamarin.Forms UWP项目中创建一个
NoSelectionEffect
类,让它看起来像这样:接下来,您需要在Xamarin.Forms PCL中为渲染器创建一个类:
现在您可以将效果附加到
ListView
,这应该可以完成工作 .让我知道,如果这有帮助!