2015-01-30 7 views
1

목록보기가 있습니다. 사용자는이 목록보기를 오버레이하는 전체 화면 Window.FEATURE_NO_TITLE)에서 대화 상자를 열 수 있습니다. 사용자가이 대화 상자의 배경을 터치하면 닫힙니다.터치 이벤트를 다른보기로 위임하십시오.

이 터치 이벤트를 목록보기에 위임해야합니다. 내 말은, bg에 MotionEvent.ACTION_DOWN 후에 나는 대화를 닫아야한다. (잘 작동한다.) 목록보기에서 MotionEvent.ACTION_DOWN을 시작한다.

((LinearLayout) findViewById(R.id.dialog_bg)).setOnTouchListener(new View.OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       switch (event.getAction()) { 
        case MotionEvent.ACTION_DOWN: 
         MotionEvent motionEvent = MotionEvent.obtain(event);       
         activity.findViewById(R.id.fr_projects_list).dispatchTouchEvent(motionEvent); 
         close(); 

         break; 

        default: 
         break; 
       } 

       return false; 
      } 
     }); 

그것은 시작 ACTION_DOWN 목록보기에 :

나는 이런 식으로 뭔가를 시도했다. 그러나 thats 모두. ACTION_MOVE 등이 작동하지 않음 =/

답변

0

다른 작업을 수행하지 않는 이유는 ACTION_DOWN입니다. 모든 작업을 디스패치 해보세요.

((LinearLayout) findViewById(R.id.dialog_bg)).setOnTouchListener(new View.OnTouchListener() { 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
        MotionEvent motionEvent = MotionEvent.obtain(event);       
        activity.findViewById(R.id.fr_projects_list).dispatchTouchEvent(motionEvent); 
        if(event.getAtction==MotinEvent.ACTION_UP) close(); 
        return false; 
     } 
    }); 
+0

터치 이벤트를 종료하면 대화 상자를 닫습니다. 그래서 대화 후에 다른 이벤트는 없을 것입니다. 그리고 나는 목록보기의 사건으로해야한다. – Suvitruf

+0

@Suvitruf 답변을 업데이트했습니다. 그냥 시도 .. 호출 동작이 ACTION_UP 인 경우에만 닫기 – Praveen

+0

고객이 ACTION_UP이 아닌 ACTION_DOWN에서 대화 상자를 닫으려고합니다. 그것은 내 선택이 아니에요) = – Suvitruf