情景&要求:
我正在构建<SortableListView>
组件,并且我希望当用户按下列表项的特定子元素时,<ListItem>
只能是可拖动的,例如&#39;拖动手柄&#39;。
我目前的解决方案:
按下拖动手柄时将标志设置为true,并使用该标志确定是否授予平移响应者<ListItem>
以使其可拖动。
onPressIn
已触发。handlePressed
设置为true
。onMoveShouldSetPanResponder
为<ListItem>
,true
的{li> handlePressed
会返回true
,从而使列表项可以拖动。
handlePressed
点false
时,将onPanResponderRelease
设置回<ListItem>
。我的解决方案的问题:
按下拖动手柄和获得onPressIn
的响应之间存在非常明显的延迟。因此,如果我按下并快速离开拖动手柄,则在我的触摸点已经离开拖动手柄后,平移响应者将被授予<ListItem>
。
结果,在我按下拖动手柄后,<ListItem>
不会立即开始跟随我的手势动作。相反,我的触摸点和被拖动的列表项之间会有一个偏移量。如果我按下并等到泛响应者被授予,那么一切正常。