2015-09-26 60 views
0

當我單擊PopupWindow之外的空間時,該窗口將被解除。但是,如果我想在窗口外滾動ListView,那麼滾動事件首先會被識別爲單擊事件,並被窗口攔截,因此在滾動未執行時該窗口會被取消。如何防止滾動事件被PopupWindow攔截

如何在滾動ListView的同時窗口被解僱,以便我不需要再次滾動它。

回答

2

試試這組屬性:

window.setTouchable(true); 
    window.setOutsideTouchable(true); 
    window.setFocusable(false); 

在這種情況下彈出不會被解僱,當你點擊它的框架之外,可以添加監聽器捕捉外界接觸並關閉彈出:

window.setTouchInterceptor(new OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      if (event.getAction() == MotionEvent.ACTION_OUTSIDE) { 
       window.dismiss(); 
       return true; 
      } 
      return false; 
     } 
    }); 
+0

謝謝!有用。 – ProtossShuttle

+0

很高興聽到:) –