Flutter中的SfCalendar改变资源高度

问题描述 投票:0回答:1

我目前正在 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
设置高度,但也没有变化。

谢谢你。

flutter syncfusion sfcalendar
1个回答
0
投票

在时间段视图设置中只需添加时间线约会高度

© www.soinside.com 2019 - 2024. All rights reserved.