Tag-, Wochen- und Monatskalender mit Terminbearbeitung. Ganztagsenden sind exklusiv; keine Serien, Ressourcen oder Drag-and-drop.
TxScheduler
| Parameter | Typ | Standard | Bedeutung |
|---|---|---|---|
| dataSource | Object? | null | Liste, Konfiguration oder DataSource-Instanz; hat Vorrang vor items. |
| onDataSourceChanged | ValueChanged<List<TxAppointment>>? | null | Meldet dataSource; kontrollierten Zustand im Callback aktualisieren. |
| currentDate | DateTime? | null | Aktueller Kalendertag; für Navigation kontrollierten Wert aktualisieren. |
| onCurrentDateChanged | ValueChanged<DateTime>? | null | Meldet currentDate; kontrollierten Zustand im Callback aktualisieren. |
| currentView | TxSchedulerView? | null | Aktuelle Kalenderansicht. |
| onCurrentViewChanged | ValueChanged<TxSchedulerView>? | null | Meldet currentView; kontrollierten Zustand im Callback aktualisieren. |
| views | List<TxSchedulerView> | const [TxSchedulerView.day, TxSchedulerView.week, TxSchedulerView.month] | Angebotene Kalenderansichten. |
| firstDayOfWeek | int | 1 | Erster Wochentag; 1 = Montag. |
| startDayHour | int | 8 | Erste sichtbare Tagesstunde. |
| endDayHour | int | 18 | Letzte sichtbare Tagesstunde. |
| cellDuration | int | 30 | Länge einer Kalenderzelle in Minuten. |
| editing | TxSchedulerEditing | const TxSchedulerEditing() | Berechtigungen zum Anlegen, Ändern und Löschen. |
| readOnly | bool | false | Verhindert Änderungen des Werts. |
| disabled | bool | false | Sperrt die Interaktion. |
| loading | bool | false | Zeigt den Ladezustand. |
| locale | String | 'de' | Locale für Datums-/Zeitformatierung. |
| label | String | 'Terminplaner' | Beschriftung beziehungsweise zugänglicher Name. |
| appointmentBuilder | Widget Function(BuildContext context, TxAppointment item, TxSchedulerView view)? | null | Erzeugt eigenen Inhalt; Callbackparameter und Rückgabetyp stehen in der Signatur. |
| onAppointmentClick | ValueChanged<TxAppointment>? | null | Meldet den aktivierten TxAppointment. |
| onCellClick | void Function(DateTime start, DateTime end, bool allDay)? | null | Meldet Zellenbeginn, Zellenende und Ganztagskennzeichen als drei Argumente. |
| onAppointmentAdding | ValueChanged<TxChange<TxAppointment>>? | null | Vor Anlegen: TxChange<TxAppointment>; cancel synchron setzen, um abzubrechen. |
| onAppointmentUpdating | ValueChanged<TxChange<TxAppointmentUpdate>>? | null | Vor Ändern: TxChange<TxAppointmentUpdate> mit altem und neuem Termin; synchron abbrechbar. |
| onAppointmentDeleting | ValueChanged<TxChange<TxAppointment>>? | null | Vor Löschen: TxChange<TxAppointment>; cancel synchron setzen, um abzubrechen. |
| onAppointmentAdded | ValueChanged<TxAppointment>? | null | Meldet den lokal angelegten TxAppointment. |
| onAppointmentUpdated | ValueChanged<TxAppointmentUpdate>? | null | Meldet TxAppointmentUpdate mit altem und neuem Termin. |
| onAppointmentDeleted | ValueChanged<TxAppointment>? | null | Meldet den lokal gelöschten TxAppointment. |
import 'package:flutter/material.dart';
import 'package:tecexpress/tecexpress.dart';
Widget example() {
var appointments = [TxAppointment(id: 1, text: 'Meeting', startDate: DateTime(2026, 10, 28, 9), endDate: DateTime(2026, 10, 28, 10))];
return StatefulBuilder(
builder: (context, setState) => TxScheduler(dataSource: appointments, onDataSourceChanged: (v) => setState(() => appointments = v)),
);
}