Позиция для notifyItemInserted в представлении Расширяемый Recycler - PullRequest
0 голосов
/ 08 октября 2019

Я использую расширяемый 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)

...