今天继续完成即时通讯界面模块的开发,想模仿微信和QQ弄个消息提醒的小气泡,就是一有消息到来,会在相应的控件上显示消息数目的红色气泡。因为曾经有了解过有个开源项目能实现这种结果,便开始downLoad下来使用了,这个开源项目是——BadgeView,功能实现很简单,调用更为简单,没什么难度。但是在开发中却遇到了一个问题,就是结合Viewpager+Fragment的滑动切换按钮,在按钮处加上badgeView后,却使得原先可以滑动和点击的按钮不在具备此功能,甚至已经被badgeView覆盖,根本看不到按钮的存在,百思不得其解啊!!!自己捣鼓了好久还是没法解决,终于网络的资源真是无穷的,你遇到问题了别人当然也能遇到,而且还会给出比较正确的解答方法,而我就是通过这些大神的解答完美的解决了这个问题。可以说此Bug是badgeView本身的代码问题吧。

遇到的问题图片展示:

解决之后的图片就看起来顺畅多了:

具体解决办法:

实现原理:在原来布局的基础上,添加一层Button布局覆盖在原先的布局之上,并且布局背景必须是透明的,而且在java代码中,实现的时候必须调用的控件是覆盖后的控件这两个缺一不可!

xml修改后的关键代码:

android:layout_width="match_parent"

android:layout_height="45dp"

android:layout_alignParentTop="true"

android:orientation="horizontal"

android:background="#00000000">

android:id="@+id/overlay_btn_chat"

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="1"

android:background="#00000000"/>

android:id="@+id/overlay_btn_contact"

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="1"

android:background="#00000000"/>

android:visibility="invisible"

android:layout_width="0dp"

android:layout_height="match_parent"

android:layout_weight="1"/>

JAVA代码里的实现过程,包括怎么调用BadgeView的使用方法:

overlay_btn_chat = (Button)findViewById(R.id.overlay_btn_chat);

overlay_btn_contact = (Button)findViewById(R.id.overlay_btn_contact);

ChatBadgeViewNotify(overlay_btn_chat);

ContactBadgeViewNotify(overlay_btn_contact);

/**

* 初始化聊天按钮的badgeView控件

*/

private void ChatBadgeViewNotify(View view) {

chat_badge = new BadgeView(this, view);

chat_badge.setBadgePosition(BadgeView.POSITION_TOP_RIGHT);

chat_badge.setText("1");

chat_badge.toggle();

}

/**

* 初始化联系人的badgeView控件

*/

private void ContactBadgeViewNotify(View view) {

contact_badge = new BadgeView(this, view);

contact_badge.setBadgePosition(BadgeView.POSITION_TOP_RIGHT);

contact_badge.setText("66");

contact_badge.toggle();

}到这里就基本完成了,可以很完美的解决这个问题。但是这样也存在一个问题,加载布局时需要额外再加载一个布局,这样效率不是很高,这点再性能优化上值得考虑,但也是迫不得已的选择。

