Необходимо задать анимацию нажатому элементу списка. Я делаю это так:
@Override
public void onClick(View view, int index) {
view.startAnimation(animation);
}
но когда прокручиваю список элементов Recyclerview анимация останавливается. P.S анимация у меня зациклена, т.е нажимаю на элемент и она выполняется пока я не нажму на другой элемент и т.д
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
switch (holder.getItemViewType()) {
case 0:
posInList = position / 2;
Picasso.with(mContext).load(imageModel.get(posInList)).resize(320, 320)
.into(holder.getItemImageView());
break;
case 2:
break;
}
}
Анимация:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="true">
<scale
android:duration="500"
android:fillBefore="true"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="0"
android:toXScale="0.9"
android:interpolator="@android:anim/decelerate_interpolator"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:toYScale="0.9" />
Спасибо ЮрийСПб за совет. Сделал так:
private SparseBooleanArray mSparseBooleanArray;
construktor(){
mSparseBooleanArray = new SparseBooleanArray();
}
onBindViewHolder(){
if (mSparseBooleanArray.get(posInList)){
holder.getItemImageView().startAnimation(anim);
}
}
public void itemClicked(int item){
mSparseBooleanArray.clear();
mSparseBooleanArray.put(item,true);
}
в итоге: анимация не слетает при скроллинге
При скроле списка и ухода ячейки за край экрана она открепляется системой от разметки. При этом вызывается метод onViewDetachedFromWindow(ViewHolderClass holder)
- в нём вы можете останавливать анимации, выгружать картинки и делать прочие вещи для избежания утечек памяти. В качестве аргумента приходит определённый вами в адаптере холдер указанного вами типа. Если их у вас несколько - то вам надо соамостоятельно скастовать пришедший к нужному. Из холдера же вы можете получить position
метода getAdapterPosition()
.
Точно также работает и нужный вам void onViewAttachedToWindow(ViewHolderClass holder)
- он вызывается когда ранее откреплённая от разметки вьюха ячейки списка снова прикрепляется к оному при появлении на экране в процессе скрола. Именно в этом методе вам надо скастовать пришедший в аргументе холдер к вашему типу и, в случае если нужно, запустить анимацию снова, т.к. она останавливается при откреплении вью от разметки. Определять какую ячейку надо анимировать а какую нет вам придётся самостоятельно - храните в адаптере, например, индексы анимируемых элементов.
чтобы считать из inputstream надо сначала туда что-то положить, верно?
В своем приложении использую google maps, но при переходе между активностями, бывает вылетает приложение со следующей ошибкой
Ребята, мне нужно сделать следующее: Если у пользователя нету своей аватарки,то нужно поставить ему дефолтную картинкуНо у меня это не получается
Есть английское словоДля него нужно получить перевод через Google переводчик