Мне нужно создать полноэкранную таблицу с помощью Flutter.Так как я не смог сделать это с Table
/ DataTable
, я пытаюсь с Flex
/ Expanded
.
Everithing работает, как и ожидалось, но я не могу стиль Expanded
child
, так что, например, кажется, что я не могу установить отступ.
Пока это мой код.
main.dart
:
import 'package:flutter/material.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Flutter Demo',
home: Calendar2(),
);
}
}
calendar2.dart
:
import 'package:flutter/material.dart';
class Calendar2 extends StatefulWidget {
@override
State<StatefulWidget> createState() => _Calendar2State();
}
class _Calendar2State extends State<Calendar2> {
@override
Widget build(BuildContext context) {
List<CalendarRow> tableRows = buildTable();
print(tableRows);
return Scaffold(
body: Flex(
direction: Axis.vertical,
children: tableRows,
)
);
}
List<CalendarRow> buildTable() {
List<CalendarRow> rows = <CalendarRow>[];
for(int i=0; i<4; i++) {
List<Widget> children = [];
for(int j=0; j<7; j++) {
children.add(
CalendarCell(
child: Text((i * 7 + j + 1).toString())
)
);
}
rows.add(
CalendarRow(
children: children
)
);
}
return rows;
}
}
class CalendarCell extends StatelessWidget {
Widget child;
CalendarCell({this.child}) {}
@override
Widget build(BuildContext context) {
return Expanded (
flex: 1,
child: Padding(
child: child,
padding: EdgeInsets.all(0.0), // this doesn't work for top and bottom
)
);
}
}
class CalendarRow extends StatelessWidget {
List<Widget> children = <Widget>[];
CalendarRow({this.children}) {}
@override
Widget build(BuildContext context) {
return Expanded(
flex: 1,
child: Flex(
direction: Axis.horizontal,
children: children
)
);
}
}
Как мне оформить child
внутри Expanded
?