靈感來自反應式贈品。高度可定制,並幫助更快地開發聊天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問題,以便我們進行討論。