Dart 颤振-如何实现带有粘性标题的复选框?
我试图用以下库实现粘性头 粘性标题列表1.0.2 和列表视图复选框的映射对象Dart 颤振-如何实现带有粘性标题的复选框?,dart,flutter,flutter-dependencies,Dart,Flutter,Flutter Dependencies,我试图用以下库实现粘性头 粘性标题列表1.0.2 和列表视图复选框的映射对象 Map<String, bool> valuesCarsHdr = { 'Cars': false, }; Map<String, bool> valuesCars = { 'Car11': false, 'Car12': false, 'Car13': false, 'Car14': false, 'Car15': false,
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,
/...
};
Map valuesCarsHdr={
"车":假,,
};
映射值scars={
“Car11”:假,
“Car12”:错误,
“Car13”:错误,
“Car14”:错误,
“Car15”:错误,
“Car16”:错误,
“Car17”:错误,
“Car18”:错误,
“Car19”:错误,
“Car20”:假,
“Car21”:错误,
};
地图值shdr前照灯={
“头灯”:错误,
};
地图值辅助照明={
“头灯1”:错误,
“头灯2”:错误,
“头灯3”:错误,
“头灯4”:错误,
“头灯5”:错误,
“头灯6”:错误,
“头灯7”:错误,
“头灯8”:错误,
“头灯9”:错误,
/...
};
根据指示,我尝试了以下方法
@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(),
);
}
@覆盖
小部件构建(构建上下文){
this.widget.context=上下文;
最终大小screenSize=MediaQuery.of(context.Size);
归还新脚手架(
appBar:新的appBar(
标题:新文本(“选择项”),
),
主体:新容器(
高度:屏幕大小。高度,
子:新的粘滞列表(
儿童:[
新HeaderRow(子项:_myHeaderCarsRow()),
新RegularRow(子项:_myRegularCarsRow()),
新HeaderRow(子项:_myHeaderCarsRow()),
新建RegularRow(子项:\u myRegularCarsRow())
],
)));
}
Widget_myHeaderCarsRow()
{
返回新的ListView(
子项:valuesCarsHdr.keys.map((字符串键){
返回新的CheckboxListTile(
标题:新文本(关键),
值:valuesCarsHdr[key],
一旦更改:(布尔值){
设置状态(){
valuesCarsHdr[key]=值;
});
},
);
}).toList(),
);
}
Widget_myRegularCarsRow()
{
返回新的ListView(
子项:valuesCars.keys.map((字符串键){
返回新的CheckboxListTile(
标题:新文本(关键),
值:值标记[键],
一旦更改:(布尔值){
设置状态(){
valuesCars[键]=值;
});
},
);
}).toList(),
);
}
不知道我错过了什么。我的原木猫有以下几点
“package:flatter/src/rendering/sliver\u multi\u box\u adapter.dart”:失败的断言:第471行第12位:“child.hasSize”:不正确
非常感谢您的帮助。谢谢。我想你误解了如何使用图书馆。下面是我如何创建列表的,您可以根据需要更改标题和列表视图
导入“包装:颤振/材料.省道”;
导入“package:sticky_header_list/sticky_header_list.dart”;
void main()=>runApp(新材料应用(
主页:新建MyApp(),
));
类MyApp扩展了StatefulWidget{
@凌驾
状态createState(){
返回新的MyAppState();
}
}
类MyAppState扩展了状态{
映射值SCARSHDR={
"车":假,,
};
映射值scars={
“Car11”:假,
“Car12”:错误,
“Car13”:错误,
“Car14”:错误,
“Car15”:错误,
“Car16”:错误,
“Car17”:错误,
“Car18”:错误,
“Car19”:错误,
“Car20”:假,
“Car21”:错误,
};
地图值shdr前照灯={
“头灯”:错误,
};
地图值辅助照明={
“头灯1”:错误,
“头灯2”:错误,
“头灯3”:错误,
“头灯4”:错误,
“头灯5”:错误,
“头灯6”:错误,
“头灯7”:错误,
“头灯8”:错误,
“头灯9”:错误,
};
@凌驾
小部件构建(构建上下文){
//this.widget.context=上下文;
最终大小screenSize=MediaQuery.of(context.Size);
归还新脚手架(
appBar:新的appBar(
标题:新文本(“选择项”),
),
主体:新容器(
子:新的粘滞列表(
儿童:[
新HeaderRow(子项:_myHeaderCarsRow(1)),
新RegularRow(子项:_myRegularCarsRow()),
新校长(子女:_myHeaderCarsRow(2)),
新建RegularRow(子项:\u myRegularCarsRow())
],
)));
}
Widget_myHeaderCarsRow(索引){
返回新行(
子项:[新文本(“标题$index”)],
);
}
Widget_myRegularCarsRow(){
返回新列(
子项:getRegularWidgets(),
);
}
列出getRegularWidgets(){
列表小部件=valuesCars.keys.map((键){
返回新的CheckboxListTile(
标题:新文本(关键),
值:值标记[键],
一旦更改:(布尔值){
设置状态(){
valuesCarsHdr[key]=值;
});
});
}).toList();
返回窗口小部件;
}
}
谢谢您的帮助。但是,此解决方案禁用复选框。复选框显示但不起作用。