博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
popupWindow之添加控件后(如button,raidobutton等),点击popupWindow背景透明的BUG处理办法...
阅读量:5781 次
发布时间:2019-06-18

本文共 1491 字,大约阅读时间需要 4 分钟。

如题:

  今天开发中遇到popupWindow的一个bug,在popupWindow中添加了一个radioGroup,radioGroup中添加了两个radiobutton,两个radiobutton的样式都改成自己定义的了,在测试的时候发现了一个问题,在popupWindow中点击radiobutton的时候,点击的那一块背景变成透明的了,感觉非常恶心,发现时popupwindow.setBackgroundDrawable(new ColorDrawable())惹的祸,就四处寻找解决方法,发现只要popupWindow.setBackgroundDrawable(null)或者不要这句时点击时就没有问题。但是又引发了点击popupwindow外面和返回键popupwindow不消失问题,问题明确之后,用以下方法解决了此问题:  

popupWindowSort.setBackgroundDrawable(null);

final View contentView = popupWindowSort.getContentView();
// 设置触摸事件
contentView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
final int x = (int) event.getX();
final int y = (int) event.getY();

if ((event.getAction() == MotionEvent.ACTION_DOWN) && ((x < 0) || (x >= popupWindowSort.getWidth()) || (y < 0) || (y >= popupWindowSort.getHeight()))) {

popupWindowSort.dismiss();
return true;
} else if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
popupWindowSort.dismiss();
return true;
} else {
return contentView.onTouchEvent(event);
}
}
});

用以上代码解决了点击popupwindow之外区域popupwindow不消失的问题,下面得解决响应返回键事件的问题:

 

View view = LayoutInflater.from(this).inflate(R.layout.layout_sort, null);//popupwindow的布局文件

view.setOnKeyListener(new OnKeyListener() {

public boolean onKey(View v, int keyCode, KeyEvent event) {
// 手机键盘上的返回键
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
popupWindowSort.dismiss();
break;
}
return false;
}
});

到此,用到以上两段代码终于成功解决了popupwindow的这个bug!

转载于:https://www.cnblogs.com/feelaway/p/3462784.html

你可能感兴趣的文章
统计数据库大小
查看>>
IO流的学习--文件夹下文件的复制
查看>>
第十六章:脚本化HTTP
查看>>
EXCEL表中如何让数值变成万元或亿元
查看>>
nginx在响应request header时候带下划线的需要开启的选项
查看>>
Linux下DHCP服务器配置
查看>>
AndroidStudio中导入SlidingMenu报错解决方案
查看>>
编写高性能的java程序
查看>>
Spring 的配置详解
查看>>
linux已经不存在惊群现象
查看>>
上位机和底层逻辑的解耦
查看>>
关于微信二次分享 配置标题 描述 图片??
查看>>
springcloud使用zookeeper作为config的配置中心
查看>>
校园火灾Focue-2---》洗手间的一套-》电梯
查看>>
bzoj1913
查看>>
L104
查看>>
分镜头脚本
查看>>
链表基本操作的实现(转)
查看>>
邮件发送1
查看>>
[转] libcurl异步方式使用总结(附流程图)
查看>>