我正在使用ListView来显示项目列表。这些项目采用包含列和行的表格格式。是否有像适配器这样的表来确保所有列和行对齐?我知道这会带来每列应该有多大的复杂性,如何处理切断文本以及其他事情。我只是好奇是否有当前和适配器隐藏在这个任务的某个地方。或者甚至是另一种控制?
答案 0 :(得分:15)
使用ListView的目的是通过不必为所有项目预先创建和布局视图来扩展到更大的数据集。因此,您的请求与ListView的工作方式存在根本冲突--LinViews根本不知道其所有项目的布局,因此无法自动确保它们以某种方式对齐。
您可以通过恰当地编写项目布局来确保他们自己对齐。例如,通常在UI中,您将有一个图标,后跟一个标签。如果确保图标是特定大小,则所有列表项都将对齐。如果你正在处理像文本一样更动态的元素,你可以通过在前面强制执行这些元素的特定宽度来做同样的事情。
如果你真的想让UI动态计算元素大小并根据它们对齐所有行,那就是TableLayout的作用。它可以做到这一点,因为它总是将所有元素一起布局。如果你想允许在其中滚动,你可以将其包装在ScrollView中,就像另一张建议的海报一样。请注意,随着行数的显着增加,这种方法会迅速崩溃。
答案 1 :(得分:3)
我能够使TableLayout
表现得像ListView
(至少在视觉上)。 Here is我的回答。
答案 2 :(得分:0)
有GridView,但是afaik不适用于列和行。幸运的是,你似乎一直期待着一些复杂性:)
答案 3 :(得分:0)
您可以使用ListView
或ListFragment
并在每次TableRow
内使用TableLayout
时填充项目(可能使用android:stretchColumns =“0”)
你的每行会有TableLayout
,所以它可能效率低下,但是你会做的就是