リンク機能を失うことなく、WebViewを含むアクティビティでタッチイベントをキャプチャすることは可能ですか?WebViewのタッチ操作をリンクに制限する
リンクが付いたWebページを表示するWebViewを考えてみましょう。ユーザーがリンクをタップすると、WebViewがタッチイベントを処理するようになります。ユーザーが他の場所をタップすると、そのアクティビティがタッチイベントを処理するようになります。
どうすればいいですか?
リンク機能を失うことなく、WebViewを含むアクティビティでタッチイベントをキャプチャすることは可能ですか?WebViewのタッチ操作をリンクに制限する
リンクが付いたWebページを表示するWebViewを考えてみましょう。ユーザーがリンクをタップすると、WebViewがタッチイベントを処理するようになります。ユーザーが他の場所をタップすると、そのアクティビティがタッチイベントを処理するようになります。
どうすればいいですか?
はい、そうです。 (あなたがあなたの質問に、より具体的でない限り、私はこの上でより詳しく説明することはできません。)
はい、申し訳ありません。最悪の質問。まもなく明らかになります。 – hpique
私が正しくあなたの質問を理解していれば、何かがonTouchEvent()
にリンクがあるかどうかを解釈するのは難しいようだと思いますそれが知っているのはX、Y座標(htmlではない)なのでです。しかし、私の頭の上からは、WebViewでjavascriptのバインディング部分を使用して、JavaScriptがリンクかどうかを判断し、それに応じて行動する可能性があります。もう一度、私はこれをやっていないし、それをテストしていない...ただ大声で考えている。
あなたのWebViewを初期化するときは、試してみてください。
はmWebView.setWebViewClient(new WebViewClientOverrider());
その後、プライベートクラスを作成します。
private class WebViewClientOverrider extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//TODO handle the link
return true;
}
}
最後に、TODOがリンクを処理するための独自のコードとリンクラインを扱う置き換えます選択。
それとも、スタックトレースを監視することができます。
android.webkit.CallbackProxy.uiOverrideUrlLoading()
は(上書きWebView.loadUrl()メソッドで作成された)スロー可能オブジェクトからあなたのスタックトレースを決定する方法についてはhttp://www.javapractices.com/topic/TopicAction.do?Id=78を参照してください。
この質問の実装についても興味があります。ブラウザ(私が前提)は、ボタンを含むことができるユーザーインターフェイスが上に重ねられたwebview以上のものではありません。また、マップビューでは、ズームイン/ズームアウトボタンがマップビューの上に重ねられます。より広い意味では、私はあなたがウェブビューで特に気をつけていない限り、どのビューにもボタンを重ねることに興味があると思います。 – Gimbl
@Gimbl質問を完全に書き換えました。私はそれが可能だった場合、それを削除し、新しいものを投稿していたでしょう。 – hpique