Inspirado por react-nativo-chat-chat. Altamente personalizable y ayuda a desarrollar la interfaz de usuario de chat más rápido.
Para usar este paquete, agregue dash_chat como dependencia en su archivo pubspec.yaml.
Ejemplo, mensaje de 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" ,
);Ejemplo, mensaje de chat con respuestas rápidas
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): el valor flexible para el contenedor de mesas predeterminado a 1height (doble) - Altura para el widget de chat del tablero.width (doble) - Ancho para el widget de chat de Dash.messages (Lista): lista de mensajes para mostrar en el chat.text (String) - [Parámetro opcional] Si se proporciona, dejará de usar el controlador predeterminado.onTextChange (function (String)): si el parámetro de texto se pasa, OnTextChange también debe aprobarse.inputDecoration (InputDecoration) - Se utiliza para proporcionar una decoración de entrada al texto.messageIdGenerator (función de cadena): generalmente un nuevo mensaje agregado por el usuario obtiene UUID V4 String generador por UUID.user (Chatuser): el objeto de usuario actual. DashChat (
user : ChatUser (
name : "Jhon Doe" ,
uid : "xxxxxxxxx" ,
avatar : "https://www.wrappixel.com/ampleadmin/assets/images/users/4.jpg" ,
)
); onSend (función (chatMessage)) - devolución de llamada al enviar un mensaje.
alwaysShowSend (bool): si el botón de envío siempre está activo por defecto a falso.
avatarMaxSize (doble): establece el tamaño máximo de avatar predeterminado, el valor predeterminado es 30.0 .
dateFormat (dateFormat): formato para usar para la representación La fecha predeterminada es yyyy-MM-dd .
timeFormat (dateFormat) - Formato para usar para la representación El tiempo predeterminado es HH:mm:ss .
showUserAvatar (BOOL) - En caso de que se muestre el avatar del usuario.
showAvatarForEveryMessage (bool): si se muestra el avatar para cada mensaje predeterminado a falso.
onPressAvatar (function (Chatuser)) - Función de devolución de llamada cuando se aprovecha el avatar.
onLongPressAvatar (función (chatuser)) - Función de devolución de llamada cuando el avatar se presiona durante mucho tiempo.
onLongPressMessage (function (chatuser)) - Función de devolución de llamada cuando el mensaje se presiona durante mucho tiempo.
inverted (bool): si los mensajes se muestran en orden invertido
avatarBuilder (función widget (chatuser)): anulará el avatar predeterminado.
messageBuilder (función widget (chatMessage)) - anulará el widget de mensaje predeterminado.
messageTextBuilder (función widget (string)) - anulará el widget de texto de mensaje predeterminado.
messageImageBuilder (function widget (string)) - anulará el widget IMAEG del mensaje predeterminado
messageTimeBuilder (función widget (string)) - anulará el widget de tiempo de mensaje predeterminado.
dateBuilder (Widget Function (String)) - anulará el widget de fecha de vista de chat predeterminado.
sendButtonBuilder (función widget (función)): anulará el widget de botón de envío predeterminado.
chatFooterBuilder (función de widget): un widget que se mostrará debajo de MessageListView como puede un widget de texto "atando ..." al final.
inputFooterBuilder (función de widget): un widget que se mostrará debajo del chatInputToolBar.
maxInputLength (int) - Longitud de entrada principal del cuadro de texto de entrada sin límite sin límite.
parsePatterns (Lista) - Se utiliza para analizar el texto para hacer que un texto vinculado use 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): proporciona un estilo personalizado al contenedor de mensajes.
leading (List <Widget>) - Lista de widget para mostrar antes del campo de texto.
trailing (LIST <Widget>) - Lista de widget para mostrar después de que el campo de texto eliminará el botón Enviar.
readOnly (bool): oculta la barra de entrada, predeterminada a false .
showTraillingBeforeSend : si los widgets de trailización se muestran antes de que el botón de envío predetermine a true .
inputTextStyle (TextStyle) - estilo para el campo de texto.
inputContainerStyle (BoxDecoration) - Textfield Container Style.
inputMaxLines (int): longitud máxima de las líneas de entrada predeterminadas a 1.
showInputCursor (BOOL): si el cursor de entrada se muestra por defecto en verdadero.
inputCursorWidth (doble): el ancho de la entrada de texto predetermina a 2.0.
inputCursorColor (color): el color del cursor de entrada predeterminado al tema.
scrollController (scrollController) - scrollController para MessageListView.
messageContainerPadding (EdgeInsegeometry) - Padre para el MessageListView.
messagePadding (EdgeInsets) - Padre para el MessageContainer.
onQuickReply (Fundion (Respuesta)) - Método de devolución de llamada cuando se aprovechó QuickReply.
quickReplyStyle (BoxDecoration) - Estilo de contenedor para el contenedor QuickReply.
quickReplyTextStyle (TextStyle) - QuickReply Text Style.
quickReplyBuilder (función de widget (respuesta)) - anulará el widget QuickReply predeterminado.
scrollToBottom (bool): si el widget de desplazamiento al fondo se muestra predeterminado a true .
scrollToBottomStyle (ScrollTobottomStyle) - Establece el estilo y la posición del widget ScrollTobottom.
scrollToBottomWidget (function widget ()): anula el scrolltobottomwidget predeterminado con un widget personalizado.
onScrollToBottomPress (función): anule el comportamiento predeterminado del widget OnscrollTobottom.
shouldShowLoadEarlier (bool): si el widget flotante de carga de carga se muestra o usa la carga a medida que desplaza el esquema, lo que llamará a OnloadArlier predeterminado a falso, que es este esquema.
showLoadEarlierWidget (function widget ()): anule el comportamiento predeterminado del widget OnscrollTobottom.
onLoadEarlier (function): anule el comportamiento predeterminado del widget OnloadEhearleir o se use como una devolución de llamada cuando ListView llega a la parte superior.
inputToolbarPadding (EdgeInsets): se puede usar para agregar relleno a la barra de herramientas de entrada.
inputToolbarMargin (EdgeInsets): se puede usar para agregar margen a la barra de herramientas de entrada.
shouldStartMessagesFromTop (bool): se puede usar para alinear los mensajes para que comience de arriba a abajo en lugar de la parte inferior predeterminada a la parte superior.
textBeforeImage (bool): se puede usar para establecer el pedido del texto y la imagen dentro de un mensaje predeterminado a true .
quickReplyScroll (Bool) - Si las opciones de respuesta rápida se pueden desplazar horizontalmente
quickReplyPadding (EdgeInsetSegeometry) - Rolado para QuickReply
inputDisabled (bool): si el campo de texto de entrada está deshabilitado, el valor predeterminado a false
messageDecorationBuilder (Función de BoxDecoration (ChatMessage, ISUSER): anule la decoración del contenedor de mensajes. [Nota: Esto anulará la MessageContainerDecoration]
DashChat (
...
messageDecorationBuilder : ( ChatMessage msg, bool isUser){
return BoxDecoration (
...
color : isUser ? Colors .red : Colors .blue, // example
...
);
},
...
);Si encontró este proyecto útil, considere darle un ️ sobre Github y compartirlo con sus amigos a través de las redes sociales.
Vea el Dash_chat.Dart para obtener más detalles de la API
Si tiene alguna sugerencia para incluir una función o si algo no funciona, no dude en abrir un problema de GitHub para que tengamos una discusión al respecto.