Я пытаюсь создать полную ширину DataTable
в Flutter
с столбцом фиксированной ширины слева и двумя другими столбцами, которые должны разделить оставшиеся с.
Однако, даже если слева текст заголовка усечен, средний и правый столбцы не занимают оставшуюся ширину, как вы можете видеть ниже:
Я также хотел бы оберните текст в ячейку, если он слишком широк для отображения в одной строке, но Wrap
не работает должным образом.
Как я могу решить свои проблемы?
Вот код:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Column(children: [
Expanded(
child: Container(
constraints: BoxConstraints.expand(width: double.infinity),
child: SingleChildScrollView(
child: DataTable(
headingRowHeight: 32,
dataRowHeight: 24,
columns: [
DataColumn(
label: ConstrainedBox(
constraints: BoxConstraints(
maxWidth: 20,
minWidth: 20,
),
child: Text('Short column'),
),
),
DataColumn(label: Text('Long column')),
DataColumn(label: Text('Long column')),
],
rows: [
DataRow(
cells: [
DataCell(
ConstrainedBox(
constraints: BoxConstraints(
maxWidth: 20,
minWidth: 20,
),
child: Text('1'),
),
),
DataCell(
Wrap(
children: [
Text(
"""Some long content i would like to be wrapped when column width is not
enought to fully display it"""),
],
),
),
DataCell(Text('Some more text')),
],
),
DataRow(
cells: [
DataCell(Container(
color: Colors.pink,
child: ConstrainedBox(
constraints: BoxConstraints(
maxWidth: 20,
minWidth: 20,
),
child: Text('2'),
),
)),
DataCell(
Wrap(
children: [
Container(
color: Colors.yellow,
child: Text(
"""Some long content i would like to be wrapped when column width is not
enought to fully display it""")),
],
),
),
DataCell(Text('Some more text')),
],
)
]),
),
),
),
]),
),
);
}
}
EDIT
Спасибо @awaik за ответ, но в вашем примере таблица не занимает всю ширину устройства , он остается посередине с большим экраном, чего я не хотел.
Кроме того, высота строки постоянна, она не увеличивается, если содержание требует большей высоты.
Есть ли что-нибудь, что можно сделать?