1

我有一个带有多个 TableRows 的 TableLayout。每行包含两个水平布局的 TextView。TextViews 有固定的宽度。每个的背景颜色不同;左边是灰色的,用作标签,右边是白色,包含一个值。但是,两者的内容都是动态的。对于任何给定的行,任何一个的内容都可能大到足以保证换行到新行。

因为背景颜色不同,我需要每个 TextView 匹配其父行,以便颜色正确填充视图。但是,如果我将 TextView 的 layout_height 设置为 match_parent,那么如果内容很大,则 TextView 不会换行。在以下屏幕截图中,标签不仅仅是显示的第一个单词:

截图一个

另一方面,如果我将 TextView 的 layout_height 设置为 wrap_content,那么如果兄弟 TextView 的高度更大(因此 TableRow 的高度),那么第一个 TextView 的背景不会填充创建的空间:

截图二

因此,我希望 TableRow 中的两个 TextView 在必要时换行,但也希望每个的背景始终填充 TableRow 中的空间。

4

1 回答 1

0

我找到了解决问题的方法:

  1. 我将每个 TableRow 的背景设置为灰色(标签)颜色,并给它底部边框。
  2. 我将标签 TextViews 的背景留空,将它们默认为 TableRows 的灰色背景。
  3. 我将值 TextViews 的背景设置为白色,覆盖 TableRows 的背景,但仍然可以看到边框。
  4. 我将标签 TextViews'设置layout_widthlayout_heightwrap_content
  5. 我将值 TextViews' 设置layout_widthwrap_content,但它们layout_height设置为match_parent

这适用于除电子邮件之外的每一行,其中值总是比标签占用更多空间。因此,对于该特定行,我将layout_heightTextView 的值更改为wrap_content.

于 2012-11-28T22:08:50.000 回答