私はウィンドウ内でlongClickedと正確なXとYの位置を取得したいが、これを行うにはOnLongClickListenerにメソッドがないことがわかった。クリックした位置を返すためにWebViewをlongClickすることは可能ですか?
これは可能ですか?
または、WebViewでJavaScriptを聞く必要がありますか?どうやって?その後にこれを取得する)
私はウィンドウ内でlongClickedと正確なXとYの位置を取得したいが、これを行うにはOnLongClickListenerにメソッドがないことがわかった。クリックした位置を返すためにWebViewをlongClickすることは可能ですか?
これは可能ですか?
または、WebViewでJavaScriptを聞く必要がありますか?どうやって?その後にこれを取得する)
あなたは方法をあなたのビューで
public boolean onTouchEvent(MotionEvent event)
を実装する必要があり、その後、あなたは機能event.getX()と event.getYを(呼び出し感動ポイントの 座標を見ることができますonLongClickメソッドがアクセスできるいくつかの変数を設定します。 詳細はこちらhere
完全なコードは次のようになります。私は多分理由を知りたいのですが - あなたは確かに...特に
public class SubWebView extends WebView {
private Point lastTouch;
public SubWebView (Context context) {
super(context);
...
super.setLongClickable(true);
setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
return handler.onLongClick(lastTouch.x, lastTouch.y);
}
});
}
@Override
public boolean onTouchEvent (MotionEvent ev) {
lastTouch = new Point((int) ev.getX(), (int) ev.getY()) ;
return super.onTouchEvent(ev);
}
が、何らかの理由で、それは座標をキャプチャするOnTouchEventListenerの設定は動作しません、onTouchEventを上書きする必要があります。
ありがとうございました!良い解決策! – Aloong