Terinspirasi oleh obrolan react-native-asped. Sangat dapat disesuaikan dan membantu pengembangan UI obrolan lebih cepat.
Untuk menggunakan paket ini, tambahkan dash_chat sebagai ketergantungan pada file pubspec.yaml Anda.
Contoh, pesan obrolan
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" ,
);Contoh, pesan obrolan dengan balasan cepat
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) - Nilai Flex untuk Default Kontainer Message menjadi 1height (ganda) - Tinggi untuk widget obrolan dash.width (ganda) - Lebar untuk widget obrolan dash.messages (Daftar) - Daftar pesan yang akan ditampilkan di obrolan.text (String) - [Parameter Opsional] Jika disediakan akan berhenti menggunakan pengontrol default.onTextChange (function (string)) - Jika parameter teks dilewatkan maka OnTextChange juga harus dilewati.inputDecoration (InputDecoration) - Digunakan untuk memberikan dekorasi input ke teks.messageIdGenerator (Fungsi String) - Biasanya pesan baru ditambahkan oleh pengguna mendapatkan uuid v4 string generater oleh uuid.user (ChatUser) - Objek Pengguna saat ini. DashChat (
user : ChatUser (
name : "Jhon Doe" ,
uid : "xxxxxxxxx" ,
avatar : "https://www.wrappixel.com/ampleadmin/assets/images/users/4.jpg" ,
)
); onSend (FUNGSI (CHATMESSAGE)) - Callback saat mengirim pesan.
alwaysShowSend (BOOL) - Jika tombol Kirim selalu aktif default menjadi false.
avatarMaxSize (ganda) - Mengatur ukuran maksimum Avatar default, default adalah 30.0 .
dateFormat (DateFormat)-Format yang akan digunakan untuk rendering tanggal default adalah yyyy-MM-dd .
timeFormat (DateFormat) - Format yang akan digunakan untuk rendering waktu default adalah HH:mm:ss .
showUserAvatar (bool) - Haruskah avatar pengguna ditampilkan.
showAvatarForEveryMessage (bool) - Haruskah avatar ditampilkan untuk setiap pesan default menjadi false.
onPressAvatar (Function (ChatUser)) - Callback Funtion saat Avatar disadap.
onLongPressAvatar (Function (ChatUser)) - Callback Funtion Saat Avatar sudah lama ditekan.
onLongPressMessage (fungsi (chatuser)) - callback funtion saat pesan sudah lama ditekan.
inverted (bool) - jika pesan ditampilkan dalam urutan terbalik
avatarBuilder (fungsi widget (chatuser)) - akan menimpa avatar default.
messageBuilder (Widget Function (ChatMessage)) - Akan mengganti widget pesan default.
messageTextBuilder (Widget Function (String)) - Akan mengganti widget teks pesan default.
messageImageBuilder (Widget Function (String)) - Akan mengganti widget IMAEG pesan default
messageTimeBuilder (Widget Function (String)) - Akan mengganti widget waktu pesan default.
dateBuilder (Widget Function (String)) - Akan mengganti widget Tampilan Tampilan Obrolan Default.
sendButtonBuilder (Widget Function (Function)) - Akan mengganti widget tombol Kirim Default.
chatFooterBuilder (Widget Function) - Widget yang akan ditampilkan di bawah MessageListView seperti Anda dapat widget teks "mengikat ..." di akhir.
inputFooterBuilder (Widget Function) - Widget yang akan ditampilkan di bawah chatInputToolBar.
maxInputLength (int) - Panjang input utama dari kotak teks input defaulst ke tidak ada batasan.
parsePatterns (Daftar) - Digunakan untuk Parse Teks untuk membuat teks yang terhubung menggunakan 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) - Menyediakan gaya khusus untuk wadah pesan.
leading (Daftar <Sidget>) - Daftar widget untuk ditampilkan sebelum TextField.
trailing (daftar <ididget>) - Daftar widget untuk ditampilkan setelah TextField akan menghapus tombol Kirim.
readOnly (bool) - menyembunyikan bilah input, default ke false .
showTraillingBeforeSend - Jika widget trailling ditampilkan sebelum tombol kirim default ke true .
inputTextStyle (TextStyle) - Gaya untuk TextField.
inputContainerStyle (BoxDecoration) - Textfield Container Style.
inputMaxLines (int) - Panjang maksimum dari garis input default ke 1.
showInputCursor (bool) - Jika kursor input ditampilkan default ke true.
inputCursorWidth (Double) - Lebar Input Teks Default ke 2.0.
inputCursorColor (Warna) - Warna default kursor input ke tema.
scrollController (ScrollController) - ScrollController untuk MessageListView.
messageContainerPadding (EdgeInsetsGeometry) - Padding untuk MessageListView.
messagePadding (EdgeInsets) - Padding untuk MessageContainer.
onQuickReply (Funtion (Balas)) - Metode Callback Ketika QuickReply disadap.
quickReplyStyle (BoxDecoration) - Gaya wadah untuk wadah QuickReply.
quickReplyTextStyle (TextStyle) - Gaya teks QuickReply.
quickReplyBuilder (Widget Function (Balas)) - Akan mengganti widget QuickReply default.
scrollToBottom (bool) - Jika gulir ke widget bawah ditampilkan default ke true .
scrollToBottomStyle (Scrolltobottomstyle) - Mengatur gaya & posisi untuk widget Scrolltobottom.
scrollToBottomWidget (widget function ()) - Mengesampingkan scrolltobottomwidget default dengan widget khusus.
onScrollToBottomPress (Fungsi) - Mengesampingkan perilaku default widget OnsCrollTobottom.
shouldShowLoadEarlier (bool) - Jika widget mengambang loadearlier ditampilkan atau menggunakan beban saat Anda menggulir skema yang akan memanggil default Onloadearlier ke false yang merupakan skema ini.
showLoadEarlierWidget (widget function ()) - Mengesampingkan perilaku default widget OnsCrollTobottom.
onLoadEarlier (Fungsi) - Mengesampingkan perilaku default widget Onloadearleir atau digunakan sebagai panggilan balik ketika ListView mencapai atas.
inputToolbarPadding (EdgeInsets) - dapat digunakan untuk menambahkan padding ke toolbar input.
inputToolbarMargin (EdgeInsets) - dapat digunakan untuk menambahkan margin ke bilah alat input.
shouldStartMessagesFromTop (bool) - dapat digunakan untuk menyelaraskan pesan sehingga dimulai dari atas ke bawah alih -alih bagian bawah default ke atas.
textBeforeImage (bool) - dapat digunakan untuk mengatur urutan teks dan gambar di dalam pesan default ke true .
quickReplyScroll (bool) - Jika opsi balasan cepat dapat digulir secara horizontal
quickReplyPadding (EdgeInsetsGeometry) - Padding untuk QuickReply
inputDisabled (Bool) - Jika Input Textfield dinonaktifkan, default ke false
messageDecorationBuilder (Fungsi BoxDecoration (ChatMessage, ISUSER) - Mengesampingkan dekorasi wadah pesan. [Catatan: Ini akan mengganti MessageContainRecoration]
DashChat (
...
messageDecorationBuilder : ( ChatMessage msg, bool isUser){
return BoxDecoration (
...
color : isUser ? Colors .red : Colors .blue, // example
...
);
},
...
);Jika Anda menemukan proyek ini bermanfaat, maka silakan pertimbangkan untuk memberikannya pada github dan membaginya dengan teman -teman Anda melalui media sosial.
Lihat dash_chat.dart untuk detail API lebih lanjut
Jika Anda memiliki saran untuk memasukkan fitur atau jika ada sesuatu yang tidak berhasil, jangan ragu untuk membuka masalah GitHub bagi kami untuk berdiskusi tentang itu.