refactor: 重构提醒通知系统
This commit is contained in:
@@ -106,12 +106,20 @@ class DayEventLayoutEngine {
|
||||
final clusterColumnCount =
|
||||
cluster.map((item) => item.column).reduce((a, b) => a > b ? a : b) +
|
||||
1;
|
||||
final totalGap = (clusterColumnCount - 1) * columnGap;
|
||||
final columnWidth = clusterColumnCount > 0
|
||||
? ((eventAreaWidth - totalGap) / clusterColumnCount).toDouble()
|
||||
final maxVisibleColumns =
|
||||
((eventAreaWidth + columnGap) /
|
||||
(DayTimelineMetrics.minEventCardWidth + columnGap))
|
||||
.floor()
|
||||
.clamp(1, clusterColumnCount);
|
||||
final totalGap = (maxVisibleColumns - 1) * columnGap;
|
||||
final columnWidth = maxVisibleColumns > 0
|
||||
? (eventAreaWidth - totalGap) / maxVisibleColumns
|
||||
: eventAreaWidth;
|
||||
|
||||
for (final item in cluster) {
|
||||
if (item.column >= maxVisibleColumns) {
|
||||
continue;
|
||||
}
|
||||
final top = scale.pixelsForMinutes(item.startMinutes);
|
||||
final geometryHeight = scale.pixelsForMinutes(
|
||||
item.endMinutes - item.startMinutes,
|
||||
@@ -125,7 +133,7 @@ class DayEventLayoutEngine {
|
||||
startMinutes: item.startMinutes,
|
||||
endMinutes: item.endMinutes,
|
||||
column: item.column,
|
||||
columnCount: clusterColumnCount,
|
||||
columnCount: maxVisibleColumns,
|
||||
top: top,
|
||||
geometryHeight: geometryHeight,
|
||||
visualHeight: visualHeight,
|
||||
|
||||
@@ -9,6 +9,7 @@ class DayTimelineMetrics {
|
||||
static const double timeLabelGap = 8;
|
||||
static const double eventRightInset = 4;
|
||||
static const double eventColumnGap = 4;
|
||||
static const double minEventCardWidth = 30;
|
||||
|
||||
static double timelineHeight(DayViewScale scale) {
|
||||
return scale.pixelsForMinutes(minutesInDay);
|
||||
@@ -20,10 +21,10 @@ class DayTimelineMetrics {
|
||||
|
||||
static double eventAreaWidth(double boardWidth) {
|
||||
final width = boardWidth - eventAreaLeft() - eventRightInset;
|
||||
return width > 0 ? width : 0;
|
||||
return width < 0 ? 0 : width;
|
||||
}
|
||||
|
||||
static int clampMinuteOfDay(int minute) {
|
||||
return minute.clamp(0, minutesInDay).toInt();
|
||||
return minute.clamp(0, minutesInDay);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user