React-Native - 仅在按下组件的子项时才使组件可拖动?

时间:2016-03-25 07:10:29

标签: javascript react-native

情景&要求:

我正在构建<SortableListView>组件,并且我希望当用户按下列表项的特定子元素时,<ListItem>只能是可拖动的,例如&#39;拖动手柄&#39;。

enter image description here

我目前的解决方案:

按下拖动手柄时将标志设置为true,并使用该标志确定是否授予平移响应者<ListItem>以使其可拖动。

  1. 拖动句柄onPressIn已触发。
  2. 将var handlePressed设置为true
  3. 如果onMoveShouldSetPanResponder<ListItem>true的{​​li> handlePressed会返回true,从而使列表项可以拖动。
  4. handlePressedfalse时,将onPanResponderRelease设置回<ListItem>
  5. 我的解决方案的问题:

    按下拖动手柄和获得onPressIn的响应之间存在非常明显的延迟。因此,如果我按下并快速离开拖动手柄,则在我的触摸点已经离开拖动手柄后,平移响应者将被授予<ListItem>

    结果,在我按下拖动手柄后,<ListItem>不会立即开始跟随我的手势动作。相反,我的触摸点和被拖动的列表项之间会有一个偏移量。如果我按下并等到泛响应者被授予,那么一切正常。

    enter image description here

0 个答案:

没有答案