Я делаю собственный виджет для отображения еженедельного расписания. Я хочу, чтобы это выглядело как обычная таблица с днями в заголовке и временем дня на вертикальной оси. Затем я хочу добавить события в календарь, но так как событие может охватывать несколько ячеек, я не могу использовать встроенную таблицу (она не имеет столбцов / строк).
Итак, я начал создавать свою собственную таблицу, используя CustomPaint. Все шло нормально, пока я не пришел к заголовочной части, которая застряла на макете с моей идеей. В приведенном мною коде видно, что заголовок будет иметь такую же ширину, что и боковая панель (со временем) и WeekView (таблица CustomPaint). Это означает, что я понятия не имею, как выровнять заголовок (понедельник, вторник и т. Д.) С сеткой в WeekView, поскольку пространство, занимаемое боковой панелью, неизвестно. И поскольку я хочу, чтобы боковая панель прокручивалась вместе со столом, она должна быть внутри прокрутки. Могу ли я решить это любым другим способом? Может быть, со щепками (о которых я еще очень мало знаю)?
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
WeekSelector(
week: controller.week,
onPrevPressed: onPrevPressed,
onNextPressed: onNextPressed,
),
WeekHeader(),
Expanded(
child: SingleChildScrollView(
scrollDirection: Axis.vertical,
child: Container(
child: Row(
children: <Widget>[
Text("09:00"), // here will be a bar for the time
Expanded(
child: WeekView(
startHour: 9,
endHour: 18,
),
),
],
),
),
),
),
],
);
}