在我的Xamarin。Windows Phone 8.1的表单应用程序,我们有许多页面,用户可以使用CarouselPage
之间滑动。其中一个页面包含一个ListView
,它填满了屏幕,当选择该页面时,用户不能再滑动;该操作被列表视图解释为点击其中一个单元格。我怎么做才能使水平滑动仍然会改变旋转木马中的页面?我仍然希望垂直滑动来滚动列表视图
这不能在Xamarin Forms项目中直接实现,因为当有一个列表视图可用时,所有的点击、手势等都将由列表视图本身处理。只有不被最上面的布局/控件处理的手势才会传递到它下面的控件/布局中。在你的例子中,listview处理所有的手势,没有任何东西被传递到你的carousel页面。
我能想到的唯一解决问题的方法是,将列表视图的InputTransparent
属性设置为true
。在这种情况下,没有手势将由列表视图处理,一切都将传递到轮播页面。但是,由于您需要拥有选中的项目并从列表视图打开详细页面,因此您可以做的是在listview项目模板中拥有一个按钮并处理按钮的单击。由于按钮是一个单独的控件,并在列表视图的顶部,设置InputTransparent
不会影响按钮单击事件/命令绑定。
EDIT:根据OP的经验,即使在设置了InputTransparent之后,他也能够访问所选项目和listview的所有其他功能。