0

我在单个日期显示事件点时遇到问题。但是,我设法将事件颜色显示为一个方框。但我想将它显示为一个点。事件来自 API。有什么建议可以解决这个问题吗?

当我单击特定日期时,它会从 API 中检索相应的事件并显示该特定日期的事件。颜色也来自 API 请求。我只需要使用来自 API 的相关颜色的附加点来显示事件

Angular 组件可以在 Nativescript 应用程序中使用吗?然后我可以使用角度组件!

这是日历组件的html文件!

<StackLayout row="0">
        <RadCalendar [monthViewStyle]="monthViewStyle" [eventSource]="eventSource" [selectedDate]="defaultDate"
            (dateSelected)="onDateSelected($event)" row="0" (navigatedToDate)="onNavigatedToDate($event)"></RadCalendar>
    </StackLayout>

在此处输入图像描述

bindEventsInCalender(date: string) {

    this._calendarApiService.getCalendarData(date).subscribe((data: any) => {

      var listCal = data;
      let event: CalendarEvent;
      this.calendarEvents = [];
      let events: Array<CalendarEvent> = new Array<CalendarEvent>();
      for (let i = 0; i < listCal.length; i++) {
        // console.log(new Date(listCal[i].date));

        event = new CalendarEvent(
          listCal[i].title,
          new Date(listCal[i].date),
          new Date(listCal[i].date),
          false,
          new Color(listCal[i].colour)
        );

        // this.calendarEvents.push(new CalendarClass(new Date(listCal[i].date), listCal[i].colour, listCal[i].title, listCal[i].statusid, listCal[i].id));
        this.updateCalendarEvent(listCal[i]);

        events.push(event);
      }
      // console.log(this.calendarEvents);

      if (this._events_mirror.length > 0) {
        this._events_mirror.forEach(element => {
          events.push(element);
        });
      }
      this._events = events;
      if (this.appRunFirstTime) {
        this.appRunFirstTime = false;
        this.defaultDate = new Date();
      }
    });
  }
4

1 回答 1

1

这里我有一个为 {N} Android 实现自定义事件渲染器的示例。您必须扩展基类com.telerik.widget.calendar.events.EventRenderer并使用该renderEvents方法在日历单元格中绘制任何内容。该示例演示了如何绘制圆形而不是默认矩形来表示事件。您甚至可以使用绘图 API 添加更多点。

于 2019-04-02T16:12:11.500 回答