В моем окне повторного просмотра я хочу, чтобы все элементы перемешивались / колебались / покачивались, когда пользователь удерживает элемент и перемещает его.Проблема, с которой я сталкиваюсь, заключается в том, что когда пользователь удерживает элемент и перемещает его в том же типе представления, покачивание в порядке, но когда кто-то перетаскивает его в верхнюю часть просмотра реселлера (который представляет собой заголовок, созданный как вид представления в представлении рециркулятора),покачивание сильно увеличивается.
Поиграв со значениями, я понял, что это потому, что, хотя угол поворота один и тот же, чем дальше он удалялся от центра предмета, тем раньше вращение увеличивалось.
Я пытался сделатьэто также и с аниматором объектов, но это не помогло, поскольку у этого тоже была та же проблема угла поворота.
Вот мой код покачивания
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="100"
android:fromDegrees="-5"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:toDegrees="5" />
Вот видео о том, какэто выглядит - ссылка
В логике bindView для начала анимации
((VHItem) holder).rlContainer.setOnLongClickListener(new View.OnLongClickListener()
{
@Override
public boolean onLongClick(View view)
{
if (buPostModelList != null)
{
startAnimationItem = true;
isDragCover = true;
isEditCoverImage = false;
for (int i = 0; i <= buPostModelList.size(); i++)
{
if (recyclerView.getChildAt(i) != null && recyclerView.getChildViewHolder(recyclerView.getChildAt(i)).getItemViewType() != TYPE_HEADER)
{
recyclerView.getChildAt(i).startAnimation(AnimationUtils.loadAnimation(context, R.anim.jiggle));
}
}
touchHelper.startDrag(holder);
}
return true;
}
});
РЕДАКТИРОВАНИЕ Пример проекта - ссылка