在没有任何用于拖放列表视图的说明书示例的情况下,我正在尝试创建自己的示例,但是当尝试拖动一行时,我收到错误:找不到材料小部件。我尝试将 ListTiles 包装在容器中,但似乎总是收到相同的错误。
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
final title = 'Basic List';
var tile1 = new ListTile(
leading: new Icon(Icons.photo),
title: new Text('Row 1'),
);
var tile2 = new ListTile(
leading: new Icon(Icons.photo),
title: new Text('Row 2'),
);
var tile3 = new ListTile(
leading: new Icon(Icons.photo),
title: new Text('Row 3'),
);
return new MaterialApp(
title: title,
home: new Scaffold(
appBar: new AppBar(
title: new Text(title),
),
body: new ListView(
children: [
new Draggable(child: tile1, feedback: tile1),
new Draggable(child: tile2, feedback: tile2),
new Draggable(child: tile3, feedback: tile3),
],
),
),
);
}
}
也许不是最好的解决方案,但它适合我
Draggable(
axis: Axis.vertical,
maxSimultaneousDrags: 1,
child: tile,
childWhenDragging: Opacity(
opacity: 0.5,
child: tile,
),
feedback: Material(
child: ConstrainedBox(
constraints:
BoxConstraints(maxWidth: MediaQuery.of(context).size.width),
child: tile,
),
elevation: 4.0,
),
我已经用屏幕尺寸的宽度包裹了ConstrainedBox
瓷砖。