react-native - 使用 panResponder 时如何在平面列表中拖放单个项目?
问题描述
我使用 flatList 从数组数据中渲染每个项目。我想拖放每个项目平面列表,所以我使用了 panResponder 和 aminated API。但是当我拖放时,它会同时移动 flatList 中的所有项目。如何仅移动我在其中单击的 1 个项目。
return (
<Animated.View
key={item.index}
{...this.panResponder.panHandlers}
style={this.state.pan.getLayout()}>
<View
key={item.index}
style={[styles.event, {
left: item.left + 50,
height: item.height,
width: item.width,
top: item.top
}]}
>
{this.props.renderEvent ? this.props.renderEvent(item) : (
<TouchableOpacity
activeOpacity={0.5}
onPress={() => this._onEventTapped(this.props.events[item.index])}
>
<Text numberOfLines={1} style={styles.eventTitle}>{item.title || 'Event'}</Text>
{numberOfLines > 1
? <Text
numberOfLines={numberOfLines - 1}
style={[styles.eventSummary]}
>
{item.summary || ' '}
</Text>
: null}
{numberOfLines > 2
? <Text style={styles.eventTimes} numberOfLines={1}>{moment(item.start).format(formatTime)} - {moment(item.end).format(formatTime)}</Text>
: null}
</TouchableOpacity>
)}
</View>
</Animated.View>
)
解决方案
你可以试试这个库:https ://github.com/computerjazz/react-native-draggable-flatlist
它完全符合您的需要。
推荐阅读
- powershell - 处理包含带括号的路径的变量
- c++ - 链接时部分垃圾收集对链接时优化有用吗?
- wpf - 打包和部署 Wpf 应用程序的最佳方式。我无法从命令行使用 Visual Studio 安装程序项目进行构建
- reactjs - 是否可以在“formValueSelector”Redux 表单中传递两个表单名称
- stanford-nlp - ner 标签的解释,特别是 DEMONYM
- r - R合并多个.csv文件并在附加列中保留源csv文件名
- database - 如何存储分成区域的邮政编码
- python - 尝试在 Python 上编写注入安全的 PostgreSQL 查询时出现“Psycopg2.error 列不存在”错误
- c++ - 多个 __m256i 元素的单个位移
- java - 在android中按下导航返回按钮时保留edittext数据