我正在尝试创建一个可以用ReorderableListView重新排序的列表。
我不想显式地显示拖动手柄图标,而只是通过长按来启用拖放,这就是为什么我将buildDefaultDragHandles设置为false。
我用ReorderableDragStartListener Package 列表行,但似乎拖动敏感度太轻-因此,拖动开始根本不需要长按。但当使用ReorderableDelayedDragStartListener来解决这个问题时,它需要长按才能开始拖动。
解决这个问题的唯一方法是让开发人员以毫秒为单位定义什么是触发拖动开始的“长按”,也就是说,用户应该在该行上单击多长时间才能触发长按。
有可能吗?
@override
Widget build(BuildContext context) {
final ColorScheme colorScheme = Theme.of(context).colorScheme;
final Color oddItemColor = colorScheme.primary.withOpacity(0.05);
final Color evenItemColor = colorScheme.primary.withOpacity(0.15);
return ReorderableListView(
buildDefaultDragHandles: false,
children: <Widget>[
for (int index = 0; index < _items.length; index++)
Container(
key: Key('$index'),
child: Row(
children: <Widget>[
Container(
width: MediaQuery.of(context).size.width,
height: 64,
padding: const EdgeInsets.all(8),
child: ReorderableDragStartListener (
index: index,
child: ListTile(
key: Key('$index'),
tileColor: evenItemColor,
title: Text('Item ${_items[index]}'),
),
),
)
],
),
),
],
1条答案
按热度按时间am46iovg1#
使用它ReorderableDelayedDragStartListener