2014-02-07 90 views
1

我正在为电子表格创建一个android UI(用于创建,编辑,排序nxm单元格数组等)。我想知道我应该使用哪些视图(GridView或ListView)?Android的spreadhsheet用户界面:GridView或ListView?

一些具体要求:

1)至少100行和100列

2)用户接口需要快速

3)能够设置行和列标题

4)对列进行分类的能力

5)过滤色谱柱的能力

5)重新排序行和列

已经有过类似的问题,但答案是不明确

Need to create spreadsheet like control, what should I extend ListView or GridView?

回答

0

我可能不会使用它们中的任何一个。根据您更具体的要求,您可能会花费大量时间试图让GridViewListView完成您想要的任务。通过子类ViewGroup来推出自己的解决方案可能更容易。

检查android-times-squareSquare球员为基础的网格ViewGroup子类的一个例子。特别要看看CalendarGridViewCalendarRowView。这应该为您提供ViewGroup路线的良好潜在起点。

+0

泰勒,谢谢你的回应。我会检查代码并回复你。不过,我确实想给出更多关于我的要求的具体细节。我编辑了我原来的问题。 – user3268403

+0

是的,根据你更具体的要求,我自己肯定只是子类'ViewGroup'。我认为有一个原因'android-times-square'没有实现一个'GridView'子类 - 它本身并不很灵活。一个'ViewGroup'子类会给你更多的控制,以减少可能的工作量。 您将完全控制视图回收的方式,这对实现点#1和#2可能很重要。 –

+0

与listview,gridview等玩过你是对的 - 我认为subclassing viewgroup会更容易 – user3268403

0

这取决于当然。如果你需要在两个轴上进行“无限”滚动,那么你(可能)想要考虑一个GridView。 (但是如果你真的需要任意数量的列,你就有更大的问题了。)

我会推荐一个ListView,因为它内部的元素在垂直滚动期间被重新使用,这是一个更可能的模型(更多行比列)。

行元素本身可以是单行网格或其他更适合的容器。

+0

John我已经用一些要求更新了我的问题。我确实需要在两个轴上滚动。如果它既是无限的又是快速的,那将是非常棒的,但我会对100X100阵列感到满意。 GridView中的行数和列数需要相等吗?如果是这样的话,那么gridview对我来说就会受到限制。你说得对,我期望比列更多的行。 如果我使用listView,我将能够在两个轴上滚动,对不对? – user3268403

+0

“无限”滚动的意思是ListView被设计为使用适配器来填充它的项目,并且当它们从视图中滚动并且在另一端需要新项目时,项目被重新使用。它专为“多行”情况而设计。 你也可以看看: http://stackoverflow.com/questions/2044775/scrollview-vertical-and-horizo​​ntal-in-android/6235806#6235806 –