我目前正在 Flutter 中开发 SfCalendar,我想更改资源的高度以使其在板上显示完整信息。就像我的屏幕截图中的资源“N/A”:
因此,用户将未分配的约会拖到资源“N/A”中,像这里的“T B”一样加载到技术人员。
由于“N/A”中有大量数据,因此未显示约会的文本,但应该显示。 另外,是否可以修复顶部资源“N/A”的行,以便当用户向下滚动时,“N/A”组始终在屏幕上?
这是从基本
SfCalendar
函数和 _resourceHeaderBuilder
中截取的代码:
/// Returns the calendar widget based on the properties passed
SfCalendar _getMeetingRoomCalendar(
[CalendarDataSource? _calendarDataSource, dynamic viewChangedCallback]) {
return SfCalendar(
showDatePickerButton: true,
controller: _calendarController,
allowDragAndDrop: true,
allowedViews: _allowedViews,
minDate: _minDate,
timeRegionBuilder: _getSpecialRegionWidget,
specialRegions: _specialTimeRegions,
showNavigationArrow: true,
dataSource: _calendarDataSource,
onViewChanged: viewChangedCallback,
resourceViewHeaderBuilder: _resourceHeaderBuilder,
appointmentTimeTextFormat: 'HH:mm',
timeSlotViewSettings: TimeSlotViewSettings(
timeInterval: Duration(minutes: 15),
timeFormat: 'HH:mm',
startHour: 7,
endHour: 18,
),
);
}
/// Returns the widget for resource header.
Widget _resourceHeaderBuilder(
BuildContext context, ResourceViewHeaderDetails details) {
final Random random = Random();
int capacity = 0;
if (_visibleAppointments.isNotEmpty) {
capacity = 0;
for (int i = 0; i < _visibleAppointments.length; i++) {
final Appointment visibleApp = _visibleAppointments[i];
if (visibleApp.resourceIds != null &&
visibleApp.resourceIds!.isNotEmpty &&
visibleApp.resourceIds!.contains(details.resource.id)) {
capacity++;
}
}
}
String capacityString = 'Termine';
return Container(
height: 1000,
child: Container(
color: details.resource.color,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
icons[random.nextInt(5).toInt()],
Text(
details.resource.displayName,
style: const TextStyle(
color: Colors.white, fontSize: 16, fontWeight: FontWeight.bold),
),
Padding(
padding: const EdgeInsets.only(top: 5),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
const Text(
'Termine: ',
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white,
fontSize: 10,
),
),
Container(
child: Text(
capacity.toString(),
textAlign: TextAlign.center,
style: const TextStyle(
color: Colors.white,
fontSize: 12,
fontWeight: FontWeight.bold),
),
)
],
),
)
],
),
)
);
}
}
我尝试过给
TimeSlotViewSettings()
设置高度,但没有任何变化,我也尝试给Container
中的_resourceHeaderBuilder
设置高度,但也没有变化。
谢谢你。
在时间段视图设置中只需添加时间线约会高度