未读消息显示小红点Demo——关于QBadgeView的使用

一、需求
1.内容:实现BottomNavigation根据相应界面中有无未读消息显示小红点
2.demo:
demo

二、实现步骤
1.首先根据BottomNavigation的Item数量确定小红点的数量
定义一个数组常量badges用来存放小红点

private val badges = arrayOfNulls<Badge?>(3)

2.检查页面是否有未读消息,根据未读消息的数量来选择显示或隐藏小红点

private fun checkMorePageUnReadData() {
    val unread = //读取未读消息数量
    ...
    if (unread > 0) {
        //显示
    } else {
        //隐藏
    }
}

3.显示或隐藏小红点

  • 显示小红点:如果小红点存在则退出addBadgeAt(…)方法;如果不存在则显示小红点,显示时可设置文字,背景等内容,并绑定目标视图。
  • 隐藏小红点:循环遍历隐藏目标小红点
//显示
private fun addBadgeAt(position: Int, text: String? = "") {
    if (badges[position] != null) {
        return
    }
    @Suppress("UsePropertyAccessSyntax")
    badges[position] = QBadgeView(this)
        .setBadgeText(text)
        .setBadgeBackground(
            ContextCompat.getDrawable(
                this,
                R.drawable.shape_tab_red_tip
            )
        )
        .setGravityOffset(dip(9).toFloat(), dip(3).toFloat(), true)
        .bindTarget(new_bottom_navigation.getBottomNavigationItemView(position))
}
//隐藏
badges.forEach {
    it?.hide(false)
}

三、Q&A

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值