Доброго времени суток.
У меня задача менять местами view в LinearLayout c анимацией перемещения.
Вот так я это делаю.
item_view = box_contact_profile.getChildAt(position);
Animation animationUp = AnimationUtils.loadAnimation(getActivity(), R.anim.swap_view_up);
animationUp.setAnimationListener(new Animation.AnimationListener() {
    @Override
    public void onAnimationStart(Animation animation) {
        Animation animationDown = AnimationUtils.loadAnimation(getActivity(), R.anim.swap_view_down);
        box_contact_profile.getChildAt(position - 1).startAnimation(animationDown);
    }
    @Override
    public void onAnimationEnd(Animation animation) {
        View save_view = box_contact_profile.getChildAt(position);
        box_contact_profile.removeViewAt(position);
        v.setTag(position - 1);
        box_contact_profile.addView(save_view, position - 1);
        for (int i = position; i < box_contact_profile.getChildCount(); i++) {
            save_view = box_contact_profile.getChildAt(position);
            ImageButton but = (ImageButton) save_view.findViewById(R.id.but_menu_bloc_contact);
            but.setTag(i);
        }
    }
    @Override
    public void onAnimationRepeat(Animation animation) {
    }
});
item_view.startAnimation(animationUp);
А вот xml анимации:
swap_view_down
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
>
<translate
    android:fromYDelta="0%"
    android:toYDelta="100%"
    android:duration = "200">
</translate>
</set>
swap_view_up
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
>
    <translate
        android:fromYDelta="0%"
        android:toYDelta="-100%"
        android:duration = "200"
        >
    </translate>
</set>
Но после анимации, блок который я переносил(тот для которого вызывал представленный код), перестаёт реагировать на нажатия. Подозреваю, что его местоположение не совпадает с отображением.
Возможно проблема похожа на другую мой проблему. Я вращал изображение и менял само изображение после анимации в функции onAnimationEnd, в результате изображение становилось повёрнутым в туже сторону, что и до анимации. В том случае я просто начал применять новое изображение до анимации.
Подскажите, в чём может быть проблема?