我使用的码是低于:
@Override
public boolean onLongClick(View view) {
// TODO Auto-generated method stub
boolean result = true;
if(DEBUG){
Log.d(TAG, "onLongClick()");
}
mLongTouch = true;
ClipData.Item item = new ClipData.Item((CharSequence) view.getTag());
ClipData dragData = new ClipData((CharSequence) view.getTag(), mTabDragMimeData, item);
SimeTabDragListener.SimeTabDragShadow myShadow = new SimeTabDragListener.SimeTabDragShadow(view);
view.startDrag(dragData, myShadow, null, 0);
return result;
}
@Override
public boolean onDrag(View view, DragEvent event) {
// TODO Auto-generated method stub
boolean result = true;
int action = event.getAction();
int eventX = (int)event.getX();
int eventY = (int)event.getY();
if(DEBUG){
Log.d(TAG, "onDrag()...event is "+action + ".... X cor is "+event.getX()+"...Y cor is"+event.getY());
}
view.layout(eventX - mDownOffsetsX, eventY - mDownOffsetsY,
eventX + mDownViewWidth - mDownOffsetsX, eventY + mDownViewHeight - mDownOffsetsY);
view.postInvalidate();
return result;
//返回super.onDragEvent(事件); }
// drag shadows
public static class SimeTabDragShadow extends View.DragShadowBuilder {
private static Drawable shadow;
public SimeTabDragShadow(View view) {
super(view);
if(DEBUG && view instanceof TextView)
Log.d(TAG, "drag view is text");
shadow = new ColorDrawable(Color.LTGRAY);
}
@Override
public void onProvideShadowMetrics(Point shadowSize,
Point shadowTouchPoint) {
// TODO Auto-generated method stub
super.onProvideShadowMetrics(shadowSize, shadowTouchPoint);
}
@Override
public void onDrawShadow(Canvas canvas) {
// TODO Auto-generated method stub
super.onDrawShadow(canvas);
}
}
,并包含在LinearLayout中的组件(TextView的)是静态的,通过XML加载的,问题是其他draging一个TextView的TextView的时候会消失,并与他人消失的时候将其删除。
是否有人知道它是如何去这样,或如何在LayoutView中实现一个拖动手势,感谢和欣赏家伙来到这里。