Android消息未读BadgeView介绍

GitHub https://github.com/qstumn/BadgeView

demo.png

一个可以自由定制外观、支持拖拽消除的MaterialDesign风格Android BadgeView

一些特性
1.随意定制外观,包括Badge位置、底色、边框、阴影、文字颜色(支持透明色)、大小、内外边距等
2.Badge数字小于0时显示dot,等于0时隐藏整个Badge,在普通模式下超过99时显示99+,精确模式下显示具体值
3.支持设置文本内容
4.支持设置图片背景
5.支持类似QQ的拖拽消除效果(默认关闭)
6.支持以动画的方式隐藏Badge
demo_gif.gif
使用方法
implementation 'q.rorbin:badgeview:1.1.3'
new QBadgeView(context).bindTarget(textview).setBadgeNumber(5);
相关方法 说  明
setBadgeNumber 设置Badge数字
setBadgeText 设置Badge文本
setBadgeTextSize 设置文本字体大小
setBadgeTextColor 设置文本颜色
setExactMode 设置是否显示精确模式数值
setBadgeGravity 设置Badge相对于TargetView的位置
setGravityOffset 设置外边距
setBadgePadding 设置内边距
setBadgeBackgroundColor 设置背景色
setBadgeBackground 设置背景图片
setShowShadow 设置是否显示阴影
setOnDragStateChangedListener 打开拖拽消除模式并设置监听
stroke 描边
hide 隐藏Badge
在ListView或者RecyclerView中使用

可参考demo中ListViewActivity、RecyclerViewActivity

一些注意事项
  • 请不要在xml中创建Badge
  • Badge和TargetView绑定是采用替换TargetView的Parent方式实现的,同时将Parent的Id和TargetView的Id设置成一样来保证不会在RelativeLayout中出现位置错乱问题,所以在bindTarget后再次使用findViewById(TargetViewId)得到的会是Parent而不是TargetView,此时建议使用Badge.getTargetView方法来获取TargetView,如果您有更好的解决方式并愿意和我分享,请在Issues中提交给我或者给我发邮件,谢谢。

BUG总结

本人在使用过程中遇到的一些坑:
1.在使用bindTarget时,最好不要绑定到一些RadioButton等按钮上,可在按钮边添加TextView(这个根据自己情况),因为可能出现按钮不能点击的情况。
2.如果绑定的View存在GONE隐藏的情况,Badge也要设置隐藏不然会出现隐藏部分空白。
以上是本人使用中遇到的问题,如果你在使用中遇到问题还有交流。

你可能感兴趣的:(Android消息未读BadgeView介绍)