Android Expandable ListView автоматически прокручивается вниз, когда я нажимаю на группу - PullRequest
1 голос
/ 02 мая 2011

У меня есть 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"?Мне пришлось установить этот атрибут, чтобы он отображал фоновое изображение даже во время прокрутки списка.Без этого атрибута фон списка при прокрутке становится черным.

Ответы [ 2 ]

5 голосов
/ 19 марта 2013

Я столкнулся с той же проблемой и нашел здесь действительно простое решение: [Android ExpandableListView Прокрутите до Расширенной позиции группы]

Редактировать: Поскольку ссылка умирает раз в месяц, вот действительно простое решение: Просто установите android:transciptMode="disabled". Это предотвращает прокрутку до последней позиции списка.

Для дальнейшего чтения: Режим расшифровки в документах Android

0 голосов
/ 25 ноября 2011

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

...