Как выделить соответствующую строку с данными на основе задачи в флаттере?
После извлечения данных из базы данных я получаю следующий динамический список dynamic k = [['034735013-1','SOR0004079','STRIPE12-001-00',239659,20220407112442,105.0, 34.0, 32.0],['034735013 -2", "SOR0004079", "ПОЛОСА12-001-00", 239659,20220407112442,105.0, 34.0, 32.0 ],['034735013-3', "SOR0004079", "ПОЛОСКА12-001-00", 42966 105,0, 34,0, 32,0 ],];
Теперь я должен отобразить его в таблице данных флаттера. поэтому я сделал следующий код ''' import 'package:flutter/material.dart'; импортировать 'пакет: флаттер/services.dart';
void main() {
runApp(MaterialApp(
home: MyApp(),
));
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
var myList = [];
dynamic k = [
[
'034735013-1',
'SOR0004079',
'STRIPE12-001-00',
239659,
20220407112442,
105.0,
34.0,
32.0
],
[
'034735013-2',
'SOR0004079',
'STRIPE12-001-00',
239659,
20220407112442,
105.0,
34.0,
32.0
],
[
'034735013-3',
'SOR0004079',
'STRIPE12-001-00',
239659,
20220407112442,
105.0,
34.0,
32.0
],
];
@override
void initState() {
super.initState();
SystemChrome.setPreferredOrientations([
DeviceOrientation.landscapeRight,
DeviceOrientation.landscapeLeft,
]);
}
@override
dispose() {
SystemChrome.setPreferredOrientations([
DeviceOrientation.landscapeRight,
DeviceOrientation.landscapeLeft,
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
]);
super.dispose();
}
@override
Widget build(BuildContext context) {
int stat = 0;
final MaterialStateProperty<Color?>? dataRowColor;
return Scaffold(
appBar: AppBar(title: const Text('Data Table')),
body: SingleChildScrollView(
child: Column(
children: [
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: DataTable(
// headingRowColor: MaterialStateColor.resolveWith(
// (states) => Colors.red.shade200),
columns: [
DataColumn(label: Text('srlid')),
DataColumn(label: Text('sorderno')),
DataColumn(label: Text('Description')),
DataColumn(label: Text('serialID')),
DataColumn(label: Text('pklno')),
DataColumn(label: Text('quantity')),
DataColumn(label: Text('grosswgt')),
DataColumn(label: Text('netwgt')),
],
rows: k
.map<DataRow>(
(e) => DataRow(cells: [
DataCell(Text(e[0].toString()), onTap: () {
print(e[0].toString());
}),
DataCell(Text(e[1].toString())),
DataCell(Text(e[2].toString())),
DataCell(Text(e[3].toString())),
DataCell(Text(e[4].toString())),
DataCell(Text(e[5].toString())),
DataCell(Text(e[6].toString())),
DataCell(Text(e[7].toString())),
]),
)
.toList())),
],
),
));
}
}'''
Я перечислил данные, но теперь мне нужно выделить выбранную строку при сканировании штрих-кода. штрих-код содержит srlid , на основе которого я должен выделить строку. Я планировал сканировать штрих-код при нажатии кнопки. но я не знаю, как выделить только выбранную строку. Пожалуйста, помогите мне.