拖放芯片小部件

时间:2019-04-16 10:56:36

标签: flutter material-ui draggable

我试图列出用户可以通过拖放手势重新排序的芯片列表, 这是您可以执行以查看问题的示例代码, 据说,芯片类需要一个材料祖先,那么对此有什么解决方案?必须一直用芯片包裹芯片吗?

错误:

  

构建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.
    );
  }

注意:我已经修改了默认点击计数模板以演示我的问题

2 个答案:

答案 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
   )
 )