2012-10-11 2 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

답을 조금 더 자세히 설명해 주시겠습니까?, 저는 영어 원어민이 아니며 이해하지 못했습니다. 드래그 핸들러를 이미지 뷰가 아닌 부모에 추가해야한다는 것을 의미합니까? –

+0

더 많은 문서를 보려면 드래그 이미지의 터치 위치를 설정해야합니다. 그러면 마우스 위치를 기준으로 드래그 이미지가 찾습니다. http://developer.android.com/guide/topics/ui/drag-drop.html을 참조하십시오. – Zagrev