2014-02-06 47 views
1

我想建立一個像一個正常的ListView一個ListView,除了第一項是在底部和成長,而不是第一個項目是在頂部和成長了。Android ListView從下往上滾動?

當然,我可以使用正常的ListView,顛倒適配器的順序,並讓它滾動到列表中的最後一個項目......但這在許多方面都不起眼,特別是在添加新的行。

舉例來說,我想ListView的記憶位置,而是從底部而不是從頂部的位置。所以,如果他們在底部,他們應該保持在底部,但是如果他們從底部看3,他們仍然應該在添加新項目時查看該項目。 (究竟它是如何工作ListView中正常,但相反。)

想知道如果任何人有任何聰明的技巧來扭轉一個Android的ListView的極性?

經典的使用情況,這將是聊天消息的列表,其中最近的一次是在底部,並且項目一般都加入到了谷底。如果有人在列表的最後,他們仍然希望在列表的末尾時,一個新的消息進來,但如果他們已卷離底部,他們不希望自己的滾動位置是隨機重置。

+0

做同樣的順序顛倒適配器,如果添加新項目只是當你'adapter.notifyDataSetChanged()滾動至底部。現在,'更新活動滾動到下..所以基本上只要你加入新項目將始終滾動到底部。 – Coderji

+0

謝謝,是的,這就是我目前的做法。但是,這並不完美。在正常的ListView中,如果從頂部滾動並且適配器發生更改,它不會總是回滾到頂部。如果用戶滾動並突然拉回底部,則會對用戶產生干擾。 –

回答

4

啊,AbsListView具有屬性:

機器人:stackFromBottom = 「真」

這似乎做的正是我想要的。

+0

請注意,當鍵盤彈出時,我仍然需要添加一個「滾動到底部」偵聽器來重新定位。 –