1-我正在编写一个代码,该代码创建一个图表并生成两个变量之间的关系。 2-但我无法将数据存储在 TextEditingController 的列表中
class _HomePageState extends State<HomePage> {
// final firstnameController = TextEditingController();
TextEditingController value1 =TextEditingController();
TextEditingController value2 =TextEditingController();
List<Acceleration> data = [
Acceleration('1', value1 ),
Acceleration('2', value2),
Acceleration('3', 40),
Acceleration('4', 30),
Acceleration('5', 20),
Acceleration('june', 33),
Acceleration('july', 22),
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("Line Chart speadTimeRelation"),
centerTitle: true,
backgroundColor: Colors.green[700],
// brightness: Brightness.dark,
),
body: GetBuilder<HomeControler>(
init: HomeControler(),
builder: (controller) {
return Column(
children: [
TextFormField(
controller: value1,
),
Container(
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 20),
child: SfCartesianChart(
primaryXAxis:const CategoryAxis(),
title:const ChartTitle(text: 'speadTimeRelation Analysis'),
legend: const Legend(isVisible: true,),
tooltipBehavior: TooltipBehavior(enable: true),
series: <LineSeries<Acceleration, String>>[
LineSeries<Acceleration, String>(
dataSource: data,
xValueMapper: (Acceleration speadTimeRelation, _) => speadTimeRelation.time,
yValueMapper: (Acceleration speadTimeRelation, _) => speadTimeRelation.spead,
name: 'speadTimeRelation',
dataLabelSettings: const DataLabelSettings(isVisible: true),
),
],
),
),
],
);
}
),
);
}
}
class Acceleration{
final String time;
final double spead;
Acceleration(this.time, this.spead);
}
class _HomePageState extends State<HomePage> {
// final firstnameController = TextEditingController();
TextEditingController value1 = TextEditingController(text: '0.0'); // initialize a value, 0.0 because Acceleration variable Spead type is double
TextEditingController value2 = TextEditingController(text: '0.0');
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("Line Chart speadTimeRelation"),
centerTitle: true,
backgroundColor: Colors.green[700],
// brightness: Brightness.dark,
),
body: GetBuilder<HomeControler>(
init: HomeControler(),
builder: (controller) {
return Column(
children: [
TextField( // use TextField then TextFormField, because you don't use a form
controller: value1,
onChanged: (valueFromController1) {
setState(() { // setState to rebuild the widget and update the chart
value1.text = valueFromController1;
});
},
),
Container(
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 20),
child: SfCartesianChart(
primaryXAxis:const CategoryAxis(),
title:const ChartTitle(text: 'speadTimeRelation Analysis'),
legend: const Legend(isVisible: true,),
tooltipBehavior: TooltipBehavior(enable: true),
series: <LineSeries<Acceleration, String>>[
LineSeries<Acceleration, String>(
dataSource: [
Acceleration('1', double.tryParse(value1.text)),
Acceleration('2', double.tryParse(value2.text)),
Acceleration('3', 40),
Acceleration('4', 30),
Acceleration('5', 20),
Acceleration('june', 33),
Acceleration('july', 22),
],
xValueMapper: (Acceleration speadTimeRelation, _) => speadTimeRelation.time,
yValueMapper: (Acceleration speadTimeRelation, _) => speadTimeRelation.spead,
name: 'speadTimeRelation',
dataLabelSettings: const DataLabelSettings(isVisible: true),
),
],
),
),
],
);
}
),
);
}
}
class Acceleration{
final String time;
final double spead;
Acceleration(this.time, this.spead);
}