我需要显示一个带有二维滚动的大表,就像Excel的表格一样。它可以非常大,最多1000行(和~10列)。
所以,我找到的所有解决方案都基于ListView-into-HorizontalScrollView的想法。它太慢而无法使用。
我尝试使用WebView,但滚动到可滚动的速度更慢。
也许我可以获得listLayout的位图并在每次更新时将其放入HorizontalScrollable?或者使用其他一些神奇的魔法?或者也许我可以使用一些lib?
答案 0 :(得分:0)
这是一个想法:
似乎所有这些HorizontalScrollViews都不会有效,但它们可以比一个HorizontalScrollView渲染嵌入式ListView更快地渲染单行。
现在,如何进行水平滚动?你有两个选择:
将单个HorizontalScrollView上的滑动事件传播给所有其他人。亲:更容易编码。 Con:由于线程延迟,刷过的HSV可能无法与其他HSV完全保持同步。
从中心位置抓取滑动事件,例如ListView上的覆盖,并将它们传播到HSV。亲:清洁显示。 Con:难以使用捕获滑动所需的所有onInterceptTouchEvent和onTouchEvent voodoo进行编码。
这种方法的另一个缺点是水平LinearLayout中单元格的视图需要设置明确的宽度,否则列不会排列。
除非我尝试过,否则我不能在良心上推荐这个,所以我将一些代码整理在一起。您可以在android-table-test project on Github
看到它我有一个包含18列和36K行的数据源,它似乎可以很好地(双向)滚动到我的所有设备上。