PopUpWindow通过后退键解雇

时间:2012-12-31 07:18:09

标签: android android-layout

我创建了一个包含以下属性的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);

请建议克服这个问题的方法。

3 个答案:

答案 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();
    }