1

在我的Windows Phone 8.1的Xamarin.Forms应用程序中,我们有许多页面,用户可以使用CarouselPage在两者之间滑动。其中一个页面包含一个填充屏幕的ListView,当选择该页面时用户不能再滑动;该行为被列表视图解释为其单元之一的轻击。我该怎么做,以便水平滑动仍然会改变传送带中的页面?我仍然想要垂直滑动来滚动列表视图。如何让用户在包含ListView时滑动CarouselPage?

+0

您是否尝试过使用CarouselView而不是CarouselPage? CarouselPage页面将很快过时 – BraveHeart

+0

你不需要在ListView上点击?看看它上面的'InputTransparent'属性 –

+0

@BraveHeart它看起来不像CarouselView在Xamarin Forms稳定版本中可用。你知道它何时可用吗? – Simon

回答

0

这不能直接在Xamarin Forms项目中实现,因为当有列表视图可用时,所有轻敲,手势等都将由listview本身处理。 只有最顶层布局/控件不处理的手势才会被传递到其下方的控件/布局中。 所以在你的情况下,listview处理所有的手势,没有任何东西传递给你的轮播页面。

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

编辑:按照OP的经验,他甚至能够设置InputTransparent后访问所选择的项目和ListView的其他所有功能。

+1

我已经设置了'InputTransparent',并且ListView仍然按照我的希望工作,即使没有设置其内容的按钮。我仍然可以滚动并轻按项目,但我也可以轻扫以改变旋转木马。谢谢! – Simon

+0

即使在设置了InputTransparent之后,你的意思是你会得到listview选定的项目? –

+1

是的 - 我仍然可以滚动列表视图并选择项目。 – Simon

相关问题