簡體   English   中英

如何以編程方式滾動到ListView的底部?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM