Столкнувшись с проблемой размещения цветных точек соответствующих событий на одной дате - PullRequest
0 голосов
/ 02 апреля 2019

У меня проблема с отображением точек событий в одну дату. Однако мне удалось отобразить цвет события в виде квадратной рамки. Но я хочу отобразить это как точку. События идут от API. Любые предложения, как я могу преодолеть эту проблему?

Когда я нажимаю на конкретную дату, она извлекает соответствующие события из API и показывает события на эту конкретную дату. Цвет также исходит из запроса API. Мне просто нужно показать события с дополнительными точками соответствующего цвета из API

Может ли угловой компонент использоваться в приложении Nativescript? Тогда я мог бы использовать угловой компонент!

Это HTML-файл компонента календаря!

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

enter image description here

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();
      }
    });
  }

1 Ответ

1 голос
/ 02 апреля 2019

Здесь У меня есть пример реализации пользовательского средства визуализации событий для {N} Android. Вам нужно будет расширить базовый класс com.telerik.widget.calendar.events.EventRenderer и использовать метод renderEvents, чтобы нарисовать что-либо в ячейке календаря. В этом примере показано, как можно нарисовать круг вместо прямоугольника по умолчанию для обозначения событий. Вы можете даже добавить больше точек с помощью краски apis.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...