2012-12-31 29 views
0

我創建了包含此特性popUpwindow:PopUpWindow解職回按鍵

popupWindow.setBackgroundDrawable(new BitmapDrawable()); 
    popupWindow.setFocusable(true); 
    popupWindow.setOutsideTouchable(false); 

提到這一點,也有popUpwindow的解僱時popUpWindow外單擊後。任何人都可以告訴我可以做些什麼來避免這種情況。 另外我還有一個音樂在popUpwindow播放,但播放時我無法增加或減少音量。 當popUpwindow處於焦點時,我無法訪問媒體音量控件。我已經讀過,如果在Keydown/up上有過濾方法,那麼setVolumeControlsStream(AudioManager.Stream_Music)將不起作用。但我已經使用keyDown方法來處理背壓休息我正在返回返回super.onKeyDown(keyCode,事件);

請提出解決方法。

回答

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); 
    } 

} 

願這幫助你。我用這個來避免在對話框外點擊時解除對話框。

+0

,這是不工作的popUpwindow – Vaibs

0

集中設置爲false彈出窗口。當在popUpWindow以外點擊時,它將避免被解僱popUpwindow

popupWindow.setFocusable(false); 
+0

我試過,但在觸摸外boundry它改變了背景畫面和popupwindow仍然存在於前。 – Vaibs

0
Try this- 
put below line end of your class 
@Override 
    public void onBackPressed() { 
     if (popupWindow != null) 
      popupWindow.dismiss(); 
     else 
      super.onBackPressed(); 
     finish(); 
    }