flutter_custom_calendar icon indicating copy to clipboard operation
flutter_custom_calendar copied to clipboard

周视图和月视图进行切换的时候月视图延迟太严重了,怎么处理呢?

Open hqwlkj opened this issue 5 years ago • 11 comments

周视图和月视图进行切换的时候月视图延迟太严重了,怎么处理呢?

hqwlkj avatar Aug 20 '20 04:08 hqwlkj

这个插件还在维护没有哦?

hqwlkj avatar Aug 20 '20 04:08 hqwlkj

希望渺茫……我很久前提的一个Bug~ 到现在都没解决~

KMing86 avatar Aug 20 '20 07:08 KMing86

目测没人维护了~

KMing86 avatar Aug 20 '20 07:08 KMing86

算了自己fork 自己修改吧 😄

hqwlkj avatar Aug 21 '20 08:08 hqwlkj

@hqwlkj 你之前修改的版本貌似还有点问题, 9月份第一个星期不显示了..

image

怎么搞?

lucasjinreal avatar Sep 04 '20 07:09 lucasjinreal

@hqwlkj 你之前修改的版本貌似还有点问题, 9月份第一个星期不显示了..

你设置的开始和结束时间怎么设置的,

hqwlkj avatar Sep 07 '20 03:09 hqwlkj

@hqwlkj

  calendarController = new CalendarController(
        minYear: now.year - 1,
        minYearMonth: now.month - 9,
        nowMonth: now.month,
        nowYear: now.year,
        // showMode: CalendarConstants.MODE_SHOW_MONTH_AND_WEEK,
        showMode: CalendarConstants.MODE_SHOW_WEEK_AND_MONTH,
        selectDateModel: DateModel.fromDateTime(DateTime.now()),
        extraDataMap: _initExtra);

这个么

lucasjinreal avatar Sep 07 '20 09:09 lucasjinreal

我看一下,在我没有修改之前就存在这个问题,我这边看一下。

hqwlkj avatar Sep 09 '20 01:09 hqwlkj

@hqwlkj OK, 我也是在九月份那几天发现这个问题

lucasjinreal avatar Sep 09 '20 06:09 lucasjinreal

我跟踪了下代码,在月视图切换时需要计算,新切入月份的数据。这个数据计算有点耗时,所以放在了isolate中计算:

  Future getItems() async {
    items = await compute(initCalendarForMonthView, {
      'year': widget.year,
      'month': widget.month,
      'minSelectDate': widget.configuration.minSelectDate,
      'maxSelectDate': widget.configuration.maxSelectDate,
      'extraDataMap': extraDataMap,
      'offset': widget.configuration.offset
    });
    setState(() {});
  }

这样这个数据计算就不影响UI刷新了,但是每次计算时都会启动新的isolate,而isolate的创建时间比实际进行计算的时间长很多。我测试过直接在当前主isolate中直接进行这个计算,出数据的速度变快了,但是UI有明显的卡顿。所以计算还是需要使用isolate。我用preload_page_view 替换flutter原生pageview后,对页面做了预加载,效果好很多

danieldai avatar Nov 05 '21 08:11 danieldai

这段时间都没有更新这个插件了, @danieldai 欢迎一起共建。

hqwlkj avatar Nov 08 '21 14:11 hqwlkj