2

현재 더블 탭에 응답하려는 webView에 GestureDetector가 있습니다. 그러나 webView는 모든 단일 탭을 무시합니다. 아마도이 동작도 재정의했습니다. 내가 찾고 있어요더블 탭을 가로 채기 만합니다.

:

  • 더블 탭

    내 코드에 의해 감지 내 활동에 의해 함께
  • 일반 탭을 처리해야하기는

이 여기 웹보기에 의해 정상적으로 처리 될 수 있습니다 내가 지금까지 가지고 :

final WebView web = (WebView) findViewById(R.id.webView1); 
WebViewClient webrules = new WebViewClient(){ 
     public boolean shouldOverrideUrlLoading(WebView web,String url){ 
      return false; 
     } 
    }; 
    web.setWebViewClient(webrules); 
    WebSettings webSettings = web.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 

 

final GestureDetector gestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener() { 

     @Override 
     public boolean onDoubleTap(MotionEvent e) { 
      Log.d("**APP**", "Double Tap event"); 
      return true; 
     } 

     @Override 
     public boolean onDown(MotionEvent e) { 
      return true; 
     } 
    }); 
    gestureDetector.setIsLongpressEnabled(true); 

    web.setOnTouchListener(new OnTouchListener(){ 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      return gestureDetector.onTouchEvent(event); 
     } 

    }); 

정상적인 단일 탭을 웹뷰에서 처리하려면 어떻게해야합니까?

답변

4

onDown 메소드에서 false를 반환 해주세요. "true"를 리턴하는 것은 "이벤트가 소비되어"전달되지 않음을 의미합니다.

+1

일부 오류 및 경고를 유발하지만 정상적으로 작동하지만 XD *는 6 분 기다림 * – Rory