Lokaler Nachrichtenverlauf mit Autoren, Schreibanzeige und Sendeereignissen. sent bestätigt die lokale Aufnahme, keine Serverzustellung.
TxChat
| Parameter | Typ | Standard | Bedeutung |
|---|---|---|---|
| user | TxChatUser | erforderlich | Aktueller Chatautor. |
| items | List<TxChatMessage>? | null | Einträge; bei Datenbindung durch dataSource ersetzt. |
| dataSource | Object? | null | Liste, Konfiguration oder DataSource-Instanz; hat Vorrang vor items. |
| onItemsChanged | ValueChanged<List<TxChatMessage>>? | null | Meldet items; kontrollierten Zustand im Callback aktualisieren. |
| controller | TextEditingController? | null | Externer Textcontroller; Entsorgung bleibt Aufgabe der Anwendung. |
| initialText | String | '' | Anfänglicher Entwurf ohne externen Controller. |
| onInputFieldTextChanged | ValueChanged<String>? | null | Meldet inputFieldText; kontrollierten Zustand im Callback aktualisieren. |
| onMessageEntered | ValueChanged<TxChange<TxChatMessage>>? | null | Vor lokaler Aufnahme: TxChange<TxChatMessage>; cancel synchron setzen, um eigene Verarbeitung zu übernehmen. |
| onMessageSent | ValueChanged<TxChatMessage>? | null | Liefert die lokal aufgenommene TxChatMessage; keine Serverzustellbestätigung. |
| onTypingStart | ValueChanged<TxChatUser>? | null | Meldet den Beginn des Schreibens mit dem betroffenen TxChatUser. |
| onTypingEnd | ValueChanged<TxChatUser>? | null | Meldet das Ende des Schreibens mit dem betroffenen TxChatUser. |
| title | String | 'Chat' | Titel der Ansicht. |
| subtitle | String | '' | Zusätzlicher Untertitel. |
| label | String | 'Chat' | Beschriftung beziehungsweise zugänglicher Name. |
| placeholder | String | 'Nachricht schreiben …' | Hinweis bei leerer Eingabe. |
| emptyText | String | 'Noch keine Nachrichten. Starte die Unterhaltung.' | Text des Leerzustands. |
| disabled | bool | false | Sperrt die Interaktion. |
| readOnly | bool | false | Verhindert Änderungen des Werts. |
| loading | bool | false | Zeigt den Ladezustand. |
| sending | bool | false | Sperrt Senden während einer eigenen laufenden Anfrage. |
| maxLength | int | 4000 | Maximale Textlänge. |
| typingUsers | List<TxChatUser> | const [] | Aktuell schreibende Autoren. |
| showAvatar | bool | true | Zeigt Autorenbilder. |
| showUserName | bool | true | Zeigt Autorennamen. |
| showDayHeaders | bool | true | Gruppiert Nachrichten mit Tagesüberschriften. |
| showMessageTimestamp | bool | true | Zeigt Nachrichtenzeiten. |
| locale | String | 'de' | Locale für Datums-/Zeitformatierung. |
| height | double | 560 | Höhe; Vue-Zahlen in Pixeln, Flutter in logischen Pixeln. |
| header | Widget? | null | Eigener Kopfbereich. |
| empty | Widget? | null | Eigener Leerzustand. |
| messageBuilder | Widget Function(BuildContext context, TxChatMessage message, bool isOwn)? | null | Erzeugt eigenen Inhalt; Callbackparameter und Rückgabetyp stehen in der Signatur. |
import 'package:flutter/material.dart';
import 'package:tecexpress/tecexpress.dart';
Widget example() {
var messages = <TxChatMessage>[];
return StatefulBuilder(
builder: (context, setState) => TxChat(user: TxChatUser(id: 'me', name: 'Alex'), items: messages, onItemsChanged: (v) => setState(() => messages = v)),
);
}