2012-10-11 182 views
3

我一直在寫一個簡單的應用程序,使用拖動&拖放,除非有一點細節,否則工作正常。當我第一次握住包含拖動動作的ImageView時,DragShadowBuilder會將迷你視圖放在錯誤的地方。最奇怪的部分是後來,它修復了自己,並且操作繼續完美。 這是表示行爲的圖像(我手裏拿的聯繫人應用程序圖標,看看那裏的縮略圖)拖放移位

displaced

這是我的代碼使用

 View v = inflater.inflate(R.layout.recent_entry, null); 
     ImageView img = (ImageView)v.findViewById(R.id.recent_icon); 

     img.setOnTouchListener(new View.OnTouchListener(){ 

      @Override 
      public boolean onTouch(View view, MotionEvent me) { 
       if (me.getAction() == MotionEvent.ACTION_DOWN){ 
        DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view); 
        view.startDrag(null, shadowBuilder, null, 0); 
        mLaunchIntent = holder.getLaunchIntent(); 
        mSelectedItem = view; 
        mRecentDetails.setVisibility(View.GONE); 
       } 
       return true; 
      } 
     });   

回答

0

純屬猜測,但是您是否應該不使用拖動源的位置,而不是使用包含拖動內容的視圖?

+0

您能詳細解釋一下您的答案嗎?我不是英語母語的人,並且不理解它。你的意思是我應該將拖放處理程序添加到imageview,而不是它的父級? –

+0

查看更多文檔,看起來您必須設置拖動圖像的觸摸位置。這將找到相對於鼠標位置的拖動圖像。看到這個:http://developer.android.com/guide/topics/ui/drag-drop.html – Zagrev