flutter - 从表格中获取单元格值 - 颤动
问题描述
我从导入的 CSV 文件创建了一个表,我已将此表设置为隐藏,因为我不希望用户实际看到该表。
我还创建了一个自定义小部件,可以在我的应用程序中多次重复使用,它只是一个显示一些文本的容器。这是表格的代码:
import 'package:flutter/material.dart';
import 'package:csv/csv.dart';
import 'package:flutter/services.dart' show rootBundle;
class RouteNameTable extends StatefulWidget {
const RouteNameTable({Key key}) : super(key: key);
@override
_RouteNameTableState createState() => _RouteNameTableState();
}
class _RouteNameTableState extends State<RouteNameTable> {
List<List<dynamic>> data = [];
void loadAsset() async {
final myData = await rootBundle.loadString("assets/routes.csv");
List<List<dynamic>> csvTable = const CsvToListConverter().convert(myData);
data = csvTable;
setState(() {});
}
@override
void initState() {
super.initState();
loadAsset();
}
@override
Widget build(BuildContext context) {
return Visibility(
visible: false,
child: SingleChildScrollView(
child: Table(
border: TableBorder.all(width: 1.0),
children: data.map((item) {
return TableRow(
children: item.map((row) {
return Container(
color: Colors.blueGrey,
child: Padding(
padding: const EdgeInsets.all(1.0),
child: Text(
row.toString(),
style: const TextStyle(fontSize: 20.0),
),
),
);
}).toList());
}).toList(),
),
),
);
}
}
我创建的自定义小部件只是一个显示数字、名称和颜色的容器。插入小部件时,我使用以下代码
const RouteTemplate(
routeNumber: '33',
routeName: 'Corstorphine - Caversham - City - Wakari',
routeColor: Color(0xFFF067A6),
),
这可以正常工作。但是,我想做的是用我创建的表中的数据替换我输入的文本(例如“33”)。它仍然会说 33,但不是我输入它,而是检索第二行中的第一列为routeNumber
,第二行中的第二列为routeName
,依此类推。我希望这样,因为 CSV 文件可能会更改,而不必添加/删除/更改路由号,一旦添加了新的 CSV 文件,它将自动执行。
谢谢