- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
有人可以启动一个快速的 flutter 项目并将 main.dart 替换为以下内容,看看我做错了什么吗?我正在尝试在 ListView 中进行拖放操作。
我什至不确定这是正确的方法,所以如果不正确,请告诉我。
我现在得到的错误是:
另一个异常被抛出:'package:flutter/src/rendering/box.dart': Failed assertion: line 1446 pos 12: 'hasSize': is not true.
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 Material(child:
new ListTile(
leading: new Icon(Icons.photo),
title: new Text('Row 1'),
trailing: new Icon(Icons.reorder),
));
var tile2 = new Material(
child:
new ListTile(
leading: new Icon(Icons.photo),
title: new Text('Row 2'),
trailing: new Icon(Icons.reorder),
));
return new MaterialApp(
title: title,
home: new Scaffold(
appBar: new AppBar(
title: new Text(title),
),
body:
new GestureDetector(
onVerticalDragStart: startDrag,
onVerticalDragEnd: endDrag,
child: new ListView(
shrinkWrap: true,
children: [
new Flex (
children: <Widget>[
new Flexible(
child: new Draggable(child: tile1, feedback:
tile1),
),
new Flexible(
child: new Draggable(child: tile2, feedback:
tile2),
),
],
direction: Axis.vertical,
mainAxisAlignment: MainAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
),
],
),
),
),
);
}
void startDrag(DragStartDetails event) {}
void endDrag(DragEndDetails event) {}
}
谢谢
最佳答案
在@Darky 的帮助下解决了 hasSize 问题,这是完成的可排序 ListView 示例:
https://github.com/marchampson/FluterSortableListView
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatefulWidget {
@override
MyAppState createState() => new MyAppState();
}
class MyAppState extends State<MyApp> {
List<String> rows = new List<String>()
..add('Row 1')
..add('Row 2')
..add('Row 3')
..add('Row 4');
void _handleAccept(int data, int index) {
setState(() {
String imageToMove = rows[data];
rows.removeAt(data);
rows.insert(index, imageToMove);
});
}
@override
Widget build(BuildContext context) {
final title = 'Sortable ListView';
return new MaterialApp(
title: title,
home: new Scaffold(
appBar: new AppBar(
title: new Text(title),
),
body:
new LayoutBuilder(builder: (context, constraint) {
return new ListView.builder(
itemCount: rows.length,
addRepaintBoundaries: true,
itemBuilder: (context, index) {
return new LongPressDraggable(
key: new ObjectKey(index),
data: index,
child: new DragTarget<int>(
onAccept: (int data) {
_handleAccept(data, index);
},
builder: (BuildContext context, List<int> data, List<dynamic> rejects) {
return new Card(
child: new Column(
children: <Widget>[
new ListTile(
leading: new Icon(Icons.photo),
title: new Text(rows[index])
),
],
)
);
},
onLeave: (int data) {
// Debug
print('$data is Leaving row $index');
},
onWillAccept: (int data) {
// Debug
print('$index will accept row $data');
return true;
},
),
onDragStarted: () {
Scaffold.of(context).showSnackBar(new SnackBar (
content: new Text("Drag the row onto another row to change places"),
));
},
onDragCompleted: () {
print("Finished");
},
feedback: new SizedBox(
width: constraint.maxWidth,
child: new Card (
child: new Column(
children: <Widget>[
new ListTile(
leading: new Icon(Icons.photo),
title: new Text(rows[index]),
trailing: new Icon(Icons.reorder),
),
],
),
elevation: 18.0,
)
),
childWhenDragging: new Container(),
);
},
);
}),
),
);
}
}
关于dart - Flutter 拖放 ListView hasSize 不是真的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49369147/
当我将容器包装在列小部件中时出现错误。我在一列中需要 2 个容器,但是当我将它包装在列小部件中时,它显示此错误 'package:flutter/src/rendering/box.dart': Fa
有人可以启动一个快速的 flutter 项目并将 main.dart 替换为以下内容,看看我做错了什么吗?我正在尝试在 ListView 中进行拖放操作。 我什至不确定这是正确的方法,所以如果不正确,
我使用 Mockito 和 Hamcrest 在 Java 中进行单元测试。 我经常使用 Hamcrests hasSize断言某些集合具有一定的大小。几分钟前,我正在编写一个测试,捕获 List的调
我正尝试在 Spring MVC Controller 中实现一个方法的单元测试,如下所示: @Test public void testGetProfile() { Person mockP
我是 Flutter 的新手。我正在使用底部导航 View 。在 仪表板 类,有底部导航。底部导航第一个是首页 具有选项卡 View 的类。 tabview的第一页是新请求 类(class)。当应用程
我是 Flutter 新手,我正在开发一个电子商务网站,我想在我的欢迎页面中添加一个 Grid 来显示最近的产品,我正在尝试使用 GridVeiw.builder,但出现错误 Failed asser
我无法修复此错误 RenderBox was not laid out: RenderPointerListener#2b92arelayoutBoundary=up9 NEEDS-PAINT NEE
我在 flutter 中有以下代码。 Widget build(BuildContext context) { return Center( child: Card(
我是一名优秀的程序员,十分优秀!