我们在上一章回中介绍了"chat_bubbles包"相关的内容,本章回中将 对四个bublue包进行对比和总结.闲话休提,让我们一起Talk Flutter吧。
1. 概念介绍
我们在前面章回中介绍了如何实现聊天窗口的功能,常见的使用场景就是微信聊天窗口。实现该功能时我们没有自己去定义组件,而且是使用pub库中的三方包来实现。我们一共使用了四个组件,本章回中将对这些组件做一个对比和总结,方便大家在实现聊天窗口时选择合适的组件。
2. 功能介绍
bubble_box
包提了BubbleBox组件来实现聊天窗口功能,聊天窗口通过该组件的shape属性来实现,窗口中的内容通过该组件的child属性来实现;shape属性的类型是BubbleShapeBorder类型,通过修改该类的成员属性可以创建出不同形状和颜色的聊天窗口;flutter_chat_bubble
包提供了ChatBubble组件来实现聊天窗口功能,聊天窗口通过该组件的clipper属性来实现,窗口中的内容通过该组件的child属性来实现。该组件的clipper属性是包中自定义的类型,一共九种,不同的种类用来创建不同形状的聊天窗口;bubble
包提供了Bubble组件来实现聊天窗口功能;聊天窗口通过Bubble组件来实现,窗口中的内容通过该组件的child属性来实现;Bubble组件提供了丰富的属性,通过修改这些属性可以创建出不同形状和颜色的聊天窗口;chat_bubbles
包提供了BubbleSpecialThree组件来实现聊天窗口功能。聊天窗口由组件自身来实现,窗口中的内容通过该组件的text属性来实现;该包还提供了其它组件,用来实现聊天式的图片和声音;
3. 对比与总结
3.1 内容总结
我们一共介绍了四个三方包,这些包都可以实现聊天窗口功能,实现的效果都十分相似。它们的用法也十分相近:都是提供一个专门的组件来实现聊天窗口,窗口中的内容以及窗口的形状,颜色等风格都通过组件的属性来控制。与官方提供的Container
窗口相比,这些包提供的窗口都带有箭头,而且还可以通过相关的属性来控制箭头的方向,位置与大小。总之,这些包都是很不错的包,大家可以pub库中看到开发人员对它们的评价。
3.2 功能对比
bubble_box
包的特点是可以对边框的风格和箭头的方向做任意的定制,缺点是绘制的箭头感觉有点小,在边框上不够突出;flutter_chat_bubble
包的边框的风格和箭头风格都是固定的,一共九种,边框上的箭头方向可以做任意的定制,但是不能修改箭头的位置;bubble
包的优点是可以对边框的风格和箭头的方向做任意的定制,而且可以修改边框上箭头的大小,它的缺点是将近两年没有更新了,后续会不会不兼容新版本的Flutter呢?chat_bubbles
包主打的是聊天,优点是支持多种类型的聊天内容,比如图片,声音。缺点是对边框的风格和箭头的方向等内容都无法定制;
总之,bubble
包是这几个包中功能最强大的,flutter_chat_bubble
包提供的功能不够理想,主要是它把边框的类型做成了固定的类,虽然使用方便,但是不够灵活。bubble_box
包提供的功能中,只有微小的瑕疵。chat_bubbles包感觉和其它几个包不一样,它主打聊天,侧重支持多种类型的聊天,比如图片,声音等。此外,它还实现了已读等功能,这是其它包不具备的功能。
其实,我们最开始要实聊天功能是为了在做首次功能引导时给介绍功能的窗口加上箭头,而且还可以调整箭头的方向和位置,比如在窗口上方开始位置,在窗口左侧中间位置等。经过我们多次实践后发现这几个包都可以实现我们的需求,不过我们推荐bubble
这个包,它的功能比其它几个包要强大一些。
看官们,与"四个bublue包对比与总结"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!