Анимации вращения и перевода для RecyclerView не работают одновременно

Я работаю над добавлением анимации для виджетов в моем RecyclerView. Я хочу, чтобы изображение начиналось с левой стороны экрана и переводило его вправо, пока оно вращается. Если я попытаюсь сделать анимацию перевода самостоятельно, она отлично работает. Если я попытаюсь сделать анимацию вращения самостоятельно, она будет работать нормально. Если я попытаюсь запустить их обоих одновременно, это вообще не будет выглядеть правильно. Изображение движется по изогнутой траектории при переводе. Я думаю, что он может пытаться вращаться вокруг позиции, в которой закончится перевод, но это трудно сказать. Я использовал AnimationSet, чтобы попытаться заставить его работать, так как объединение обеих анимаций в один XML не сработало, но это не помогло.

translation_to_right.xml
<?xml version = "1.0" encoding = "utf-8"?>
<set xmlns:android = "http://schemas.android.com/apk/res/android">
<translate
    android:fromXDelta = "-100%"
    android:toXDelta = "0%"
    android:duration = "3000"
    android:interpolator = "@android:interpolator/accelerate_decelerate"/>
    />
</set>
rotate.xml
<?xml version = "1.0" encoding = "utf-8"?>
<set xmlns:android = "http://schemas.android.com/apk/res/android">
    <rotate
        android:fromDegrees = "0"
        android:toDegrees = "360"
        android:pivotX = "50%"
        android:pivotY = "50%"
        android:duration = "3000"
    />
</set>
  @Override
    public void onBindViewHolder(@NonNull RecyclerViewHolder holder, int position) {

        Animation translateRight = AnimationUtils.loadAnimation(parentContext, R.anim.translation_to_right);
        Animation rotate = AnimationUtils.loadAnimation(parentContext, R.anim.rotate);
        AnimationSet animationSet = new AnimationSet(false);
        animationSet.addAnimation(translateRight);
        animationSet.addAnimation(rotate);
        holder.imageView.startAnimation(animationSet);
...
0
0
154
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете поместить View в окружение ViewGroup, например. a FrameLayout, чтобы он помещался внутри даже при вращении. Затем примените поворот к View и перевод к FrameLayout.

Другие вопросы по теме