灵感来自反应式赠品。高度可定制,并帮助更快地开发聊天UI。
要使用此软件包,请在PubSpec.yaml文件中添加dash_chat作为依赖关系。
示例,聊天消息
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) - 梅切尔容器默认值为1弹性值height (双) - 仪表板聊天小部件的高度。width (双) - 仪表板聊天小部件的宽度。messages (列表) - 要在聊天中显示的消息列表。text (string) - [可选参数](如果提供)将停止使用默认控制器。onTextChange (function(string)) - 如果传递了文本参数,则还必须传递ontextChange。inputDecoration (InputDecoration) - 用于提供文本的输入装饰。messageIdGenerator (字符串函数) - 通常由用户添加的新消息获取UUID的UUID V4 String Generater。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) - 用于渲染日期默认值的格式为yyyy-MM-dd 。
timeFormat (dateFormat) - 用于渲染时间默认为HH:mm:ss格式。
showUserAvatar (bool) - 应显示用户头像。
showAvatarForEveryMessage (bool) - 是否应显示每个消息默认为false的头像。
onPressAvatar (function(chatuser)) - 攻击avatar时回调函数。
onLongPressAvatar (function(chatuser)) - 长期按下阿凡达(Avatar)时回调函数。
onLongPressMessage (function(chatuser)) - 长时间按消息时回调函数。
inverted (bool) - 是否应以相反的顺序显示消息
avatarBuilder (窗口小部件函数(chatuser)) - 将覆盖默认的头像。
messageBuilder (窗口小部件函数(ChatMessage)) - 将覆盖默认消息小部件。
messageTextBuilder (窗口小部件函数(字符串)) - 将覆盖默认消息文本小部件。
messageImageBuilder (窗口小部件函数(字符串)) - 将覆盖默认消息imaeg小部件
messageTimeBuilder (widget函数(字符串)) - 将覆盖默认消息时间窗口小部件。
dateBuilder (窗口小部件函数(字符串)) - 将覆盖默认聊天视图日期窗口小部件。
sendButtonBuilder (窗口小部件函数(函数)) - 将覆盖默认的发送按钮窗口小部件。
chatFooterBuilder (窗口小部件函数) - MessageListView下方将显示的小部件,就像您可以在末尾进行“绑扎...”文本小部件。
inputFooterBuilder (窗口小部件函数) - 将在ChatInputToolbar下方显示的小部件。
maxInputLength (int) - 输入文本框的主输入长度defaulst defaulst to no限制。
parsePatterns (列表) - 用于解析文本以制作链接的文本使用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 (列表<Widget>) - 在文本字段之前要显示的小部件列表。
trailing (List <Widget>) - 在TextField将删除发送按钮之后要显示的小部件列表。
readOnly (bool) - 隐藏输入栏,默认为false 。
showTraillingBeforeSend如果发送按钮默认为true之前,请显示trailling小部件。
inputTextStyle (TextStyle) - Textfield的样式。
inputContainerStyle (BoxDecoration) - TextField容器样式。
inputMaxLines (INT) - 输入线的最大长度默认为1。
showInputCursor (bool) - 如果输入光标默认为true。
inputCursorWidth (double) - 文本输入默认值为2.0的宽度。
inputCursorColor (颜色) - 输入光标的颜色默认为主题。
scrollController (ScrollController) - MessagelistView的scrollController。
messageContainerPadding (EdgeinsetStegeometry) - MessageListView的填充。
messagePadding (Edgeinsets) - MessageContainer的填充。
onQuickReply (funtion(replion)) - 快速敲击时回调方法。
quickReplyStyle (BoxDecoration) - QuickReply容器的容器样式。
quickReplyTextStyle (TextStyle) - QuickReply文本样式。
quickReplyBuilder (窗口小部件函数(回复)) - 将覆盖默认的快速窗口小部件。
scrollToBottom (Bool) - 应显示滚动到底部小部件的默认值为true 。
scrollToBottomStyle (ScrollTobottomStyle) - 设置scrolltobottom小部件的样式和位置。
scrollToBottomWidget (widget函数()) - 使用自定义窗口小部件覆盖默认的scrolltobottomwidget。
onScrollToBottomPress (函数) - 覆盖OnScrollTobottom小部件的默认行为。
shouldShowLoadEarlier (bool) - 如果显示载荷较大的浮动小部件,或者在滚动方案时使用载荷,则将onloadeArlier默认设置称为false,这是该方案。
showLoadEarlierWidget (widget函数()) - 覆盖OnScrollTobottom Widget的默认行为。
onLoadEarlier (函数) - 覆盖OnloadeArleir小部件的默认行为或当ListView到达顶部时用作回调。
inputToolbarPadding (Edgeinsets) - 可用于将填充物添加到输入工具栏中。
inputToolbarMargin (Edgeinsets) - 可用于将保证金添加到输入工具栏中。
应该使用shouldStartMessagesFromTop (BOOL) - 可用于对齐消息,以便从上到下而不是默认的底部到顶部开始。
textBeforeImage (bool) - 可用于将消息默认为true文本和图像设置。
quickReplyScroll (bool) - 快速回复选项是否可以水平滚动
quickReplyPadding (EdgeinsetSetsegemetry) - 填充速度
inputDisabled (bool) - 如果禁用输入文本字段,默认为false
messageDecorationBuilder (BoxDecoration函数(ChatMessage,Isuser) - 覆盖消息容器装饰。[注意:这将覆盖MessageContainerDecoration]
DashChat (
...
messageDecorationBuilder : ( ChatMessage msg, bool isUser){
return BoxDecoration (
...
color : isUser ? Colors .red : Colors .blue, // example
...
);
},
...
);如果您发现此项目有用,请考虑在Github上给它一个配x,然后通过社交媒体与您的朋友分享。
有关更多API详细信息,请参见dash_chat.dart
如果您有任何建议包含功能或不起作用的建议,请随时打开GitHub问题,以便我们进行讨论。