android PopupWindow引起外部view点击事件的一个诡异的bug

在Android开发中,遇到一个PopupWindow显示时导致外部View点击事件延迟响应的问题。当PopupWindow显示时,点击‘更多’需间隔一次才能触发点击事件。通过分析代码,发现在注释掉`popupWindow.setFocusable(true)`后,问题得到解决。目前原因尚不明确,欢迎了解的开发者留言交流。

先看需求,如图:


在点击更多的时候,更多右边那个向上和向下的箭头,点击的时候在标题栏下面弹一个popwindow,如图:


这个需求本来和简单的,相信大家都做过类似的,但是很奇怪的是 当popwindow没关闭的时候 你点击更多要间隔一次才会响应点击事件,先看下我popwindow是这样写的

if (popupWindow == null) {
View view = UIUtils.getView(R.layout.popupwindow_classification);
ListView lv_classific = (ListView) view.findViewById(R.id.lv_classific);
if(categories!=null&&!categories.isEmpty()){
classificAdapter = new SYHomeClassificAdapter(categories,this);
lv_classific.setAdapter(classificAdapter);
classificAdapter.setClosePopupWindow(new ClosePopupWindow() {
@Override
public void dismiss() {
dismissPopupWindow();
}
});
}
popupWindow = new PopupWindow(view, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
popupWindow.setOutsideTouchable(true);
// popupWindow.setFocusable(true);
popupWindow.setBackgroundDrawable(new BitmapDrawable());
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dismissPopupWindow();
}
});
}
if (popupWindow.isShowing()){
return;
}
popupWindow.setAnimationStyle(R.style.AnimationPreview1);
popupWindow.showAsDropDown(ll_home_root);

经过多次打log研究,发现当我们把popupWindow.setFocusable(true);这行代码注释了,发现就好了,反正我现在也没想通是为什么,只是把问题解决了!有知道为什么的,希望给我留言,再次谢谢


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值