我正在尝试使用以下库实现粘性标头
sticky_header_list 1.0.2
https://pub.dartlang.org/packages/sticky_header_list#-readme-tab-
和列表视图的 Map 对象复选框
Map<String, bool> valuesCarsHdr = {
'Cars': false,
};
Map<String, bool> valuesCars = {
'Car11': false,
'Car12': false,
'Car13': false,
'Car14': false,
'Car15': false,
'Car16': false,
'Car17': false,
'Car18': false,
'Car19': false,
'Car20': false,
'Car21': false,
};
Map<String, bool> valuesHdrHeadlights = {
'Headlights': false,
};
Map<String, bool> valuesHeadlights = {
'Headlights1': false,
'Headlights2': false,
'Headlights3': false,
'Headlights4': false,
'Headlights5': false,
'Headlights6': false,
'Headlights7': false,
'Headlights8': false,
'Headlights9': false,
/...
};
按照说明我尝试了以下内容
@override
Widget build(BuildContext context) {
this.widget.context = context;
final Size screenSize = MediaQuery.of(context).size;
return new Scaffold(
appBar: new AppBar(
title: new Text('Select Items'),
),
body: new Container(
height: screenSize.height,
child: new StickyList(
children: <StickyListRow>[
new HeaderRow(child: _myHeaderCarsRow()),
new RegularRow(child: _myRegularCarsRow()),
new HeaderRow(child: _myHeaderCarsRow()),
new RegularRow(child: _myRegularCarsRow())
],
)));
}
Widget _myHeaderCarsRow()
{
return new ListView(
children: valuesCarsHdr.keys.map((String key) {
return new CheckboxListTile(
title: new Text(key),
value: valuesCarsHdr[key],
onChanged: (bool value) {
setState(() {
valuesCarsHdr[key] = value;
});
},
);
}).toList(),
);
}
Widget _myRegularCarsRow()
{
return new ListView(
children: valuesCars.keys.map((String key) {
return new CheckboxListTile(
title: new Text(key),
value: valuesCars[key],
onChanged: (bool value) {
setState(() {
valuesCars[key] = value;
});
},
);
}).toList(),
);
}
不知道我错过了什么 . 我的Log cat有以下内容
'package:flutter / src / rendering / sliver_multi_box_adaptor.dart':断言失败:第471行第12行:'child.hasSize':不是真的 .
任何帮助是极大的赞赏 . 谢谢 .
1 回答
我想你误解了如何使用这个库 . 下面是我创建列表的方法,您可以将 Headers 和列表视图更改为您想要的内容