2016-11-16 62 views
0
私はWebViewの上のタッチイベントを無効にしようとしている

で無効にされていない、これは、onTouchので、()私はタッチイベントは、AndroidのWebViewの

webview.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     Log.info("webview", "onTouch is called"); 
     return true; 
    } 
}); 

は、私はタッチイベントのログメッセージを見やったことは間違いなく、常にリターンです本当。ただし、タッチイベントはまだウェブビューに伝播しています(たとえば、ウェブビューのhtmlページのボタン/リンクをスクロールして操作できます)。ここで何かが恋しい?これをデバッグ/修正するにはどうすればよいですか?

ありがとうございます!

+0

を仕事をしなければならない:で'クリッカブル= "false" の場合あなたのXML、あまりにも助けのかもしれない.. – San

+0

私は上記のコードと一緒にwebview.setClickable(false)を追加しようとしましたが、動作しませんでした。タッチイベントを一時的に無効にしたいので、レイアウトに含めなかった。 – hixhix

+0

'WebView.setFocusable(false);'を試してください、それはちょっと試してください –

答えて

0

が起こっていただきました!私は知らないが、以下では、 `アンドロイドを追加しようと

XML

<WebView 
    android:id="@+id/web_view" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"/> 

JAVA

public class MainActivity extends AppCompatActivity { 
    @Override 
    protected void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     final WebView webView = new WebView(this); 
     setContentView(webView); 

     webView.setWebViewClient(new HelloWebViewClient()); 

     webView.loadUrl("http://www.google.com"); 

     webView.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       return true; 
      } 
     }); 
    } 

    public class HelloWebViewClient extends WebViewClient { 
     // Catch additional url loading 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { 
      return true; 
     } 
    } 
}