[英]How to scroll to the bottom of ListView programmatically?
在調用notifydatasetchanged();
我想滾動到列表的底部,以便用戶查看Listview中的最后一條記錄。
(我正在編寫聊天模塊,所以為此我需要列表底部的最新記錄才能看到)
任何人都可以指導我如何實現這一目標嗎?
我知道這已經得到了解答,你接受了答案,這是一年多以前的事了。 但更好的方法是成績單模式。 有關演示,請參閱視圖>列表>轉錄下的Android API演示。
您可以在XML中的列表視圖中設置以下內容。
android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
無論何時調用notifyDataSetChanged()
它都將始終有效。 如果你想為聊天應用程序提供更好的結果,你可以將android:transcriptMode
設置為normal
:只有當最后一項已經在視圖中時,它才會滾動到底部。 這樣,當其他用戶聊天時,您的用戶可以在不中斷的情況下查看之前的聊天。
嘗試
listView.post(new Runnable(){
public void run() {
listView.setSelection(listView.getCount() - 1);
}});
根據我的經驗,似乎需要“帖子”,特別是如果您最近更新了列表。
我知道它的回答很晚,但可能會對某人有所幫助。 使用android:transcriptMode="alwaysScroll"
將強制列表視圖滾動到底部(因為我們已經使用了android:stackFromBottom="true"
),即使你將嘗試滾動頂部,這通常需要大部分時間。 因此,而不是android:transcriptMode="alwaysScroll
你可以使用android:transcriptMode="normal
,其行為類似於聊天應用程序的要求,並且如果用戶想要在頂部看到內容,則不會強制滾動列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.