动态组件,页面可变化 使用 setState(() {});
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| class MyStfWidget extends StatefulWidget implements PageRouterProtocol { @override final Map arguments; MyStfWidget({Key key, this.arguments}) : super(key: key);
@override _MyStfWidgetState createState() => _MyStfWidgetState(arguments); }
class _MyStfWidgetState extends State<MyStfWidget> { final Map arguments;
List dataList = [];
_MyStfWidgetState(this.arguments); addData() { List singleList = List(); for (var i = 0; i < 20; i++) { singleList.add('增加数据了'); }
this.dataList.addAll(singleList); }
@override Widget build(BuildContext context) { RaisedButton addBtn = RaisedButton( child: Text('加载更多'), onPressed: () { setState(() { this.addData(); }); });
return Scaffold( appBar: AppBar( title: Text(arguments['title'] ?? '默认标题'), ), body: ListView.builder( itemCount: dataList.length + 1, itemBuilder: (BuildContext context, int index) { if (index == 0) { return addBtn; }
return Text('data $index'); }, ), ); } }
|