2

在我的 Windows Phone 8.1 的 Xamarin.Forms 应用程序中,我们有许多页面,用户可以使用CarouselPage. 其中一个页面包含一个ListView填满屏幕的页面,当该页面被选中时,用户无法再滑动;该动作被列表视图解释为在其中一个单元格中的点击。我该怎么做才能使水平滑动仍会更改轮播中的页面?我仍然希望垂直滑动来滚动列表视图。

4

1 回答 1

1

这不能在 Xamarin Forms 项目中直接实现,因为当有可用的列表视图时,所有的点击、手势等都将由列表视图本身处理。只有最顶层布局/控件未处理的手势才会传递到其下方的控件/布局中。因此,在您的情况下,列表视图处理所有手势,并且没有任何内容传递到您的轮播页面。

我能想到的唯一解决方法是InputTransparent将列表视图的属性设置为true. 在这种情况下,列表视图不会处理任何手势,所有内容都将传递到轮播页面。但是由于您需要拥有选定的项目并从列表视图打开详细信息页面,您可以做的是在列表视图项目模板中拥有一个按钮并处理按钮的单击。由于按钮是一个单独的控件并且位于列表视图之上,因此该设置InputTransparent不会影响按钮单击事件/命令绑定。

编辑:根据 OP 的经验,即使在设置 InputTransparent 之后,他也能够访问所选项目和列表视图的所有其他功能。

于 2016-08-18T08:56:40.237 回答