Возможно ли "перетаскивание с помощью longclick" на Android? - PullRequest
0 голосов
/ 22 июня 2011

Я работаю над графиками. Я могу увеличивать-уменьшать, перетаскивая ... Также мне нужно долго щелкать с перетаскиванием. если вам нужно объяснить, пользователь может longClıck для просмотра значений графиков, а пользователь может перетаскивать его влево, вправо с помощью longclick, чтобы увидеть другие значения ... Может ли Android это почувствовать? Я использую библиотеку achartengine.

Я могу справиться с этим сейчас :), но у меня есть еще одна проблема ...

 longPressDetector = new GestureDetector(getContext(), new SimpleOnGestureListener() {
     @Override
     public void onLongPress(final MotionEvent e) {
        int x = (int) e.getX();
        final int y = (int) e.getY();
        Toast.makeText(context, "long press", Toast.LENGTH_SHORT).show();
        }
       });

Но код не тот, который я понимаю. Что я должен знать ??

   @Override
  public boolean onTouchEvent(MotionEvent event) {
  if (longPressDetector.onTouchEvent(event)) {
      return true; *** not work.
  }

А можно ли с помощью longClick перетаскивать? Я прав?

1 Ответ

1 голос
/ 11 октября 2011

ОК, я использую это ..

   longPressDetector = new GestureDetector(getContext(),
            new SimpleOnGestureListener() {
                @Override
                public void onLongPress(final MotionEvent e) {
                    if (!isVolumeChart) {
                        touchHandler.handleLongTouch(true);
                        onLongPress = true;
                    }
                }

                @Override
                public boolean onSingleTapUp(MotionEvent e) {
                    if (!isVolumeChart && onClickLayout != null)
                        onClickLayout.onClickedView(rootLayout);
                    return super.onSingleTapUp(e);
                }

                @Override
                public boolean onDoubleTap(MotionEvent e) {
                    if (!isVolumeChart) {
                        fitZoom = new FitZoom(mChart);
                        zoomReset();
                        if (volumeView != null) {
                            volumeView.fitZoom = new FitZoom(
                                    volumeView.mChart);
                            volumeView.zoomReset();
                        }
                    }
                    return super.onDoubleTap(e);
                }
            });
...