3 개의 드래그 가능한 가로보기가 있습니다. 예를 들어, 내가 두 번째로 먼저 떨어지면 두 번째와 세 번째는 오른쪽으로 이동해야합니다. 초기 위치 : 코드 Android보기는 시각적으로 정상 위치에 있지만 사실 - TranslateAnimation 이후의 시작 위치에 있습니다.
:
받는 것을 나는 오래 누르면 :
case DragEvent.ACTION_DROP:
targetIndex = ((ViewInfo) targetView.getTag()).index;
int lastIndex = getChildCount() - 1;
droppedView = (View) event.getLocalState();
droppedIndex = ((ViewInfo) droppedView.getTag()).index;
if (droppedView == this) {
return false;
}
for (int i = targetIndex; i <= lastIndex; i++) {
if (getChildAt(i) != droppedView) {
moveChildToRight(i);
}
}
private void moveChildToRight(int index) {
....
TranslateAnimation anim = new TranslateAnimation(0, 200, 0, 0);
anim.setDuration(1000);
anim.setFillAfter(true);
anim.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationEnd(Animation animation) {
Log.d(TAG, "Animation ended");
requestLayout();
}
@Override
public void onAnimationRepeat(Animation arg0) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationStart(Animation arg0) {
// TODO Auto-generated method stub
}
});
child.startAnimation(anim);
}
확인 후 2 층과 3보기 드롭이 오른쪽으로 이동 1 번째와 2 번째 + 3 번째보기 사이의 빈 공간과 무엇이 보입니까? 두 번째보기의 드래그가 시작됩니다! 그러나 실제로 만져질 수있는 것보다 훨씬 가볍습니다. 두 번째 또는 세 번째보기의 '시각적'표현은 애니메이션 후에는 접할 수 없습니다.
왜?