android badgeview activity不显示,关于BadgeView遇到的一个奇怪的问题和解决办法相关推荐

  1. WIN10运行软件,窗口不显示(移动到屏幕外无法复原)的解决办法 Label:Win10解决方案

    WIN10运行软件,窗口不显示(移动到屏幕外无法复原)的解决办法 Label:Win10解决方案 参考文章: (1)WIN10运行软件,窗口不显示(移动到屏幕外无法复原)的解决办法 Label:Win ...

  2. android 生成泛型对象,java android解析多层含有泛型对象的json数据获取不到泛型类型解析失败解决办法...

    ####问题描述 * java 解析多层含有泛型对象的json数据获取不到泛型类型 * 如果将泛型改成实际的类型就能正常解析 * 如果不改成实际的类型泛型数据被解析成com.google.gson.i ...

  3. 12333提交显示服务器异常,掌上12333显示没有收到异地协助认证书什么原因_具体解决办法流程_3DM手游...

    在使用掌上12333的过程中,有不少小伙伴都出现了"没有收到异地协助认证书"这样的提示出现,导致无法正常进行下一步的操作.那么掌上12333显示没有收到异地协助认证书什么原因呢?这 ...

  4. 关于显示器显示输入信号超出范围,请调整为1600x900@60hz解决办法

    显示器显示输入信号超出范围,请调整为1600x900@60hz解决办法.安排上. 事件简述: 笔记本太小想使用VGA线连接到之前的比较老的19寸显示器上,这样比较方便.但是连接的时候出现了一些问题.如 ...

  5. (PD)PowerDesigner设计表时显示注释列Comment,Columns中没有Comment的解决办法(关联MySQL)

    1.在所要编辑的表上双击,打开Table Properties窗口,并将上面的选项卡切换到Columns,如下图: 2.点击Customize Columns and Filter按钮,下图红框中的按 ...

  6. 虚拟机已经显示了已连接的图标但不能上网的解决办法+虚拟机显示网络连接激活失败

    虚拟机已经显示了已连接的图标但不能上网的解决办法+虚拟机显示网络连接激活失败 问题叙述 解决办法 问题叙述 解决办法 1.https://blog.csdn.net/big_rotor/article ...

  7. cnpm显示成功安装后cnpm不是内部命令的解决办法

    cnpm显示成功安装后cnpm不是内部命令的解决办法 今天在用npm命令成功安装完淘宝镜像后,用cnpm -v命令,显示不是内部命令,其实昨天安装vue cil命令后,也是显示不是内部命令. 原因 解 ...

  8. excel 如何 筛选,以及筛选后,在复制时 显示 不可对多重选定区域使用此命令的解决办法...

    excel 如何 筛选,以及筛选后,在复制时 显示 不可对多重选定区域使用此命令的解决办法 选中 第一行, 开始 筛选 选择 某一列 右下角的小三角 ,进行内容筛选 即可. excel 筛选后,在复制 ...

  9. main.xml Design显示不是设计界面,而是view属性的解决办法

    res/layout/main.xml,升级SDK和ADT之前,这个一直是显示界面,升级后,点开这个文件,切到Design,发现显示不了界面,而是以表格的形式显示的该界面中各个view的属性值-! 解 ...

  10. android qq三方登录授权失败,QQ第三方登陆授权失败110401原因及解决办法分享

    qq第三方登陆授权失败出现代码110401是什么情况?遇到这种情况该如何解决?相信很多用户们在操作的时候都出现过类似的情况吧?下面是小编带来的攻略解析,一起来关注下! qq第三方登陆授权失败11040 ...

最新文章

  1. 树莓派~Ubuntu~OpenCV
  2. OS- -内存之页面置换算法
  3. Apache ECharts顺利毕业,成为ASF顶级项目
  4. windows 串口编程 c语言,windows下C语言版串口发送程序(基于VS2017)
  5. webapp开发学习--Ionic+Cordova 环境搭建
  6. 鼠标侧键能改为ctrl吗_200元档次又一高竞争力外设 雷柏V30鼠标评测
  7. 平面直角坐标系中的旋转公式_初一下学期,平面直角坐标系中求图形面积,转化与化归思想的体现...
  8. Kubernetes 配置私有镜像仓库时,没有权限访问的问题
  9. php 常见的视频格式转换
  10. java在文本框动态显示时间,在文本框中动态地显示当前时间,有木有人做过,指导下初学者...
  11. 增加网站的档次!网页设计师可在网站中加入暗色调
  12. STM32应用(七)JY901九轴姿态模块(串口DMA空闲中断和I2C通信)
  13. 回顾2021,展望2022,静Yu的万粉成长之路
  14. vue实现自动语音播报功能,未解决。(已用js解决20220210)
  15. 账号已被停用,请咨询系统管理员
  16. UNIX时间戳与日期的相互转换
  17. 一块钱可以拿到一包加拿大西洋参 一块钱可以拿到一盒50g正韩一宫庄高丽参 一块钱可以拿到一套保鲜扣扣 一块钱能拿到一盒一宫庄鹿茸 可以去哪里拿? 看在我们的情分上告送你 可以加微**信188 247
  18. day07 pyecharts制图
  19. EventSource 引发的一系列事件
  20. 官宣!美国通讯芯片巨头博通610亿美元收购云计算巨头威睿 | 美通社头条

热门文章

  1. 元宵节快乐 | 谈心
  2. DefaultApplication_Snoop
  3. 宽带猫、路由器、交换机的作用与区别是什么?
  4. AndroidX是什么?
  5. 京东官网首页js+css+html基础
  6. 通过网线实现两台PC相互通信(并实现访问公网)
  7. html如何设置导航栏例子,CSS 导航栏
  8. Mybatis常见技巧
  9. 笔记本电脑设置WiFi共享
  10. bzz xch出来后fil未来会怎么样?