Я создаю приложение, используя новый API 21 (Lollipop). Я настраиваю анимацию slide_in_left на recyclerview для просмотра карты 1 на 1, но когда появятся элементы, они сойдутся вместе, и я хочу, чтобы они скользят влево 1 1 и 2 я анимация панели инструментов, чтобы скрыть/показать свою работу, но проблема в том, когда я прокручиваю вверх и когда recyclerview останавливается, тогда он будет скрываться и в том же случае, когда прокрутка вниз, я хочу скрыть/показать панель инструментов, когда свиток начинает меня помогать. Заранее спасибоКак настроить анимацию на recyclerview
belowis Myadapter класс для recyclerview анимации
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private ArrayList<PersonData> peopleDataSet;
private Context context;
View view;
public static class MyViewHolder extends RecyclerView.ViewHolder {
TextView textViewName;
TextView textViewEmail;
ImageView imageViewIcon;
public MyViewHolder(View itemView) {
super(itemView);
this.textViewName = (TextView) itemView.findViewById(R.id.textViewName);
this.textViewEmail = (TextView) itemView.findViewById(R.id.textViewEmail);
this.imageViewIcon = (ImageView) itemView.findViewById(R.id.imageView);
}
}
public MyAdapter(ArrayList<PersonData> people,Context context) {
this.peopleDataSet = people;
this.context=context;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.cards_layout, parent, false);
view.setOnClickListener(MainActivity.myOnClickListener);
setAnimation(view);
MyViewHolder myViewHolder = new MyViewHolder(view);
return myViewHolder;
}
@Override
public void onBindViewHolder(final MyViewHolder holder, final int listPosition) {
TextView textViewName = holder.textViewName;
TextView textViewEmail = holder.textViewEmail;
ImageView imageView = holder.imageViewIcon;
textViewName.setText(peopleDataSet.get(listPosition).getName());
textViewEmail.setText(peopleDataSet.get(listPosition).getEmail());
imageView.setImageResource(peopleDataSet.get(listPosition).getImage());
}
@Override
public int getItemCount() {
return peopleDataSet.size();
}
/**
* Here is the key method to apply the animation
*/
private void setAnimation(View viewToAnimate)
{
// If the bound view wasn't previously displayed on screen, it's animated
Animation animation = AnimationUtils.loadAnimation(context, android.R.anim.slide_in_left);
viewToAnimate.startAnimation(animation);
}
ниже код панели инструментов
@SuppressLint("NewApi") @Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (dy > 0) {
toolbar.animate()
.translationY(-toolbar.getBottom())
.setInterpolator(new AccelerateInterpolator())
.start();
} else {
toolbar.animate()
.translationY(0)
.setInterpolator(new AccelerateInterpolator())
.start();
}
Вместо onBind вы должны использовать 'onViewAttachedToWindow'. RecyclerView не будет перепроверять элемент, если он кэширован и действителен. – yigit