razerdp/BasePopup

setBackPressEnable(true) 没用

NikoSoftware opened this issue · 16 comments

我想返回键不取消 popwindow 设置了这个参数但是没用

setBackPressEnable(false) ,不是true

好像我的小米手机设定true 和 false 都没效果,但用模拟器有效果

模拟器设置了,也没用

@NikoSoftware

有没有具体的代码,或者其实您可以进行调试。。。

以及是否会是特定的api或系统版本导致的,如果您能帮忙排查,万分感谢-V-

@razerdp 你好 setBackPressEnable(false) 无效
我在红米6.0 华为6.0 魅族5.1系统上测试不能拦截返回按钮

@OverRide
public boolean onBeforeDismiss() {
if (canBack) {
return true;
} else {
return false;
}
}

自己用一个变量去控制,完美解决

@zl277287818

啊哈,也可以的(虽然不太完美)。。。我都忘了我写过这个回调了- -我现在就加到readme里面

@zl277287818

不过这个方法有个问题,因为beforeDismiss会很粗暴的影响dismiss()流程,如果我只需要返回键不dismiss而点其他地方可以dismiss,这个方法就可能需要一个方法来提前把canBack改变以适应不同的需要,所以并不是非常完美哦

是的,不是很完美,现在finish页面的时候,我就是先set成true再dismiss... 不然泄露。不过可以临时解决一下项目需求。

image
这么解决也是可以的。。。(ง •_•)ง

@lapDog 是的,在activity下捕捉是可以的哈哈,只是如果想从popu内部捕捉,目前来说除非能拿到popup内部的那个framelayout,否则似乎没啥办法呢

同时加多一个条件 mPopupWindow.setFocusable(true);就可以按返回键关闭了

这个onBrforeDismiss怎么解决的返回键问题 没怎么看懂

@zhupengxiang 在activity给beforeDismiss回调,在activity捕捉keyevent,或者backpress从而决定popupwindow是否返回关闭

@NikoSoftware
@flyjiang2014
@Mr-PolarBear
@zl277287818
@lapDog
@JadynChan
@zhupengxiang

感谢你们的讨论和idea~在1.8.9里面我用了一种新的思路去解决这个问题,建议大家升级到1.8.9

具体解决方式:1.8.9 解决方案

如果大家有更完美的解决方案,欢迎继续探讨哦~

本issue不关闭。