【问题标题】:Fancy dynamic list in Android: TableLayout vs ListViewAndroid中的精美动态列表:TableLayout vs ListView
【发布时间】:2011-03-04 10:04:26
【问题描述】:

需要有一个不那么简单的动态列表,每条记录由几列(文本、按钮)组成。它应该类似于:

Text11 Text12 Button1 Button2
Text21 Text22 Button1 Button2
...

起初,实现这一目标的明显方法似乎是TableLayout。我期待在 res/layout/*.xml 中指定布局/样式数据,并使用 java 代码中的一些数据集填充它(如 ListView,可以在 *.xml 中指定项目的 TextView并使用ArrayAdapter 将其绑定到某个数组)。但是玩了一段时间后,我发现所有可能的方法都是以编程方式完全填充TableLayout。尽管如此,通过TableRow 创建TableRow 并直接在java 代码中设置布局属性似乎不够优雅。

所以问题是:我走对了吗? TableLayout 真的是实现这一目标的最佳视图吗?也许扩展ListView或其他东西来满足这些要求更合适?

【问题讨论】:

    标签: android listview tablelayout android-arrayadapter


    【解决方案1】:

    使用 ListView 和 ArrayAdapter,您可以进行比 TextView 更复杂的布局。您可以为 List 中的每一行指定一个带有 2 个 TextView 和 2 个 Button 的 LinearLayout。

    这是一个类似的问题 Android: ListView elements with multiple clickable buttons

    【讨论】:

    • 由于您的回答,我重新考虑了 ListView 并设法使其按要求工作,谢谢。
    • 这仍然不能回答问题。是否可以使用 ArrayAdapter 填充 TableLayout
    • @Nayn - 当然是可能。值得付出努力,而不仅仅是使用正确的工具来完成工作(ListView)吗?可能不是,所以詹姆斯的回答满足了这个问题。
    • ListView 是实现使用适配器的项目列表的好方法,但并不总是可以使用它(哦,我多么希望不是这样)。
    【解决方案2】:

    恕我直言,这取决于您需要渲染的数据量。

    通过 inflate/addView 动态构建布局是一项非常简单的任务,但 也比使用自定义适配器慢。使用自定义适配器,您可以 重用 convertView 参数,然后更有效地设置值

    【讨论】:

      猜你喜欢
      • 2011-06-22
      • 2023-04-01
      • 1970-01-01
      • 2011-04-19
      • 2020-05-15
      • 2013-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多