Вдохновлен реаги-родной катером. Высоко настраивается и помогает разработать пользовательский интерфейс чата быстрее.
Чтобы использовать этот пакет, добавьте dash_chat в качестве зависимости в вашем файле pubspec.yaml.
Пример, сообщение в чате
ChatMessage (
text : "Hello" ,
user : ChatUser (
name : "Fayeed" ,
uid : "123456789" ,
avatar : "https://www.wrappixel.com/ampleadmin/assets/images/users/4.jpg" ,
),
createdAt : DateTime . now (),
image : "http://www.sclance.com/images/picture/Picture_753248.jpg" ,
);Пример, сообщение о чате с быстрыми ответами
ChatMessage (
text : "This is a quick reply example." ,
user : ChatUser (),
createdAt : DateTime . now (),
quickReplies : QuickReplies (
values : < Reply > [
Reply (
title : "? Yes" ,
value : "Yes" ,
),
Reply (
title : "? Nope. What?" ,
value : "no" ,
),
],
),
),messageContainerFlex (int) - Изгиб значения для контейнера по умолчанию по умолчанию на 1height (двойная) - высота для виджета чата приборной панели.width (двойная) - ширина для виджета Chat Chat.messages (список) - Список сообщений для отображения в чате.text (String) - [Необязательный параметр] Если предоставлен, остановится использование контроллера по умолчанию.onTextChange (function (String)) - Если параметр текста передается, то OnTextChange также должен быть передан.inputDecoration (InputDecoration) - используется для предоставления входного украшения тексту.messageIdGenerator (String Function) - Обычно новое сообщение, добавляемое пользователем, получает uuid v4 string Generater с помощью UUID.user (Chatuser) - текущий объект пользователя. DashChat (
user : ChatUser (
name : "Jhon Doe" ,
uid : "xxxxxxxxx" ,
avatar : "https://www.wrappixel.com/ampleadmin/assets/images/users/4.jpg" ,
)
); onSend (function (Chatmessage)) - обратный вызов при отправке сообщения.
alwaysShowSend (bool) - если кнопка отправки всегда будет активным по умолчанию false.
avatarMaxSize (Double) - Устанавливает максимальный размер аватара по умолчанию, по умолчанию 30.0 .
dateFormat (DateFormat)-Формат для использования для рендеринга Date Date Default yyyy-MM-dd .
timeFormat (DateFormat) - Формат для использования для рендеринга времени по умолчанию HH:mm:ss .
showUserAvatar (bool) - если пользователь будет показан.
showAvatarForEveryMessage (bool) - если аватар будет показан для каждого сообщения по умолчанию по ложным.
onPressAvatar (function (Chatuser)) - Функция обратного вызова, когда аватар нажимается.
onLongPressAvatar (function (Chatuser)) - Функция обратного вызова, когда аватар давно нажимается.
onLongPressMessage (function (Chatuser)) - Фунция обратного вызова, когда сообщение давно нажимается.
inverted (bool) - если сообщения будут показаны в обратном порядке
avatarBuilder (функция виджета (Chatuser)) - переопределяет аватар по умолчанию.
messageBuilder (функция виджета (Chatmessage)) - переопределяет виджет сообщения по умолчанию.
messageTextBuilder (Widget Function (String)) - переопределяет виджет текста сообщения по умолчанию.
messageImageBuilder (функция виджета (String)) - переопределяет сообщение Imaeg сообщения по умолчанию
messageTimeBuilder (функция виджета (String)) - переопределяет виджет Time Time по умолчанию.
dateBuilder (функция виджета (String)) - переопределяет виджет даты просмотра чата по умолчанию.
sendButtonBuilder (функция виджета (функция)) - переопределяет виджет кнопки отправки по умолчанию.
chatFooterBuilder (функция виджета) - виджет, который будет показан ниже Messagelistview, как вы можете в конце «привязывать ...».
inputFooterBuilder (функция виджета) - виджет, который будет показан ниже чатаптолбара.
maxInputLength (int) - основная входная длина входного текстового поля Delaulst без ограничения.
parsePatterns (List) - используется для анализа текста, чтобы создать ссыльный текст использует flutter_parsed_text.
DashChat (
parsePatterns : < MatchText > [
MatchText (
type : "email" ,
onTap : ( String value) {}
),
MatchText (
pattern : r"B#+([w]+)b" ,
style : TextStyle (
color : Colors .pink,
fontSize : 24 ,
),
onTap : ( String value) {}
),
]
); messageContainerDecoration (BoxDecoration) - предоставляет пользовательский стиль контейнеру сообщения.
leading (List <Widget>) - Список виджета, чтобы показать перед Textfield.
trailing (List <Widget>) - Список виджета, чтобы показать после того, как TextField удалит кнопку отправки.
readOnly (bool) - скрывает входную панель, по умолчанию к false .
showTraillingBeforeSend - если виджеты будут отображаться до того, как кнопка отправки по умолчанию по умолчанию на true .
inputTextStyle (TextStyle) - Стиль для текстового поля.
inputContainerStyle (BoxDecoration) - Стиль контейнера для текстового поля.
inputMaxLines (int) - максимальная длина входных линий по умолчанию до 1.
showInputCursor (Bool) - если входной курсор будет показан по умолчанию к TRUE.
inputCursorWidth (двойная) - ширина текстового ввода по умолчанию до 2,0.
inputCursorColor (цвет) - цвет входного курсора по умолчанию в тему.
scrollController (ScrollController) - ScrollController для MessageListView.
messageContainerPadding (EdgeInsetsgeometry) - накладная для MessageListView.
messagePadding (EdgeInsets) - Подготовка для MessageContainer.
onQuickReply (Funtion (ответ)) - Метод обратного вызова, когда QuickReply был нажат.
quickReplyStyle (BoxDecoration) - Стиль контейнера для QuickReply Container.
quickReplyTextStyle (TextStyle) - QuickReply Text Style.
quickReplyBuilder (функция виджета (ответ)) - переопределяет виджет QuickReply.
scrollToBottom (bool) - если виджет Scrolk to Bond будет показан по умолчанию true .
scrollToBottomStyle (ScrollTobottomStyle) - устанавливает стиль и положение для виджета ScrolltoBottom.
scrollToBottomWidget (widget function ()) - переопределяет Scrolltobottobottomwidget по умолчанию с помощью пользовательского виджета.
onScrollToBottomPress (function) - переопределить поведение по умолчанию виджета Onscrolltobottom.
shouldShowLoadEarlier (bool) - если будет показан плавучий виджет PloyeArlier, или использует нагрузку, когда вы прокрутите схему Whcih, который вызовет по умолчанию по умолчанию по умолчанию, что является этой схемой.
showLoadEarlierWidget (widget function ()) - переопределить поведение по умолчанию виджета Onscrolltobottom.
onLoadEarlier (function) - переопределить поведение по умолчанию виджета OnloadEarLeir или используется в качестве обратного вызова, когда ListView достигает вершины.
inputToolbarPadding (EdgeInsets) - можно использовать для добавления накладки на панель инструментов ввода.
inputToolbarMargin (EdgeInsets) - можно использовать для добавления маржи к панели инструментов ввода.
shouldStartMessagesFromTop (bool) - может использоваться для выравнивания сообщений, чтобы он начинался сверху вниз, а не снизу по умолчанию до сверху.
textBeforeImage (BOOL) - может использоваться для установки порядка текста и изображения внутри сообщения по умолчанию по умолчанию к true .
quickReplyScroll (bool) - если бы быстрые параметры ответа будут горизонтально прокручивать
quickReplyPadding (EdgeInsetSgeometry) - накладка для быстрого
inputDisabled (bool) - если входное текстовое поле отключено, по false
messageDecorationBuilder (функция BoxDecoration (ChatMessage, Isuser) - переопределить украшение контейнера сообщения. [Примечание: это будет переоценить MessageContainerDecoration]
DashChat (
...
messageDecorationBuilder : ( ChatMessage msg, bool isUser){
return BoxDecoration (
...
color : isUser ? Colors .red : Colors .blue, // example
...
);
},
...
);Если вы нашли этот проект полезным, подумайте о том, чтобы дать ему ️ на GitHub и поделиться им с друзьями через социальные сети.
Смотрите dash_chat.dart для получения дополнительной информации API
Если у вас есть какие -либо предложения по включению функции или если что -то не работает, не стесняйтесь открывать проблему GitHub, чтобы мы обсудили ее.