非对称android TableLayout拉伸(某些)列

非对称android TableLayout拉伸(某些)列,android,tablelayout,stretched,Android,Tablelayout,Stretched,我为一个活动编写了下面的布局,只有一个标题和四个2x2格式的按钮: 标题图像不如行的两个按钮(加上填充)宽。我的问题是,每行中的第一个按钮图像是水平拉伸显示的。规范化非对称表的方法是什么 v、 2在地鼠之后 真管用!Eclipse说:“这个LinearLayout布局或它的TableRow父级是无用的”,但对我来说没关系。我不会告诉客户的 你所看到的屏幕截图会有所帮助 ImageView未填充整个表格 在tablelayout属性中,尝试指定android:stretchColumns

我为一个
活动
编写了下面的布局,只有一个标题和四个2x2格式的按钮:


标题图像不如行的两个按钮(加上填充)宽。我的问题是,每行中的第一个按钮图像是水平拉伸显示的。规范化非对称表的方法是什么


v、 2在地鼠之后



真管用!Eclipse说:“这个LinearLayout布局或它的TableRow父级是无用的”,但对我来说没关系。我不会告诉客户的

你所看到的屏幕截图会有所帮助

ImageView未填充整个表格

在tablelayout属性中,尝试指定
android:stretchColumns=“*”
,这将允许列拉伸以填充表格。我相信如果所有的列都被允许拉伸(如*所示),那么它们将被拉伸,所以它们是均匀的(占用相同的空间)

正在拉伸的按钮

您指定了
layout\u width=“wrap\u content”
,这通常会达到您想要的效果,但是在表格布局的情况下,您不能指定宽度。这来自TableRow android文档:

The children of a TableRow do not need to specify the layout_width and layout_height attributes in the XML file. TableRow always enforces those values to be respectively MATCH_PARENT and WRAP_CONTENT.
因此,您需要在表行中放置另一个容器,将按钮放在该容器中,并将按钮设置为环绕并对齐到中间。像这样的方法应该会奏效:

<TableRow ...>
    <!-- Create a container -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <!-- Place button inside Container -->
        <Button 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            <!-- Place button in the middle of the container -->
            android:layout_gravity="center"
            .../>
   </LinearLayout>
</TableRow>


嗨,戈弗莫夫,很抱歉截图,作为一个新手,我不会看图片。嗯,没有“*”当然不行,因为它会拉伸所有内容,而且你建议的嵌套线性布局中的“匹配父项”也会拉伸。你能在我建议的添加之后发布修改后的布局吗。然后我可以看一看并发表评论。嗯。。。我无法复制图像。没有足够的学分。同样谢谢你,你真是太好了。我指的是修改布局的代码(XML)。对不起,应该说得更清楚。嘿!现在它开始工作了!(看上面。你的想法和重力规格的结合)非常感谢,伙计!