2017-06-16 22 views
0

我能知道如何編輯文本中的Android觸摸偵聽器只垂直移動?EDITTEXT只移動垂直的Andriod

這裏是我實現它垂直方向而不是與我的手指運動精確移動。這是閃爍,它沒有正確定位,我離開編輯文本視圖

x=event.getX(); 
      y=event.getY(); 

      switch (event.getAction()) 
      { 
       case MotionEvent.ACTION_MOVE: 
        /*movabletext.setY(y);*/ 
        break; 

       case MotionEvent.ACTION_UP: 

        movabletext.setY(y); 

        break; 
       case MotionEvent.ACTION_DOWN: 
        movabletext.setY(y); 

        break; 

      } 


      return true; 
     } 

回答

1

我可能不明白你的問題準確。但是,如果您希望編輯文本只能垂直移動,只需在每次按下時將x設置爲常量即可。

也許這樣的事情

x=event.getX(); 
     y=event.getY(); 

     switch (event.getAction()) 
     { 
      case MotionEvent.ACTION_MOVE: 
       /*movabletext.setY(y);*/ 
       break; 

      case MotionEvent.ACTION_UP: 
       movabletext.setY(y); 
       movabletext.setX(CONSTANT); 

       break; 
      case MotionEvent.ACTION_DOWN: 
       movabletext.setY(y); 
       movabletext.setX(CONSTANT); 

       break; 

     } 


     return true; 
    } 
+0

它垂直移動,但它在閃爍。當我觸摸編輯文本時,它將從屏幕頂部開始,然後將其放置到我所需的位置。我想要一個平滑的觸摸事件,其中編輯文本需要遵循我的手指。這幾乎就像圖片上的快速聊天文字 –

+0

好吧,給我幾個小時,以便我可以測試一些事情,生病讓你知道我想出了什麼。對不起,我現在無法提供更多幫助。 – Shawnzey

+0

沒問題,謝謝幫忙!!!!!!!! –

0
     switch (event.getAction()) { 
          case MotionEvent.ACTION_DOWN: { 
           startClickTime = 
           Calendar.getInstance().getTimeInMillis(); 
           break; 
          } 
          case MotionEvent.ACTION_MOVE: { 
           if (clickDuration > MAX_CLICK_DURATION) 
           { 
            if (currX < widthScreen && currY < 
            heightScreen) { 
             ViewGroup.MarginLayoutParams 
             marginParams = new 
            ViewGroup.MarginLayoutParams 
            (view.getLayoutParams()); 
             marginParams.setMargins((int) 
           (currX - mPrevX), (int) (currY - 
           mPrevY), 0, 0); 
             RelativeLayout.LayoutParams 
           layoutParams = new 
           RelativeLayout.LayoutParams(marginParams); 

           view.setLayoutParams(layoutParams); 
            } 
           } 
           break; 
          } 
          case MotionEvent.ACTION_UP: { 
          }