解决点击CheckBox选中所有的CheckBox问题
import 'package:flutter/material.dart';
import 'package:toast/toast.dart';
import 'package:flutter_refresh/flutter_refresh.dart';
class Person{
String title;
String content;
Person(this.title, this.content);
}
class MainList extends StatefulWidget{
@override
State<StatefulWidget> createState() {
return MainListSate();
}
}
class MainListSate extends State<MainList>{
final List<Person> list = List() ;
bool _isCheck = false;
List<bool> _isChecks = List();
Future<Null> onFooterRefresh() {
return new Future.delayed(new Duration(seconds: 2), () {
setState(() {
// _itemCount += 10;
});
});
}
Future<Null> onHeaderRefresh() {
return new Future.delayed(new Duration(seconds: 2), () {
setState(() {
// _itemCount = 10;
});
});
}
@override
void initState() {
for(int i=0;i<20;i++){
list.add(Person('标题$i', '内容$i'));
_isChecks.add(false);
}
print(_isChecks);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
elevation: 0.0,
title: Text('我是主界面'),
),
body: Refresh(
onFooterRefresh: onFooterRefresh,
onHeaderRefresh: onHeaderRefresh,
child: ListView.builder(
itemCount: list.length,
itemBuilder: (context,index){
return Column(
children: <Widget>[
GestureDetector(
child: Container(
height: 50.0,
padding: EdgeInsets.only(left: 20.0),
width: 360.0,
child: Row(
children: <Widget>[
Expanded(child: Text(list[index].content)),
Checkbox(
activeColor: Colors.blue,//激活时的颜色
value: _isChecks[index],
onChanged: (bool val){
setState(() {
_isChecks[index] = val;
});
}),
],
),
// child: Text(list[index].content),
),
onTap: (){
Toast.show('点击了:${index}', context,duration: 2,gravity: 0);
},
),
Divider(),
],
);
},
),
)
//
);
}
}