gpt4 book ai didi

Android ListView 滚动到底部

转载 作者:行者123 更新时间:2023-12-05 00:09:45 29 4
gpt4 key购买 nike

我正在开发带有聊天功能的应用程序,我希望我的 ListView 在用户发布新消息时以及当用户位于列表底部并且收到新消息时滚动到底部。我正在使用这个 ListView:

<ListView
android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:divider="@null"
android:dividerHeight="0dp"
android:stackFromBottom="true"
android:paddingBottom="9dp"
android:clipToPadding="false"/>

以及这种在需要时强制滚动的方法:

private void scrollListViewToBottom() {
listView.setSelection(adapter.getCount() - 1);
}

但是当聊天包含高度大于屏幕高度的元素(大文本或图像)时,它会滚动到它的顶部。我需要我的 ListView 精确滚动到底部,而不是最后一个元素。

我尝试使用 listView.scrollTo(0, listView.getBottom()) 方法但结果很奇怪 - 它有时滚动到最后一条消息 + 半屏间隙,有时滚动到我看不到任何消息的地方。

有什么想法吗?谢谢。

最佳答案

您可以使用 android:stackFromBottom="true" 从下到上填充列表,并添加 android:transcriptMode="alwaysScroll" 自动滚动 ListView 。

您只需调用 notifyDataSetChanged(),您的列表就会自动滚动。

为了在大块的情况下处理滚动到绝对底部,您可以在每个列表项下方添加高度为 1 像素的列表项,这样无论您的项目高度是多少,您都将始终被定向到列表末尾。

关于Android ListView 滚动到底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46290105/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com