2010-03-14 30 views
1

我已经尝试了几个小时不成功,现在只需将TableLayout缩放到全屏即可。我已经试过了stretchColumns,shrinkColumns,(指定列索引或使用*)你的名字。 这几乎就好像父元素(TableLayout)完全忽略'android:layout_width =“fill_parent”'。无法将TableLayout拉伸到屏幕宽度

我已经阅读了类似的问题,虽然他们还没有解决它。 下面的XML有3行,表总是收缩到内容的大小。

显然我太新来发布图片(?)下面是我正在处理的项目中呈现的XML。 http://www.dashiva.com/images/Capture.png

我在这里错过了什么,这是相当令人沮丧的!

<TableLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" android:stretchColumns="*"> 

<TableRow> 
    <TextView android:id="@+id/AmountText" android:text="@string/general_amount" android:paddingRight="8dip" android:layout_gravity="center"></TextView> 
    <TextView android:id="@+id/CardText" android:text="@string/general_card" android:paddingRight="8dip" android:layout_gravity="center"></TextView> 
    <TextView android:text="@string/general_date" android:id="@+id/DateText" android:paddingRight="8dip" android:layout_gravity="center"></TextView> 
    <TextView android:id="@+id/ErrorText" android:text="@string/general_error" android:paddingRight="8dip" android:layout_gravity="center"></TextView> 
</TableRow> 

<TableRow> 
    <TextView android:text="Amount here..." android:id="@+id/AmountNum" android:paddingRight="8dip" android:layout_gravity="center"></TextView> 
    <TextView android:id="@+id/CardNum" android:text="Num here..." android:paddingRight="8dip" android:layout_gravity="center"></TextView> 
    <TextView android:text="date here..." android:id="@+id/DateDate" android:paddingRight="8dip" android:layout_gravity="center"></TextView> 
    <TextView android:text="Code here..." android:id="@+id/ErrorCode" android:paddingRight="8dip" android:layout_gravity="center"></TextView> 
</TableRow> 

<TableRow> 
    <ImageView android:id="@+id/cc_image" android:src="@drawable/mastercard" android:background="@drawable/row_bg2" android:layout_gravity="center" android:layout_weight="1"></ImageView> 
    <TextView android:id="@+id/ResponseText" android:layout_span="4" android:text="Response text here..." android:textSize="18dip" android:layout_weight="1"></TextView> 
</TableRow> 

<ImageView android:layout_gravity="center_vertical" android:background="@drawable/gradient_bg" android:layout_height="3dip" android:layout_width="fill_parent"></ImageView> 
</TableLayout> 

回答

0

好吧,问题是我编程扩充XML的地方。 出于某种原因,我将它膨胀成视图,然后将其添加到TableRow,然后将其添加到父视图。 删除中间步骤,只需将膨胀的视图添加到父元素就可以解决问题。

但是,谢谢,我的印象是跨度是一个简单的计数,而不是以零为基础。

+1

跨度应该是一个计数。 – 2010-03-14 20:59:12

1

嗯,这里是我可以告诉你:

  1. 我删除您ImageView元素(因为我没有你的图像)和TableLayout填满屏幕的宽度相当不错。
  2. 您最后的<TableRow>声称有五列(一个用于ImageView,4个用于TextView),而其他行则有四列。

因此,我会尝试将android:layout_span="4"更改为android:layout_span="3",看看是否有帮助。

1

如果未设置layout_weight,拉伸也不起作用。这不是你的问题,但它可能会帮助其他人在这里登陆。 (docs/guide/topics/ui/layout-objects.html说:“子视图可以指定一个整数权重值,然后将视图组中剩余的空间按其声明重量的比例分配给子项。默认权重为零)。“