如何强制TableRow中的视图扩展到比表中其他项更宽的范围?

时间:2014-03-04 23:23:34

标签: android android-tablelayout

我有一个2列的TableLayout填充片段的整个宽度,但我想要一个特定的项目(自定义进度条)贪婪并占用尽可能宽的宽度,直到表格本身的宽度,像这样:

_______________________________
|Text1-1|Value1-2 |           |
|Text2-1|Value2-2 |           |
|Text3-1|Value3-2=============|

问题是,与为表保留的区域相比,其他行相当短,并且我无法使进度条超出其指定列的最宽点。

首先,我尝试将进度条及其关联的文本视图放在LinearLayout中,跨度为2:

<TableRow>
  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Text 3-1" />

  <LinearLayout
    android:layout_span="2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Value3-2" />

    <ProgressBar
      style="?android:attr/progressBarStyleHorizontal"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:max="100" />
  </LinearLayout>
</TableRow>

LinearLayout没有超出“第2列”的宽度,可能是因为没有“第3列”,因为所有行都有2个子元素:

_______________________________
|Text1-1|Value1-2 |           |
|Text2-1|Value2-2 |           |
|Text3-1|Value3-2=|           |

然后我删除了LinearLayout,使进度条成为其TableRow的第三个子项:

<TableRow>
  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Text 3-1" />

  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Value3-2" />

  <ProgressBar
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:max="100" />
</TableRow>

现在进度条出现在“第3列”中,但只使用任意短的长度,尽管有“fill_parent”:

______________________________
|Text1-1|Value1-2|           |
|Text2-1|Value2-2|           |
|Text3-1|Value3-2|===        |

如何告诉它使用表格保留的所有可用宽度?

1 个答案:

答案 0 :(得分:0)

我希望我理解你的问题。尝试设置

android:layout_weight="1"

代表LinearLayout

中的TableRow