我有一个充满项目的 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"属性会导致这种情况吗?我必须设置此属性以使其即使在滚动列表时也能显示背景图像。如果没有此属性,列表背景在滚动时会变为黑色。
最佳答案
我遇到了同样的问题并在这里找到了非常简单的解决方案:[Android ExpandableListView Scroll to Expanded Group Position]
编辑:由于链接每月失效一次,这里是真正简单的解决方案:
只需设置 android:transcriptMode="disabled"
。这可以防止滚动到最后一个列表位置。
进一步阅读:[Android 文档中的转录模式][1] [1]: https://developer.android.com/reference/android/widget/AbsListView#attr_android:transcriptMode
关于当我点击组时,Android Expandable ListView 会自动滚动到底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5861588/