我在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