2010-12-14 102 views
0

我們目前正在開發一個應用程序,以「寄存器」和行的形式顯示大型數據集。我們使用TableLayout作爲基本視圖,然後爲每個項目添加表格行(每行使用LinearLayout)。如何知道視圖何時滾動到視圖

我注意到,一旦記錄的數量超過某個點(超過1000條記錄),設備就會變得非常緩慢。我相信這是一個簡單的記憶問題(可能也是渲染?),並設計了一個可以提高速度的計劃。

我們已經在很多silverlight項目上實現了連續分頁,並且我認爲這是採用Android的最佳方法?

我現在唯一的問題是識別何時將特定視圖(比如第100行)滾動到視圖中,以便我可以開始呈現下幾行。

有誰知道如何做到這一點,或者更好的方式來實現/處理大型數據集?

問候

回答

0

而不是使用表格佈局中使用CustomListView,其中有重用行的能力。

你可以在這裏找到如何使用自定義列表視圖。

[Custom ListView][1] 
+0

謝謝你!你能否提供你所說的鏈接? :D – Renier 2010-12-14 18:06:17

+0

http://www.androidpeople.com/android-custom-listview-tutorial-example-part-2/ – Kakey 2010-12-14 18:09:41

0

你只需要添加onScrollListener到你的視圖。 最好使用ListView來顯示數據

從以下代碼中,您可以獲取當前視圖的索引。

ListView.OnScrollListener是你需要實現的接口,並給出以下兩種方法的主體

listView.setOnScrollListener(新ListView.OnScrollListener(){

公共無效onScroll(AbsListView視圖,INT firstVisibleItem,INT visibleItemCount, INT totalItemCount){ }

public void onScrollStateChanged(AbsListView view, int scrollState) { 
     switch (scrollState) { 
     case OnScrollListener.SCROLL_STATE_IDLE: 
      mBusy = false; 

      int first = view.getFirstVisiblePosition(); 
      int count = view.getChildCount(); 


      break; 
     case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL: 

      break; 
     case OnScrollListener.SCROLL_STATE_FLING: 



      break; 

     } 
    } 

});

嘗試打印第一的價值和計數變量會解決你的problem.Hopefully :)

+0

爲了讓它快速嘗試一些代碼SlowAdapter和EfficientAdapter – Javanator 2010-12-14 18:12:39

相關問題