将TableRow中的TextView格式化为match_parent和wrap_content

时间:2012-11-13 14:30:12

标签: android layout textview tablelayout tablerow

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

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

screenshotOne

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

screenshotTwo

所以,我希望TableRow中的TextView在必要时包装到换行符,但也希望每个文本的背景都能填充TableRow中的空格。

1 个答案:

答案 0 :(得分:0)

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

  1. 我将每个TableRow的背景设置为灰色(标签)颜色,并将其设置为底部边框。
  2. 我将标签TextViews的背景留空,将它们默认为TableRows的灰色背景。
  3. 我将值TextViews的背景设置为白色,覆盖了TableRows的背景,但仍然可以看到边框。
  4. 我将标签TextViews'layout_widthlayout_height设置为wrap_content
  5. 我将TextViews的值layout_width设置为wrap_content,但将layout_height设置为match_parent
  6. 这适用于除电子邮件之外的每一行,其中值总是占用比标签更多的空间。因此,对于特定行,我将值TextView的layout_height更改为wrap_content