我创建了一个包含以下属性的popUpwindow:
popupWindow.setBackgroundDrawable(new BitmapDrawable());
popupWindow.setFocusable(true);
popupWindow.setOutsideTouchable(false);
在提到这个之后,当popUpWindow外部点击时,会解雇popUpwindow。任何人都可以告诉我可以做些什么来避免这种情况。 而且我有一个音乐在popUpwindow播放,但是当它播放时,我无法增加或减少相同的音量。 当popUpwindow处于焦点时,我无法访问媒体音量控件。我已经读过如果在Keydown / up上有overover方法,则setVolumeControlsStream(AudioManager.Stream_Music)将无效。但我已经使用keyDown方法处理backpress休息我返回返回super.onKeyDown(keyCode,event);
请建议克服这个问题的方法。
答案 0 :(得分:1)
试试这个
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
Rect dialogBounds = new Rect();
getWindow().getDecorView().getHitRect(dialogBounds);
if (!dialogBounds.contains((int) ev.getX(), (int) ev.getY())) {
return false;
}else{
return super.dispatchTouchEvent(ev);
}
}
愿这对你有所帮助。我用它来避免在对话框外单击时解除Dialog。
答案 1 :(得分:0)
将弹焦窗口设置为 false
。在popUpwindow
之外点击时,它会避免解除popUpWindow
。
popupWindow.setFocusable(false);
答案 2 :(得分:0)
Try this-
put below line end of your class
@Override
public void onBackPressed() {
if (popupWindow != null)
popupWindow.dismiss();
else
super.onBackPressed();
finish();
}