我在ScrollView中有一個TableLayout,由於一些特殊的需要,當ScrollView到達頂端時,我需要做一些事情。有聽衆傾聽用戶的滾動操作嗎?或者,如果沒有準備好的監聽器,我可以繼承ScrollView(這會讓我很痛苦)來實現嗎?我需要什麼方法來暗示?到目前爲止,我沒有看到這個解決方案,但我希望這只是因爲我錯過了一些東西.....有沒有ScrollView滾動的監聽器?
謝謝!
(如果你想知道爲什麼我想這樣做,這裏是一些背景:
我有一個平面文件數據庫,我用一個TableLayout顯示查詢結果當查詢產生。數千行,填充表格所花費的時間(使用TableLayout.addView()添加行)變得不可接受 - 在模擬器上只有一分鐘!而且,特別需要當表格顯示時,它必須是放在最後一頁,也就是說,我必須先填充最後幾行,然後向上增長,而在表格增長時顯示保持不變,我嘗試了兩種方法,但都沒有令人滿意,所以我不得不降級需求有點---我不一次填充所有3000行,而是隻填充最後幾頁,像過去的40行左右。這樣,用戶將立即看到顯示的結果。然後,如果當他決定向上滾動,當程序看到它,然後填充更多頁面等。因此,我需要一個偵聽器或某種方式來檢測表或滾動視圖何時到達頂部。感謝您閱讀到目前爲止!)
是否有你使用TableLayout而不是帶有CursorAdapter的ListView的原因,CursorAdapter負責處理有關查看大量數據集的問題(滾動,重用視圖元素,不一次查詢所有數據)?看起來你真的只是用這種方式讓自己難過,因爲Android可以爲你做很多事情。 – 2011-02-25 19:07:31
@Yoni嗯,事情是,我是Android新手。我幾次看到Cursor這個詞,我認爲它與系統提供的數據庫(不管它叫什麼名字,但是似乎都有某種內置DBMS)綁定,而不是任何專有數據庫。感謝提示,我會研究它。 – wwyt 2011-02-25 19:14:17
值得注意的是,您可以使用您想要的任何專有數據庫編寫自己的適配器。我可以想象,數據的減速與預先生成3,000個視圖有關,而不是實際的數據庫查詢,所以您也許能夠將數據加載到普通的'ArrayAdapter'中。 – 2011-02-25 19:18:14