作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 flutter 新手,向 table_calendar 学习示例代码,我正在尝试修改“Widget _buildTableCalendarWithBuilders”,以便它可以打印具有不同颜色的多个标记,有人可以告诉我正确的方法吗?
我需要的结果是当在字符串中找到“Apple”时,打印一个红点。当在字符串中找到 'Orange' 时,打印一个黑点,如果两者都存在,则日期框应该有红点和黑点。
下面是我的代码
markersBuilder: (context, date, events, holidays) {
final children = <Widget>[];
String checkString = events.toString();
if (checkString.contains('Apple')) {
children.add(
Positioned(
right: 1,
bottom: 1,
child: _buildEventsMarker2(date, events, Colors.red),
),
);
}
if (checkString.contains('Orange')) {
children.add(
Positioned(
right: 1,
bottom: 1,
child: _buildEventsMarker2(date, events, Colors.black),
),
);
}
if (holidays.isNotEmpty) {
children.add(
Positioned(
right: -2,
top: -2,
child: _buildHolidaysMarker(),
),
);
}
return children;
}
Widget _buildEventsMarker2(DateTime date, List events, markerColors) {
return AnimatedContainer(
duration: const Duration(milliseconds: 300),
decoration: BoxDecoration(
shape: BoxShape.circle,
color: markerColors,
),
width: 10.0,
height: 10.0,
);
}
最佳答案
我找到了两种改变标记颜色的方法。
第一个由 fabianogadenz 在这里回答:github link
第二种方式,我想在选择有事件的一天时切换标记颜色。所以我将 selectedDay 存储在一个变量中:
DateTime? selectedDay;
TableCalendar(
onDaySelected: (a, b) {
setState(() {
selectedDay = a;
});
},
)
然后我只是使用 calendarBuilder(singleMarkerBuilder) 将它与事件 map 日期进行了比较:
final map = <DateTime, List<String>>{
DateTime.utc(2021, 9, 2): [
'Event A',
'Event B',
],
DateTime.utc(2021, 9, 3): [
"Event C",
],
};
TableCalendar(
calendarBuilders: CalendarBuilders(
singleMarkerBuilder: (context, date, _) {
return Container(
decoration: BoxDecoration(
shape: BoxShape.circle,
color: date == selectedDay ? Colors.white : Colors.black), //Change color
width: 5.0,
height: 5.0,
margin: const EdgeInsets.symmetric(horizontal: 1.5),
);
},
),
)
Result here
关于flutter - 如何使用flutter table_calendar构建具有不同颜色的多个标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62350769/
我对 flutter/Dart 编程非常陌生,对下面的代码感到困惑。我没有编写代码,但我想用它在 table_calendar 插件的日历网格上显示事件标记。 class calEvent { f
我对 flutter/Dart 编程非常陌生,对下面的代码感到困惑。我没有编写代码,但我想用它在 table_calendar 插件的日历网格上显示事件标记。 class calEvent { f
我正在使用 table_calendar flutter 包构建日历。其他所有事情现在都完成了,我只想从日历中获取当前选择的月份。我试图找出方法并尝试所有事件但尚未成功。任何人都有解决方案,帮助我很多
我是一名优秀的程序员,十分优秀!