簡體   English   中英

如何將ListView滾動到底部?

[英]How to scroll ListView to the bottom?

我雖然這將是一個簡單的任務,但顯然沒有辦法將listview滾動到底部。 我發現的所有解決方案都使用setSelection(lastItem)方法的變體,它只將選擇設置為最后一項,但不會滾動到它的底部。

在我的情況下,我有一個空的列表視圖(有一個長的空視圖標題集),我想滾動到它的底部。

那么,有沒有辦法做到這一點?

編輯:

所以對於那些感興趣的人來說,工作解決方案是:

getListView().setSelectionFromTop(0, -mHeader.getHeight());

getListView().scrollTo(mOffset)

這也有效,右偏移(根據當前滾動位置計算),但可能會給你一些意想不到的結果。

如果您希望列表視圖始終在底部滾動,即使您正在動態更新列表視圖,也可以在列表視圖中添加這些屬性。

android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"

使用以下內容

    lv.setSelection(adapter.getCount() - 1);

如果您想以編程方式使用滾動動畫,可以使用以下命令輕松滾動到列表底部:

listView.smoothScrollToPosition(adapter.getCount());

滾動到列表的最頂部可以使用:

listView.smoothScrollToPosition(0);

試試這個...它會解決你的問題,我嘗試了它,效果很好。

   listView.post(new Runnable(){
             public void run() {
             listView.setSelection(listView.getCount() - 1);
    }});
private void scrollMyListViewToBottom() {
    myListView.post(new Runnable() {
        @Override
        public void run() {
            // Select the last row so it will scroll into view...
            myListView.setSelection(myListAdapter.getCount() - 1);
        }
    });
}

它為我工作

使用以下並嘗試。

listview.setSelection(adapter.getCount() - 1);

您可能想嘗試myListView.smoothScrollToPosition(myListView.getCount() - 1) 這樣,您就不會被迫選擇最后一行。 另外,你會得到一些流暢,漂亮的滾動! (:

我有同樣的問題,這對我來說效果最好

listView.setSelection(listView.getAdapter().getCount()-1);

如果沒有適配器設置到ListView,那么它根本就沒有子節點,空視圖不是ListView的子節點

嘗試使用list.scrollTo(0, list.getHeight());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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