Это стандартное поведение ExpandableListView. Он пытается показать все элементы группы, которые пользователь только что развернул. В вашем случае расширение групп 1-7 не скрывает дочерних элементов, но для других групп это скрывается, поэтому список прокручивается.

я есть ExpandableListView, который заполнен элементами. Когда вы нажимаете на элемент на верхнем уровне, он открывает следующий уровень, который показывает список, который содержит некоторую дополнительную информацию о каждом элементе. Для некоторых из верхних элементов (групп), когда я нажимаю на них, открываются нижние элементы (дочерние элементы) и больше ничего не происходит. Но для других групп, когда я нажимаю на них, это открывает детей и прокручивает меня до самого последнего ребенка в этой группе. Кто-нибудь знает, почему он делает это для некоторых предметов, а не для других? И есть ли способ избавиться от этого эффекта и просто прокрутить список до той же позиции, в которой он уже находится?

Изменить: я только что понял, что это делает прокрутку только для нижней половины элементов на верхнем уровне. Таким образом, на верхнем уровне есть 14 элементов, для элементов 8-14, когда вы нажимаете на них, он прокручивается вниз, так что последний дочерний элемент находится внизу экрана. Если вы нажимаете на пункты 1-7, дети открываются, и больше ничего не происходит.

Edit2: @coldForged, насколько я знаю, я использую стандартный ExpandableListView вот XML из моего макета:

<ExpandableListView
android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" 
android:background="@drawable/paper"
android:scrollingCache="false"

android:scrollbars="none"
>
</ExpandableListView>

Может ли это быть вызвано атрибутом scrollingCache = "false"? Мне пришлось установить этот атрибут, чтобы он отображал фоновое изображение даже во время прокрутки списка. Без этого атрибута фон списка становится черным во время прокрутки.