set isChecked(bool value) => _isChecked = value;
CategoryBean({this.name, this.url, this.itemList});
}
class SubCategoryBean {
String name;
String url;
bool _isChecked = false;
SubCategoryBean({this.name, this.url});
bool get isChecked => _isChecked ?? false;
set isChecked(bool value) => _isChecked = value;
}
2. 一级列表
小菜先展示一级列表,可根据使用场景确认是否使用 SliverListView,小菜测试过程中仅采用基本的 ListView;其中单项选择框,小菜采用了之前自定义的 ACECheckbox;其中注意,在 ACECheckbox 点击回调时应注意更改一级实体 Bean 中 isChecked 状态;
return Scaffold(
appBar: AppBar(title: Text(‘分组列表’)),
body: ListView.builder(
itemCount: widget.listData.length,
itemBuilder: (context, index) {
return GroupItemWidget(widget.listData[index]);
}));
class _GroupItemWidgetState extends State {
bool _isExpand = false;
@override
Widget build(BuildContext context) {
return InkWell(
child: Column(children: [
Divider(height: 0.5, color: Colors.blue),
Padding(
padding: EdgeInsets.symmetric(horizontal: 15.0, vertical: 10.0),
child: Row(children: [
Icon(_isExpand ? Icons.arrow_drop_down : Icons.arrow_right, color: Colors.blue),
_userIcon(false),
SizedBox(width: 5.0),
Expanded(child: Text(‘${widget.bean.name}’, style: TextStyle(fontSize: 16.0))),
_righ