【问题标题】:TableLayout - TextView and ImageView inlineTableLayout - TextView 和 ImageView 内联
【发布时间】:2026-01-14 04:55:01
【问题描述】:

我已经构建了一个应用程序,可以将 TextViews 和 ImageViews 动态添加到 TableLayout 中。我面临一个小问题,我无法让 ImageView 与 TextView 字段内联显示。在我的片段中,我从服务器获取结果并将其显示在布局中。

我尝试了几种方法,例如将 TextView 的重力设置为像这样垂直居中
我尝试限制文本字段的宽度,但它不起作用。

    firstRow.setGravity(Gravity.CENTER_VERTICAL);

这就是我的行的填充方式:

    businessNameRow.addView(businessNameField);

我正在动态添加集合,每个集合由 7 个 TextView 行和每行 1 个 ImageView 组成,如下所示:

TableRow firstRow = new TableRow(getActivity().getApplicationContext());
TableRow secondRow = new TableRow(getActivity().getApplicationContext());
TableRow thirdRow = new TableRow(getActivity().getApplicationContext());
TableRow fourthRow = new TableRow(getActivity().getApplicationContext());
TableRow fifthRow = new TableRow(getActivity().getApplicationContext());
TableRow sixthRow = new TableRow(getActivity().getApplicationContext());
TableRow imageRow = new TableRow(getActivity().getApplicationContext());
TableRow seventhRow = new TableRow(getActivity().getApplicationContext());

然后我只是将行添加到表中

final TableLayout tl = (TableLayout)root.findViewById(R.id.tableResultsGPS);

tl.addView(firstRow); //And so on

我的 TableLayout 放置在 ScrollView 中,因此我可以滚动浏览结果列表。

附上我想要实现的目标和现在的样子。

【问题讨论】:

  • 你能展示一下你现在得到的东西吗
  • 附在主帖上。这就是我得到的。
  • 你能分享一下你为每行中的图像和文本设置布局规则的代码吗?
  • 请考虑我的答案,我认为这样做更容易实现,并且提供了更大的灵活性
  • 在 XML 文件中?因为我删除了所有布局参数以保持代码干净,因为我不知道该怎么做。

标签: java android android-fragments


【解决方案1】:

似乎您想要实现的目标更适合 ListView 实现。

总体思路:

  • 使用单个项目(您的文本视图和图像)的布局创建一个列表项
  • 创建一个新类来模拟您的每个项目
  • 使用列表视图,将数据绑定到 ListView。

那里有很多教程。 Try this

旁注:布局选择的好建议是您的 ListView 项目的相对布局。我个人最喜欢的之一,因为它的灵活性。

【讨论】: