Можно ли долго кликнуть на WebView, чтобы вернуть позицию, на которой я щелкнул? - PullRequest
2 голосов
/ 14 июня 2011

Я хочу получить точные координаты X и Y, в которых я долго щелкал в окне, но я обнаружил, что в OnLongClickListener нет способа сделать это.

Возможно ли это?

Или я должен слушать JavaScript в webView?Как?

Ответы [ 2 ]

3 голосов
/ 14 июня 2011

Вам необходимо реализовать метод

public boolean onTouchEvent(MotionEvent event)

в вашем представлении, а затем вы можете увидеть координаты точки касания, вызывающей функцию event.getX () и event.getY (). Затем получите это значениепара переменных, к которым имеет доступ метод onLongClick.Более подробную информацию можно найти здесь

0 голосов
/ 01 февраля 2012

Полный рабочий код выглядит следующим образом. Вам нужно переписать на TouchEvent, действительно ...

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 для захвата координаты - возможно, я бы хотел знать почему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...