У меня есть кнопка, при нажатии на которую появляется новый fragment
. Этот фрагмент содержит RecyclerView
. ПОСЛЕ загрузка RecyclerView
завершена, я хочу выполнить анимацию для первого элемента, который я только что вставил.
Проблема, похоже, заключается в том, что для подтверждения того, что просмотрщик рециркуляции завершил загрузку, мне нужно поместить анимацию в recyclerView.post (новый Runnable ()), который, в свою очередь, не запускается.
Это мой код:
Первый фрагмент
bookSpotBtn.setOnClickListener(view -> {
secondFragment s = new secondFragment();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, s);
fragmentTransaction.commitNow();
triggerAddandAnimation(objectToAddToList, 0); // 0 -> position of element in recyclerview
}
Второй фрагмент
public void triggerAddandAnimation(MyObject m, int position){
recyclerList.add(0, m) // to add my object to the adapter's list at position 0.
recyclerAdapter.notifyItemInserted(0); // to show on UI
// post is needed so recycler view can finish laying out views before I access the first one
mRecyclerView.post(()->{
CustomCellView fView = ((MyRecyclerAdapter.MyViewHolder) mRecyclerView.findViewHolderForAdapterPosition(0)).getView();
animateCell(fView, m);
});
}
Проблема в том, что программа не выполняет startAnimation(animation)
внутри animateCell
.
animateCell:
private void animateAddingCell(final CustomCellView f, final MyObject l) {
Animation addAniamation = AnimationUtils.loadAnimation(f.getContext(), R.anim.slide_from_left);
f.startAnimation(addAniamation);
}
Я думаю, что анимация не может быть запущена изнутри post(new Runnable)
.