2011-03-22 104 views
1

我知道在某種程度上可以讓用戶到達列表底部時加載更多數據的ListView。然而,我正在使用ScrollView,我有一個LinearLayout,並且這兩個組件在滾動等方面效果很好。但我不知道我該怎麼做,所以它會得到無限的滾動。LinearLayout/ScrollView中的無限滾動?

我想我需要添加一些東西,讀取屏幕上LinearLayout的顯示內容,以及何時計算出它顯示的LinearLayout的底部(通過使用當前位置和高度查看),它會觸發一個事件。
但正如我所說,我不知道如何做到這一點。所以,如果任何人都可以給我一些幫助,我會非常感激。

編輯:我發現這個職位在這裏StackOverflow上How to trigger an event when scrollView reach the bottom with Android?,但我不知道該怎麼回答做:

給出的要求,你可能會被延長BaseAdapter(相對於CursorAdapter的它利用不同的機制)。

這裏有一個片斷爲:

public View getView(int position, View convertView, ViewGroup parent) { 
    if (position == backingLinkedList.size()) { 
     //get more items and add them to the backingLinkedList in a background thread 
     notifyDataSetChanged(); 
    } 
} 

回答

0

如果當你達到一個滾動型的底部,你可以觸發一個事件,你可以嘗試創建自己的類型來看,以保存數據。到達視圖底部時,將下一個數據加載到視圖類中,並將其添加到滾動視圖的佈局中。

所以基本上就是創建一個擁有你展示的部分的類。將第一個添加到滾動視圖中。當你點擊底部創建另一個視圖,以保存你的下一個數據,並使用scrollviews_layout.addview(view_holding_the_new_data)

0

我知道這是很久以前解決,但我想分享我的解決方案爲未來的無限滾動。

我用onScroll方法OnScrollListener內觸發一個後臺線程抓住多個數據並adapter.notifyDataSetChanged通知更多的數據的ListView加載和創建無限滾動。由於某種原因,onScrollStateChanged沒有觸發,但onScroll做了我所需要的,所以我不需要打擾。

最長的時間我不知道如何保持ListView重新加載並將我放回列表的頂部,但後來我意識到我只需要初始化一個新的適配器,並且每次調用setListAdapter在此之後的時間,只能撥打notifyDataSetChanged。之前,我還打電話給setListAdapter,從而讓我回到頂端。