我试图列出用户可以通过拖放手势重新排序的芯片列表, 这是您可以执行以查看问题的示例代码, 据说,芯片类需要一个材料祖先,那么对此有什么解决方案?必须一直用芯片包裹芯片吗?
错误:
构建Chip(dirty)时引发了以下断言: 找不到材料小部件。 芯片小部件需要“材料”小部件祖先。
代码:
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Wrap(
direction: Axis.horizontal,
children: List.generate(_counter, (i) {
var chip = Chip(
backgroundColor: Colors.blue,
label: Text('item ${i}'),
);
return Draggable(
child: chip,
feedback: chip,
childWhenDragging: Container(),
);
}),
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: Icon(Icons.add),
), // This trailing comma makes auto-formatting nicer for build methods.
);
}
注意:我已经修改了默认点击计数模板以演示我的问题
答案 0 :(得分:1)
您可以将其包装在FloatingActionButton中。
var chip = FloatingActionButton(
child: Chip(
backgroundColor: Colors.blue,
label: Text('item $i'),
),
);
希望有帮助!
答案 1 :(得分:0)
我遇到了同样的问题。您不能在可拖动的反馈中使用筹码。我要做的是,将芯片包裹在透明背景材料中。透明的背景有助于消除从“材质”小部件中添加的多余样式。
feedback: Material(
color: Colors.transparent,
child: Chip(
// your code for the Chip
)
)