Я хочу создать собственную анимацию вставки в RecyclerView
при добавлении элементов. Вот что у меня получилось:
private void init(View view, Context context) {
recyclerView = view.findViewById(R.id.messagesList);
layoutManager = new LinearLayoutManager(context);
layoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(adapter);
recyclerView.setItemAnimator(new DefaultItemAnimator() {
@Override
public boolean animateAdd(RecyclerView.ViewHolder holder) {
holder.itemView.setScaleY(0);
holder.itemView.animate().scaleY(1).setDuration(3000).start();
return super.animateAdd(holder);
}
});
}
private void onNewItem(Item item){
adapter.onNewItem(item);
layoutManager.smoothScrollToPosition(recyclerView, null, adapter.getItemCount());
}
Потом в переходнике
private void onNewItem(Item item){
items.addItem(item);
notifyItemInserted(items.size());
}
Элемент просто появляется, когда он добавлен, нет прокрутки или настраиваемой анимации.
1 ответ
Замена smoothScrollToPosition
на scrollToPosition
решила проблему.
Также у меня была ошибка вызова notifyItemInserted(items.size());
вместо notifyItemInserted(items.size() - 1);
Похожие вопросы
Связанные вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.