Я использую расширяемый RecyclerView, но у меня есть 2 категории, в которые я хотел бы добавить элементы. Проблема в том, что я не понимаю, какой индекс требуется для adaptor.notifyItemInserted ().
Если я использую notifyDataHasChanged (), он работает нормально, однако мне бы хотелось иметь анимацию notifyItemInserted (index).
именно так я строю свой расширяемый обзор переработчиков
private void loadList() {
List<Routine> routines = getDummyRoutineList();
adapter = new ExpandableAdapter(routines, this);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(adapter);
}
private List<Routine> getDummyRoutineList() {
List<Routine> list = new ArrayList<Routine>();
Tasks rt1 = new Tasks("R1 Tasks1", 1);
Tasks rt2 = new Tasks("R1 Tasks2", 0);
Tasks rt3 = new Tasks("R1 Tasks3", 1);
Tasks rt4 = new Tasks("R1 Tasks4", 0);
Tasks rt5 = new Tasks("R1 Tasks5", 0);
List<Tasks> r1Tasks = new ArrayList<>();
r1Tasks.add(rt1);
r1Tasks.add(rt2);
r1Tasks.add(rt3);
r1Tasks.add(rt4);
r1Tasks.add(rt5);
Routine r1 = new Routine("Routine 1", r1Tasks);
Tasks r2t1 = new Tasks("R2 Tasks1", 1);
Tasks r2t2 = new Tasks("R2 Tasks2", 0);
Tasks r2t3 = new Tasks("R2 Tasks3", 1);
Tasks r2t4 = new Tasks("R2 Tasks4", 0);
Tasks r2t5 = new Tasks("R2 Tasks5", 1);
List<Tasks> r2Tasks = new ArrayList<>();
r2Tasks.add(r2t1);
r2Tasks.add(r2t2);
r2Tasks.add(r2t3);
r2Tasks.add(r2t4);
r2Tasks.add(r2t5);
Routine r2 = new Routine("Routine 2", r2Tasks);
list.add(r1);
list.add(r2);
return list;
}
все время имеет размер 2 (даже если он выделен и имеет элементы) r1Tasks, размер r2Tasks зависит отсколько элементов я добавляю.
когда я делаю notifyItemInserted, я должен предоставить индекс
, который я попытался добавить в r1Tasks, используя его размер:
notifyItemInserted(r1Tasks.size() ) ( r1Tasks.size so that It would get added last in the list)
, но он вылетает,Насколько я понимаю, я должен предоставить разные индексы на случай, если он будет расширен или нет. (фотография: https://i.imgur.com/osV8YSQ.jpg)