【问题标题】:Receive touch events after settings StackLayout.TranslateX property设置 StackLayout.TranslateX 属性后接收触摸事件
【发布时间】:2015-07-29 16:18:30
【问题描述】:

我有一个带有 StackLayout 的 ContentView,其中有多个大小为屏幕全宽的子级。换句话说,如果屏幕宽度为 320,并且我有五个孩子,则内部 StackLayout 的大小将调整为 1600。

在这个 ContentView 中,我有 Next 和 Previous 按钮,当单击它们时,会为内部 StackLayout 的 TranslateX 属性设置动画。基本上,我通过在 ContentView 中翻译 StackLayout 来创建一个轮播。我选择这条路线是因为当我修改视图的布局(通过隐藏标签等)时,我在使用 ScrollView 和自定义渲染器时遇到了布局问题

但是,我遇到了一个障碍。设置 TranslateX 属性后出现的内容不会收到任何点击事件。我相信我可能需要重置一些可点击的区域,但我什至不确定从哪里开始。有人有什么建议吗?

【问题讨论】:

    标签: xamarin xamarin.forms


    【解决方案1】:

    我在 Xamarin 的论坛上发布了同样的问题,那里有人回答了。对于任何寻找的人,答案都在这里:https://forums.xamarin.com/discussion/comment/142914/#Comment_142914

    如果该链接在未来某个时候由于某种原因停止工作,则相关答案是:

    命中测试是根据布局确定的控件的实际框架进行的,但翻译发生在布局之后。因此命中测试不考虑翻译。如果你想让一个视图是可触摸的,那么你应该直接更新它的布局而不是使用翻译。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多