dart 在ReorderableListView中删除拖动时白色/填充

z4bn682m  于 2023-04-03  发布在  其他
关注(0)|答案(2)|浏览(143)

这是this question的后续。当我拖动列表项重新排序时,我得到了一些白色。我如何在保留列表元素之间的EdgeInsets的同时摆脱空白?这就是重新排序项目时白色间距的样子:

这就是我建造脚手架的代码

body:
  Stack(
    children: [
      Positioned(
        child: ReorderableListView.builder(
        buildDefaultDragHandles: false,
          itemCount: widget.cards.length,
          itemBuilder: (context, index) {
            return Dismissible(
              key: Key(widget.cards[index].name),
              onDismissed: (direction) {
                setState(() {});
              },
              child:
              Card(
                margin: EdgeInsets.symmetric(vertical: 4),
                child:
                SizedBox(
                  height: 75,
                  child: ListTile(
                    tileColor: Colors.red.shade200,
                    title: Text(widget.cards[index].name),
                    trailing: ReorderableDragStartListener(
                      index: index,
                      child: const Icon(Icons.drag_handle),
                    ),
                    onTap: (){
                    },
                  ),
                ),
              ),
            );
          },
        ),
      )
  ])
s71maibg

s71maibg1#

Theme小部件 Package ReorderableListView小部件。它将把给定的themeData应用到child
使用属性canvasColor匹配背景的颜色。

示例:

child: Theme(
  data: ThemeData(canvasColor: Colors.grey.shade800),
  child: ReorderableListView.builder(

结果:

eh57zj3b

eh57zj3b2#

这是使用proxyDecoration完成的,返回默认子节点来修复它。
proxyDecorator: (child, index, animation) => child

相关问题