android badgeview activity不显示,关于BadgeView遇到的一个奇怪的问题和解决办法
今天继续完成即时通讯界面模块的开发,想模仿微信和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遇到的一个奇怪的问题和解决办法相关推荐
- WIN10运行软件,窗口不显示(移动到屏幕外无法复原)的解决办法 Label:Win10解决方案
WIN10运行软件,窗口不显示(移动到屏幕外无法复原)的解决办法 Label:Win10解决方案 参考文章: (1)WIN10运行软件,窗口不显示(移动到屏幕外无法复原)的解决办法 Label:Win ...
- android 生成泛型对象,java android解析多层含有泛型对象的json数据获取不到泛型类型解析失败解决办法...
####问题描述 * java 解析多层含有泛型对象的json数据获取不到泛型类型 * 如果将泛型改成实际的类型就能正常解析 * 如果不改成实际的类型泛型数据被解析成com.google.gson.i ...
- 12333提交显示服务器异常,掌上12333显示没有收到异地协助认证书什么原因_具体解决办法流程_3DM手游...
在使用掌上12333的过程中,有不少小伙伴都出现了"没有收到异地协助认证书"这样的提示出现,导致无法正常进行下一步的操作.那么掌上12333显示没有收到异地协助认证书什么原因呢?这 ...
- 关于显示器显示输入信号超出范围,请调整为1600x900@60hz解决办法
显示器显示输入信号超出范围,请调整为1600x900@60hz解决办法.安排上. 事件简述: 笔记本太小想使用VGA线连接到之前的比较老的19寸显示器上,这样比较方便.但是连接的时候出现了一些问题.如 ...
- (PD)PowerDesigner设计表时显示注释列Comment,Columns中没有Comment的解决办法(关联MySQL)
1.在所要编辑的表上双击,打开Table Properties窗口,并将上面的选项卡切换到Columns,如下图: 2.点击Customize Columns and Filter按钮,下图红框中的按 ...
- 虚拟机已经显示了已连接的图标但不能上网的解决办法+虚拟机显示网络连接激活失败
虚拟机已经显示了已连接的图标但不能上网的解决办法+虚拟机显示网络连接激活失败 问题叙述 解决办法 问题叙述 解决办法 1.https://blog.csdn.net/big_rotor/article ...
- cnpm显示成功安装后cnpm不是内部命令的解决办法
cnpm显示成功安装后cnpm不是内部命令的解决办法 今天在用npm命令成功安装完淘宝镜像后,用cnpm -v命令,显示不是内部命令,其实昨天安装vue cil命令后,也是显示不是内部命令. 原因 解 ...
- excel 如何 筛选,以及筛选后,在复制时 显示 不可对多重选定区域使用此命令的解决办法...
excel 如何 筛选,以及筛选后,在复制时 显示 不可对多重选定区域使用此命令的解决办法 选中 第一行, 开始 筛选 选择 某一列 右下角的小三角 ,进行内容筛选 即可. excel 筛选后,在复制 ...
- main.xml Design显示不是设计界面,而是view属性的解决办法
res/layout/main.xml,升级SDK和ADT之前,这个一直是显示界面,升级后,点开这个文件,切到Design,发现显示不了界面,而是以表格的形式显示的该界面中各个view的属性值-! 解 ...
- android qq三方登录授权失败,QQ第三方登陆授权失败110401原因及解决办法分享
qq第三方登陆授权失败出现代码110401是什么情况?遇到这种情况该如何解决?相信很多用户们在操作的时候都出现过类似的情况吧?下面是小编带来的攻略解析,一起来关注下! qq第三方登陆授权失败11040 ...
最新文章
- 树莓派~Ubuntu~OpenCV
- OS- -内存之页面置换算法
- Apache ECharts顺利毕业,成为ASF顶级项目
- windows 串口编程 c语言,windows下C语言版串口发送程序(基于VS2017)
- webapp开发学习--Ionic+Cordova 环境搭建
- 鼠标侧键能改为ctrl吗_200元档次又一高竞争力外设 雷柏V30鼠标评测
- 平面直角坐标系中的旋转公式_初一下学期,平面直角坐标系中求图形面积,转化与化归思想的体现...
- Kubernetes 配置私有镜像仓库时,没有权限访问的问题
- php 常见的视频格式转换
- java在文本框动态显示时间,在文本框中动态地显示当前时间,有木有人做过,指导下初学者...
- 增加网站的档次!网页设计师可在网站中加入暗色调
- STM32应用(七)JY901九轴姿态模块(串口DMA空闲中断和I2C通信)
- 回顾2021,展望2022,静Yu的万粉成长之路
- vue实现自动语音播报功能,未解决。(已用js解决20220210)
- 账号已被停用,请咨询系统管理员
- UNIX时间戳与日期的相互转换
- 一块钱可以拿到一包加拿大西洋参 一块钱可以拿到一盒50g正韩一宫庄高丽参 一块钱可以拿到一套保鲜扣扣 一块钱能拿到一盒一宫庄鹿茸 可以去哪里拿? 看在我们的情分上告送你 可以加微**信188 247
- day07 pyecharts制图
- EventSource 引发的一系列事件
- 官宣!美国通讯芯片巨头博通610亿美元收购云计算巨头威睿 | 美通社头条