2017-01-19 5 views
0

Я вроде как новый, но очень хорошо разбираюсь в этом. Надеюсь, ты не против помогать мне, где я застрял.Как я могу установить текстовый вид обратно в исходное место после его перемещения?

Это мой OnTouchListener. Он предназначен для отображения таймера, и я хочу, чтобы таймер отключился, если кто-то перемещает представление, отображающее время.

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

Проблема есть. Я установлю представление как «GONE», чтобы вы не увидели его после его перемещения, но мне все же нужно, чтобы представление возвращалось в исходное место, чтобы при следующем запуске следующего таймера он будет сброшен ,

//setOnTouchListener Here 
    zoneATimerText.setOnTouchListener(new View.OnTouchListener() { 


     @Override 
     public boolean onTouch(View view, MotionEvent event) { 

      switch (event.getAction()) { 

       case MotionEvent.ACTION_DOWN: 

        dX = view.getX() - event.getRawX(); 
        dY = view.getY() - event.getRawY(); 
        break; 

       case MotionEvent.ACTION_MOVE: 
        destroyCountDownTimer(); 
        view.animate() 
          .x(event.getRawX() + dX) 
          .y(event.getRawY() + dY) 
          .setDuration(0) 
          .start(); 
        Log.v("on move", "you're moving"); 
        break; 
       default: 
        return true; 
      } 
      return true; 
     } 
    }); 
+0

Что делать, если вы сохраните первое место, где есть таймер? Затем, когда таймер выключен, установите его обратно в это место и 'setVisibility' на' visible'? – TruongHieu

ответ

0

Сохранить исходное положение точки зрения т.е. х, у на уровне класса, а когда ваша анимация будет сделана, вы скрыть вид с видимостью ушли в то время просто сбросить положение положения при просмотре с помощью метода (вид .setX(), view.setY()).