【问题标题】:Android ListView that scrolls from bottom to top?从下到上滚动的Android ListView?
【发布时间】:2014-03-02 19:18:32
【问题描述】:

我想构建一个像普通 ListView 一样工作的 ListView,除了第一个项目在底部并向上增长,而不是第一个项目在顶部并向下增长。

当然,我可以只使用普通的 ListView,颠倒适配器的顺序,然后让它滚动到列表中的最后一项……但这在很多方面都不够优雅,尤其是在添加新行时.

例如,我希望 ListView 记住位置,但位置是从底部而不是顶部。所以,如果他们在底部,他们应该保持在底部,但是如果他们从底部向上看 3,当添加新项目时,他们应该仍然在看那个项目。 (在 ListView 中是如何正常工作的,但反过来。)

想知道是否有人有任何巧妙的技巧来反转 Android ListView 的极性?

这方面的经典用例是聊天消息列表,其中最新消息位于底部,项目通常添加到底部。如果有人在列表的末尾,当有新消息进来时,他们仍然希望在列表的末尾。但是如果他们已经从底部滚动,他们不希望他们的滚动位置被随机重置.

【问题讨论】:

  • 对订单适配器执行相同操作并滚动到底部.. 现在如果在您 adapter.notifyDataSetChanged(); 更新活动以滚动到底部时添加了新项目.. 所以基本上每当您添加一个新项目将始终滚动到底部。
  • 谢谢,是的,这就是我目前的做法。然而,这并不完美。在普通的 ListView 中,如果您从顶部滚动,并且适配器发生变化,它并不总是滚动回顶部。如果用户向上滚动并突然拉回底部,这会让用户感到不安。

标签: android listview android-listview scroll


【解决方案1】:

啊,AbsListView有属性:

android:stackFromBottom="true"

这似乎正是我想要的。

【讨论】:

  • 注意,当键盘弹出时,我仍然需要添加一个“滚动到底部”监听器来重新定位。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-23
  • 2014-02-02
  • 2018-02-27
  • 2011-02-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多