2014-07-19 2 views
2

화면 맨 아래에 버튼을 추가하면 사용자가 버튼을 터치하면 대화 상자가 표시됩니다.터치 위의 Android 표시 대화 상자

는 내가 원하는 사용자의 터치 이벤트가 action_up 때, 나는 대화 상자가

대화 상자가 표시되고

, 그것을 다룰 것 최상위보기 DecorView에 추가되는 것을 알고이 대화

btn.setOnTouchListener(new OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      switch(event.getAction()){ 
      case MotionEvent.ACTION_DOWN: 
       if (dialog != null && !dialog.isShowing()) { 
        dialog.show(); 
       } 
       break; 
      case MotionEvent.ACTION_MOVE: 
       break; 
      case MotionEvent.ACTION_UP: 
       if(dialog!= null && dialog.isShowing()){ 
        dialog.dismiss(); 
       } 
       break; 
      } 
      return true; 
     } 
    }); 

을 기각 것이다 아닌 다른 뷰

이 코드를 테스트 여전히 터치 이벤트의 버튼 ontouch 방법

에 전달되는 터치 이벤트에 가공 한 대화에 의해 갑자기, 그게 맞습니까?

왜 대화 커버 뷰가 터치 이벤트를 방해하지 않습니까?

+0

예, 당신 말이 맞아 봐. 이 대화 상자는 손가락을 화면에서 들어 올리면 사라집니다. 그러나 MotionEvent_ACTION_CANCEL을 잊지 마십시오. – joao2fast4u

답변

0

터치 이벤트가 대화 상자에 의해 방해되지 않는다면 맞습니까? 그게 틀렸어도 창이 경계 바깥에 닿으면 대화 상자가 취소됩니다. 대화 상자보기가 터치 이벤트를 방해하지 않는 이유는 무엇입니까? 대화 상자에서 터치 이벤트를 보거나 중단합니다. 이 시도 테스트 :

dialog.setCancelable(false); 
dialog.setCanceledOnTouchOutside(false); 

Dialog Class