【问题标题】:Pass through touch events on React Native在 React Native 上传递触摸事件
【发布时间】:2017-10-18 16:58:33
【问题描述】:

我们构建了一个 React Native 平板电脑信息亭应用程序,该应用程序向前台的用户显示多页输入字段。用户必须填写所有表格并在最后发送。

用户可以随时离开信息亭,这将导致他们的最后一个屏幕成为下一个用户的“欢迎屏幕”。为避免这种情况,如果没有用户交互(屏幕上的任何触摸事件),应用会在一段时间后重置。

现在,我们使用倒计时并在每个输入字段、按钮和背景触摸上重置它。这导致将重置回调传递给许多组件。它可以工作,但它只是很多冗余,很容易导致错误。

有什么办法,我们可以在view的最顶端添加一个overlay,它可以捕获所有的触摸事件并调用reset回调,还可以将触摸事件传递给下面的views?因此,当用户单击按钮时,叠加层会调用其回调,但按钮也会被单击(对于输入字段等也是如此)。

我们也尝试过 Gesture Responder System,但无法让触摸事件通过 - 它总是被带有 Gesture Responder System 的组件消耗。

【问题讨论】:

    标签: react-native touch overlay touch-event


    【解决方案1】:

    您可以尝试将pointerEvents 属性添加到您的View

    【讨论】:

    • 非常感谢您的提示。我必须将pointerEvents 设置为box-none。之后,onTouchStart 回调被调用,点击也由视图的子视图处理。
    • @gtRfnkN 您能否提供有关您找到的最终解决方案的详细信息?我正在尝试做完全相同的事情,如果我在同一视图上将pointerEvents 设置为box-none,则永远不会调用 onTouchStart。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    相关资源
    最近更新 更多