最近项目需要做个客服的,在任意界面都可以进入客服界面,首先想到的就是悬浮窗,在GitHub上找到了一个很不错的库
https://github.com/yhaolpz/FloatWindow
然后开始按照步骤一步步引入到自己的项目中来
最后在MainActivity 的onCreate() 方法中引入入initFloatMenu()
private void initFloatMenu() {
ImageView imageView = new ImageView(getApplicationContext());
imageView.setImageResource(R.drawable.menu);
FloatWindow
.with(getApplicationContext())
.setView(imageView)
.setWidth(Screen.width, 0.16f) //设置悬浮控件宽高
.setHeight(Screen.width, 0.16f)
.setX(Screen.width, 0.8f)
.setY(Screen.height, 0.4f)
.setMoveType(MoveType.slide,0,0)
.setMoveStyle(500, new BounceInterpolator())
.setFilter(true,MainActivity.class)
.setDesktopShow(false)
.build();
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MyUtils.showMenuFloat(new MInterFaceUtils.CallBack() {
@Override
public void success(Object o) {
}
@Override
public void fail(Object o) {
}
});
}
});
}
然后运行,一切似乎特别平静,可是当APK运行起来以后,我发现那个悬浮窗显示一秒钟,然后马上消失!
杀掉重启还是这样,晕,然道是我权限没有给,查看发现悬浮窗的权限已经打开,所有的配置都正确。
折腾了一段时间后,我进入项目例子中,发现初始化是在Application中做的,我把initFloatMenu() 这段初始化的代码放入了 Application 的onCreate() 方法中,重新运行,
APP启动以后,嘻嘻,一切正常,悬浮窗正常显示。
本文记录了一个在项目中实现悬浮窗功能时遇到的问题:悬浮窗在一秒钟后自动消失。通过调整初始化位置从MainActivity的onCreate()方法移至Application的onCreate()方法,成功解决了悬浮窗显示不稳定的问题。
1499

被折叠的 条评论
为什么被折叠?



