добавление заметок в таблицу данных flutter

#flutter #dart #datatable

#flutter #dart #datatable

Вопрос:

У меня есть приложение flutter, и у меня есть Datatable в нем,

Я заставляю пользователя выбирать какой-либо продукт и помещать эти продукты в эту таблицу данных,,

это отлично работает!

но если пользователь добавляет какое-либо примечание к одному продукту, могу ли я поместить это примечание в одну строку под продуктом и заполнить таблицу?

базовая таблица здесь :

https://i.stack.imgur.com/1hUcS.jpg

это мой код :

  Widget DATATABLE() {
return DataTable(
  columns: [
    DataColumn(label: FittedBox(child: Text(arabic('Product')))),
    DataColumn(label: FittedBox(child: Text(arabic('Price')))),
    DataColumn(label: FittedBox(child: Text(arabic('Quantity')))),
    DataColumn(label: FittedBox(child: Text(arabic('Total')))),
  ],
  rows: [
    DataRow(cells: [
      DataCell( FittedBox(child: Text('{element.name}'))), //product name
      DataCell(FittedBox(child: Text('{element.unitPrice}'))), // product price
      DataCell(FittedBox(child: Text('{element.quantity}'))), // product quantity
      DataCell(FittedBox(child: Text('{element.unitPrice * element.quantity}'))),
    ]) ,
    DataRow(cells: [
      DataCell( FittedBox(child: Text('{element.name}'))), //product name
      DataCell(FittedBox(child: Text('{element.unitPrice}'))), // product price
      DataCell(FittedBox(child: Text('{element.quantity}'))), // product quantity
      DataCell(FittedBox(child: Text('{element.unitPrice * element.quantity}'))),
    ]) ,
    DataRow(cells: [
      DataCell( FittedBox(child: Text('{element.name}'))), //product name
      DataCell(FittedBox(child: Text('{element.unitPrice}'))), // product price
      DataCell(FittedBox(child: Text('{element.quantity}'))), // product quantity
      DataCell(FittedBox(child: Text('{element.unitPrice * element.quantity}'))),
    ]) 
  ],
  sortColumnIndex: 0,
  sortAscending: true,
);
 

}

как я могу добавить заметку под продуктом, например :

https://i.stack.imgur.com/lGyWh.jpg

Ответ №1:

 Widget DATATABLE() {

  return DataTable(
    columns: [
      DataColumn(label: FittedBox(child: Text(arabic('Product')))),
      DataColumn(label: FittedBox(child: Text(arabic('Price')))),
      DataColumn(label: FittedBox(child: Text(arabic('Quantity')))),
      DataColumn(label: FittedBox(child: Text(arabic('Total')))),
    ],
    rows: [
      DataRow(cells: [
        DataCell( Column (
          children: [
            FittedBox(child: Text('{element.name}')),
            FittedBox(child: Text('Note --------------------------------------')),
          ],
        )), //product name
        DataCell(FittedBox(child: Text('{element.unitPrice}'))), // product price
        DataCell(FittedBox(child: Text('{element.quantity}'))), // product quantity
        DataCell(FittedBox(child: Text('{element.unitPrice * element.quantity}'))),

      ] ) ,

      DataRow(cells: [
        DataCell( FittedBox(child: Text('{element.name}'))), //product name
        DataCell(FittedBox(child: Text('{element.unitPrice}'))), // product price
        DataCell(FittedBox(child: Text('{element.quantity}'))), // product quantity
        DataCell(FittedBox(child: Text('{element.unitPrice * element.quantity}'))),
      ]) ,
      DataRow(cells: [
        DataCell( FittedBox(child: Text('{element.name}'))), //product name
        DataCell(FittedBox(child: Text('{element.unitPrice}'))), // product price
        DataCell(FittedBox(child: Text('{element.quantity}'))), // product quantity
        DataCell(FittedBox(child: Text('{element.unitPrice * element.quantity}'))),
      ])
    ],
    sortColumnIndex: 0,
    sortAscending: true,
  );}
 

Сделайте необходимые выравнивания по тексту.

Комментарии:

1. это не работает, потому что «‘Примечание —————————————‘» помещенный в первую ячейку в ряду, янужно выделить всю строку в одной ячейке и поместить в нее заметку,

2. Если вы хотите, чтобы это было так, лучше использовать виджет таблицы, а не виджет с данными. Вы можете изменять ячейки так, как хотите..